Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Jul 17, 2025 14:09

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Kein Nebel im Shader
BeitragVerfasst: Mo Sep 03, 2007 12:55 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
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:
  1.  
  2. void main
  3. {
  4.   gl_Position = ftransform();
  5.   vec4 ecPosition = gl_ModelViewMatrix * gl_Vertex;  // EyeCoordinate berechnen
  6.   gl_FogFragCoord = abs(ecPosition.z);  // Nebel Koordinate auf z-Entfernung setzen
  7. }
  8.  


Fragment Shader:
Code:
  1.  
  2. void main
  3. {
  4.   float fog = (gl_Fog.end - gl_FogFragCoord) * gl_Fog.scale; // Intensität berechnen
  5.   fog = clamp(fog, 0.0, 1.0);  // Beschneiden
  6.   color = Farbe von Texture etc
  7.   gl_FragColor = mix(gl_Fog.color, color, fog);  // Nebelfarbe einmischen
  8. }
  9.  


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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 03, 2007 13:08 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
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

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Sep 03, 2007 13:22 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Aug 18, 2007 18:47
Beiträge: 694
Wohnort: Köln
Programmiersprache: Java
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.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.017s | 16 Queries | GZIP : On ]