Main Menu

performance frage

Started by rushtone, January 08, 2013, 01:43:55 PM

Previous topic - Next topic

rushtone

Hi egon.
kurze frage:
wenn man auf performance bedacht ist, welche vorgehensweise wäre die beste und inwiefern unterscheidet sich die performance in folgenden 3 ansätzen:

um zu prüfen, ob ein objekt im playfield ist hätte ich 3 optionen.

1. könnte ich mir feste eck punkte definieren die ich interpoliere mit der z koordinate meines objektes und dann prüfe ob der wert außerhalb meines spielfeldes ist.

2. ich könnte wasVisible verwenden um das zu prüfen.

3. ich könnte aber auch über reprojectCenter
die screen coordinate holen und das mit 0/0 und width/height prüfen.

3 wäre eigentlich am einfachsten aber ich bin mir nicht sicher was hier alles im hintergrund geschieht. wenn das nicht zu sehr auf die performance geht wäre das wohl mein favorit.

es geht nicht nur um 1 object das damit geprüft werden soll, sondern um so ziemlich alle in der szene.

EgonOlsen

Was willst du damit denn erreichen? Willst du irgendwelche Logik an die Objekten hängen, die davon abhängt, ob sie auf dem Schirm sind oder sollen sie dann komplett verschwinden oder was ist der Hintergrund dieses Tests? Im Prinzip halte ich wasVisible() für die beste Lösung. Damit bist du zwar einen Frame im Verzug, aber was macht das schon? Die Prüfung, ob etwas sichtbar ist, macht die Engine ohnehin intern und wasVisible() ist quasi das Ergebnis des letzten Tests.

rushtone

#2
jawoll will die objekte entfernen..
meine objekte haben eine update methode,
die bei jedem frame durchlaufen wird.
in der update methode aktualsieren die objekte ihre position, rotation. bzw das verhalten das ich bei dem jeweiligen objekt haben möchte.
da möchte ich auch prüfen ob sie ausserhalb des spielfeldes geraten um sie dann zu entfernen.
also wasVisible ist auch ok. ich schätze da wird nur nen bool wert geprüft der ohnehin besetzt wird? zumindest war das meine vermutung und lese das auch nun so raus aus deiner antwort.
dann wäre das zumindest für die nicht spieler gesteuerten objekte perfekt.

ist die funktionsweise von reprojectCenter sehr performance lastig?
weil mein vom spieler bedienbares objekt möchte ich nicht komplett aus dem spielfeld haben bevor ich erkenne das das objekt aus dem spielfeld ist.

EgonOlsen

Quote from: rushtone on January 08, 2013, 09:15:16 PM
ist die funktionsweise von reprojectCenter sehr performance lastig?
Nein, nur ein paar Multiplikationen. Nichts, was bei vielen Objekten nicht sowieso jeden Frame hunderte von Malen durchlaufen werden würde.

rushtone

danke schön mal wieder.
ich glaub langsam ich mach mir nen zu großen kopf um solche dinge anstatt einfach das zu nehmen was gut funktioniert.