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

Aktuelle Zeit: Di Mai 14, 2024 13:40

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: So Nov 15, 2009 12:23 
Offline
DGL Member

Registriert: Mo Nov 06, 2006 19:15
Beiträge: 172
Früher (OpenGL 2) gab es doch mal eine Positionsvariable im Fragment Shader. In Shader 1.5 core sind aber praktisch alle Variablen verschwunden wie es scheint. Das ist nicht weiter tragisch, aber wie zeichne ich jetzt ein schnödes 2D Muster und färbe z.B. jedes dritte Pixel ein?

Im Geometry Shader habe ich die Bildschirmkoordinaten als -1 bis +1. Wenn ich die mit der Breite/Höhe des Bildschirms multipliziere und den Vertices mitgebe bekomme ich im Fragment Shader grob das was ich brauche, aber scheinbar mit Rundungsungenauigkeiten.
Komme ich anders an die Pixelposition oder gibt es eine Alternative auf die ich nicht komme?


Dateianhänge:
Rundungsfehler.png
Rundungsfehler.png [ 38.98 KiB | 3047-mal betrachtet ]
Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Nov 15, 2009 12:44 
Offline
DGL Member

Registriert: Mo Nov 06, 2006 19:15
Beiträge: 172
Tja, wie das manchmal so ist :lol:
Mir ist aufgefallen, dass ich im Geometry Shader nicht vec2(1.0, 1.0) von der gl_Position.xy abziehe bevor ich sie mit der Fenstergröße multipliziere. Dadurch sind die Werte mal auf- und mal abgerundet worden.
Außerdem habe ich im Fragment Shader die Funktion fract(...) ersetzt und statt dessen die reinkommenden Pixelkoordinaten erst mal auf int(...) gecastet und damit weitergearbeitet. Divisionen sind auch keine mehr drin. Habe bisher keine Ungenauigkeiten mehr erlebt!


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: So Nov 15, 2009 16:16 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo NerdIII,

auf die Pixelposition kannst du im Fragmentshader mit gl_FragCoord zugreifen.

Vielleicht ist das noch ganz nützlich für dich ;) : http://www.khronos.org/files/opengl-qui ... e-card.pdf

Viele Grüße
dj3hut1

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


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 4 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.028s | 19 Queries | GZIP : On ]