Zusammenspiel Lighting <-> Texturierung



  • Hallo,

    ich habe eine Detailfrage zum Zusammenspiel der Lighting Stage und Textur-Stage (speziell bei Direct3D, jedoch auch allgemein):

    In der Lighting Stage wird ja zu jedem Vertex eine Farbe i_total (i_total = ambient+diffuse+specular usw) berechnet. Sehe ich das richtig, dass in dieser Lighting-Formel Texturen absolut keine Rolle spielen?

    Anschließend kann (wenn Vertex Fog eingesetzt wird) die Farbe i_total der Vertices noch durch eine Nebelfarbe modifiziert werden.

    Am Ende der Vertex Processing Stage werden die Vertices dann per Viewport Mapping und Triangle Setup etc. in das Pixelraster gedrückt. Aus jedem Vertex wurde also eine (x,y) Koordinate sowie eine Farbe (i_total + Nebel). Falls man noch Texturen hat, hat jeder dieser "Pixel" noch eine (u,v) Koordinate.

    Und so denk ich mir kommen jetzt die Texturen dazu: Im Triangle Setup werden die Vertexdaten der 3 Eckpunkte eines Dreiecks über alle Pixel des Dreiecks interpoliert. Die Finale Farbe setzt sich dann als Kombination aus der Farbe der Lighting State (+Nebel) sowie der Texturfarbe an der interpolierten Stelle zusammen.

    Sprich: Zuerst wird per Lighting Stage an jedem Vertex eine Farbe errechnet (total unabhängig von Texturen) und anschließend die Texturen noch reingerechnet.
    Stimmt das so? Falls sich da jemand auskennt, bitte detaillierter erklären bzw Links posten.

    thx :xmas1:



  • die auswirkung von vertex- und texture-color sind von der konfiguration der texturestages bzw des pixelshaders abhaengig.
    fogging laesst sich im allgemeinen nicht mit der vertex-color verrechnen und befindet sich deswegen erst nach dem pixelshader in der pipeline.
    das macht auch sinn weil z ohnehin getrennt interpoliert werden muss.
    weitere informationen zum aufbau der transformations- und rasterizing-pipeline findest du in unzaehligen papers bei nvidia und ati.



  • Ich hab kein einziges Paper bei NVidia oder ATI gefunden, dass meine Frage beantworten würde. Dennoch ist es mir dank diverser anderer Fachforen jetzt klar. 🤡


  • Mod

    in der oGL reference und bein nv (ich glaube auch irgendwo bei ati) ist aber die ganze pipeline beschrieben, aber schoen dass es dir nun klar ist.


Anmelden zum Antworten