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

Aktuelle Zeit: Di Jul 22, 2025 19:26

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Shader, der Farbe der Pixel ändert
BeitragVerfasst: So Apr 13, 2008 18:02 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 13, 2008 18:23 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 13, 2008 18:52 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 13, 2008 19:07 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Apr 13, 2008 19:30 
Offline
DGL Member

Registriert: Mi Mär 31, 2004 15:24
Beiträge: 114
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.


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.016s | 15 Queries | GZIP : On ]