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
    --> ...
    einsortieren

    neuen Oktree/Bsp-Knoten erstellen (Welt,Level,...)
    einsortieren

    neuen Mesh-Knoten erstellen (Gegener,Entity,...)
    einsortieren

    neuen shader erstellen
    --> shader an Mesh linken

    loop:
    Kamera update (position/frustum)
    Gegner update (position)
    wenn Gegner sichtbar
    in Vertexbuffer speichern
    wenn shader benutzt wird
    für jeden pass

    states aktivieren

    vertexshader id holen
    pixelshader id holen

    vertexshader aktivieren
    pixelshader aktivieren

    textur id's der vertexshadertexturen holen
    für jede textur des vertexshaders
    textur aktivieren

    textur id's der pixelshadertexturen holen
    für jede textur des pixelshaders
    textur aktivieren

    vertices im vertexbuffer "aktivieren"
    vertexbuffer zeichen

    ... alles wieder releasen
    ende
    andernfalls
    ...


Anmelden zum Antworten