HideEntity-Das ist mir aufgefallen ^^

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Tankbuster

Betreff: HideEntity-Das ist mir aufgefallen ^^

BeitragDi, März 18, 2008 16:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigentlich sinnlos, aber ich will mein Wissen ja mit euch teilen >,<

Ich habe mich heut mal en bissl mit Speedoptimierung beschäftigt, um wieder ein bisschen in Blitz reinzukommen. Dabei ist mir was aufgefallen:

Wenn ich 100000 Cubes erstell und dann 99999 davon verstecke, sodass nurnoch einer gerendert wird, ruckelt das Spiel trotzdem noch!

Dadurch bin ich auf die logische Schlussfolgerung gekommen, dass die anderen 99999 Cubes noch irgendwie an der Leistuung zerren. Nur warum?
Es könnte daran liegen, dass die versteckten Würfel trotzdem zur Grafikkarte gesendet werden (aber dort nicht gerendert werden). <---- Bin mir nicht 100%ig sicher

Also müsste man eigentlich jedes Entity komplett löschen, um den Speicher zu schonen ^.^
(ist das sinnvoll, wenn man ca. jede minute ein Mesh anzeigen will? Danach könnte man es ja wieder eine Minute löschen, oder merkt man das sowieso nur bei 100000 Objekten, die sowieso niemand jemals in einem Spiel haben wird? ^,^)
Twitter
Download Jewel Snake!
Windows|Android
 

Dreamora

BeitragDi, März 18, 2008 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Sinnlose Benchmarks von Leuten die nicht wissen wie ein PC und 3D Engines funktionieren: Episode 1 - Der Grossangriff

das problem ist das du einfach das handling system überlädst.
Programmieren besteht darin, dass man ERST den Kopf einschaltet, dann den PC, denn es müsste dir (da du ja nicht erst seit heute mit Blitz arbeitest) einleuchten, dass die interne verwaltung von 100'000 Objekten IMMER ein Problem ist. Das hat da relativ wenig mit der Grafikkarte zu tun, sondern damit dass du der CPU den Rest gibst.

ich dachte eigentlich es sei hinlänglich bekannt das 1000 Surfaces das ziel sein sollten, ab 3000 wirst du probleme haben. Das 100'000 ein massives problem sind, sollte da eigentlich selbstredend sein.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Tankbuster

BeitragDi, März 18, 2008 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Zur meiner Entschuldigung:
heute hab ich irgendwo gelesen (HIER im Forum), dass "gehidete" Sachen noch an die Grafikkarte verschickt werden, diese sie aber nicht Rendert. Da wollte ich das ganze mal testen, und schaun obs wirklich langsamer ist.
Bei wenigen Objekten kann man das nicht so gut sehen, und da hab ich einfach mal ein bissl übertrieben.
Die CPU hab ich net bedacht, sry

Also hab ich daraus wenigstens eins gelernt:
Man sollte Objekte immer Hiden, denn selbst wenns mal zuviele versteckte Objekte sein sollten, schmiert vorher die CPU ab Rolling Eyes
Twitter
Download Jewel Snake!
Windows|Android
 

Dreamora

BeitragDi, März 18, 2008 17:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hide hat einige Effekte die durchaus praktisch sind:
- Kein Update der Animation und Kollision mehr (prinzipiell garnix dynamisches mehr)
- Wird nimmer an grafikkarte gesandt (im unterschied zu Alpha 0 entities)

das es bei wenigen objekten nicht zu sehen ist spricht für deine Grafikkarte, eigentlich hätte bei 5000-10000 würfeln schon ein sichtbarer FPS unterschied da sein müssen. heutige treiber, die sowieso intern alles mit shadern machen sind jedoch in der lage solche dinge zu batchen, weswegen man nicht so schnell "an die wand fährt" ...
seh ich persönlich als problem an, denn auf systemen die noch effektiv fixed function pipeline haben machts dann einfach bumm und die performance ist im keller.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group