Ich kenn mich mit Shadern fast gar nicht aus, hab aber eine Frage zur Machbarkeit eines Shaders.
Wäre es möglich einen Shader zu schreiben, der die Farbe aller gerade sichtbaren Pixel verändert? Der Shader sollte die Farbe eines Pixels in Abhängigkeit von seinen Weltkoordinaten abstimmen. Kann man halbwegs effizient an die Weltkoordinaten kommen? Müsste ich das immer über die Vertices machen, die die Fläche definieren, auf der sich der Pixel befindet, oder ginge es einfacher? Und kann ein Programm mit einem solchen Shader überhaupt effizient sein?
es kommt darauf an, was du letztenendes realisieren möchtest, aber an und für sich sollte das möglich sein. Das hängt allerdings davon ab, was du konkret vorhast.
Ich überlege gerade, wie ich Licht in einer Outdoor-Szene implementieren kann. Und da dachte ich mir, dass ich einfach für jeden Pixel einen Entfernungscheck machen könnte. Jeder weiter der Pixel von der Quelle entfernt ist, desto dunkler wird seine Farbe. Wenn man wollte, dann könnte man noch die Normale des jeweiligen Faces miteinfliessen lassen. Ich wollte mich erstmal auch nur informieren, ob es möglich ist
Das mit den Weltkoordinaten des Pixels könnte kniffelig werden, oder?
das ist absolut kein Problem, schau dir mal das Tutorial GLSL2 hier im Wiki an, dort wird gezeigt, wie du ganz einfach per Pixel Licht berechnen kannst.
Damit es jetzt mit einem größeren Abstand dunkler wird brauchst du eine kleine Erweiterung namens attenuation, welche in diesem Tutorial http://www.ozone3d.net/tutorials/glsl_l ... _phong.php unter dem Punkt 4.2 beschrieben ist. Das ist alles keine Hexerei und wirklich leicht zu implementieren. Außerdem steht auf der verlinkten Seite der komplette Quellcode zur Verfügung.
Super, danke! Ich werd mir das gleich angucken!
Für die Tageslichtbeleuchtung ist das wahrscheinlich nicht so sinnvoll bzw. leicht zu implementieren, oder? Wahrscheinlich reicht da dann schon einfach eine Anpassung der Farbe jedes Pixels an die Tageszeit. Dann braucht man ja auch keine Abstandsabhängigkeit. Wenn ich Lust habe, Schatten zu implementieren, dann würde ich mich da mal am Ambient Occlusion probieren oder auch an Shadowmaps, damit es in Räumen auch dunkler ist.
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.