szenenverwaltung, shaders, portale...
-
Hallo, so ich hab mich jetzt mal intensiv mit dem scene-management von engines beschäftigt. Bis jetzt ist das alles einigermaßen verständlich. Nun hab ich mir die frage gestellt, wie das dann mit shadern in opengl aussieht. Ich hab mir da mal so meine gedanken gemacht und bin auf folgendes gekommen (siehe unten).
1.Meine frage ist nun, kann man das so stehen lassen rein wegen der sortierung der shader und texturen?
2. Gibts verbesserungsmöglichkeiten?
3. Ist wahrscheinlich zwar ein wenig offtopic, aber ich hoffe ihr verzeit mir :).
Wie ihr seht, bin ich mir noch nicht im klaren darüber ob ich nun einen Bsp oder Octree verwende für die kollisionserkennung, da ich diese ganze szenenverwaltung gerne für indoor konzipieren würde. Daher die frage, ob es irgentwo eine gute möglichkeit gibt, sich über portale zu informieren und ob es möglich ist portale mit Octrees zu verbinden. Bisher sah ich die immer nur in verbindung mit Bsp-Bäumen.Achtung Pseudocode
init:
neuen Kameraknoten erstellen
--> position setzen
--> frustum berechnen
--> ...
einsortierenneuen Oktree/Bsp-Knoten erstellen (Welt,Level,...)
einsortierenneuen Mesh-Knoten erstellen (Gegener,Entity,...)
einsortierenneuen shader erstellen
--> shader an Mesh linkenloop:
Kamera update (position/frustum)
Gegner update (position)
wenn Gegner sichtbar
in Vertexbuffer speichern
wenn shader benutzt wird
für jeden passstates aktivieren
vertexshader id holen
pixelshader id holenvertexshader aktivieren
pixelshader aktivierentextur id's der vertexshadertexturen holen
für jede textur des vertexshaders
textur aktivierentextur id's der pixelshadertexturen holen
für jede textur des pixelshaders
textur aktivierenvertices im vertexbuffer "aktivieren"
vertexbuffer zeichen... alles wieder releasen
ende
andernfalls
...