DGL https://delphigl.com/forum/ |
|
Shader, der Farbe der Pixel ändert https://delphigl.com/forum/viewtopic.php?f=20&t=7423 |
Seite 1 von 1 |
Autor: | Rüdiger [ So Apr 13, 2008 18:02 ] |
Betreff des Beitrags: | Shader, der Farbe der Pixel ändert |
Hallo Leute! 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? Vielen Dank! Rüdiger |
Autor: | Seth [ So Apr 13, 2008 18:23 ] |
Betreff des Beitrags: | |
hi, 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. mfg |
Autor: | Rüdiger [ So Apr 13, 2008 18:52 ] |
Betreff des Beitrags: | |
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? |
Autor: | Seth [ So Apr 13, 2008 19:07 ] |
Betreff des Beitrags: | |
hi, 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. mfg |
Autor: | Rüdiger [ So Apr 13, 2008 19:30 ] |
Betreff des Beitrags: | |
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. |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |