- void main
- {
- gl_Position = ftransform();
- vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex; // EyeCoordinate berechnen
- gl_FogFragCoord = abs(ecPosition.z); // Nebel Koordinate auf z-Entfernung setzen
- }
DGL https://delphigl.com/forum/ |
|
Kein Nebel im Shader https://delphigl.com/forum/viewtopic.php?f=20&t=6876 |
Seite 1 von 1 |
Autor: | damadmax [ Mo Sep 03, 2007 12:55 ] |
Betreff des Beitrags: | Kein Nebel im Shader |
Also laut Orange Book (welches ich seit ein paar tagen habe) soll man folgendes machen um den Standard OpenGL Nebel (linear) zu erzielen: Vertex Shader: Code:
Fragment Shader: Code:
Klappt nur leider überhaupt nicht. Alles grau. Wenn ich die Nebelberechnung komplett weglassen wird die Landschaft 1A gezeichnet. Wenn ich den fog-Wert manuell setze krieg ich immerhin nen leichten schleiher hin, aber der wird halt nicht stärker. Vielen Dank im voraus damadmax |
Autor: | Lord Horazont [ Mo Sep 03, 2007 13:08 ] |
Betreff des Beitrags: | |
Vielleicht solltest du die werte noch mal manuell nachskalieren, z.B. *10 an den Z-Wert oder so, das kann schon helfen. Gruß Lord Horazont |
Autor: | damadmax [ Mo Sep 03, 2007 13:22 ] |
Betreff des Beitrags: | |
Danke Lord... ...gl_Fog.scale stimmt nicht bzw wird garnicht oder anders berechnet als man es braucht. Wenn ich es mittels (1 / (gl_Fog.end - gl_Fog.start)) selber berechne klappt es. *freu* nochmal danke für den Denkanstoss gruß damadmax Nachtrag: Wenn ihr versucht eine Wasseroberfläche mit Nebel zu versehen klappt das nur wenn sie aus mehr als 1 Quad besteht. Soll heissen wenn ihr das Wasser ziemlich gross z.b. 512 Einheiten in alle Richtungen zeichnet, wird die Nebelkoordinate gl_FogFragCoord nicht richtig interpoliert. Gelöst habe ich das problem indem ich einfach 4x4 oder mehr Quads gezeichnet habe. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |