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

Aktuelle Zeit: Di Jul 08, 2025 10:48

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 02, 2003 18:31 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
ja, die Frage steht ja schon in der Beschreibung...
Ich lese mom recht oft, dass irgendwo irgendwas mit Pixel bzw. Vertexshadern gemacht wurde... das problem ist blos: Ich habe nicht so wirklich Ahnung, was das bitte sein soll!
Ich habe zwar nun schon ab und an mal gelesen, dass man damit irgendwie Fragmente verändern kann, ich kann mir da aber nicht wirklich was drunter vorstellen, aber scheinbar sollen damit ja die dollsten Effecte möglich sein ;)
Zudem hätte ich noch ne Frage: um sowas zu nutzen (wenn es denn so genial ist): Was für eine Grafikkarte braucht man dazu? Ich es für mich als Tnt2_Besitzer überhaupt interessant? (wahrscheinlich ja nicht.....)

Ich hoffe ihr könnt meine Unwissenheit beseitigen ;-)

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 02, 2003 18:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wie ich im fast identischen Thread von Aya bereits gesagt hab, entsprechen VertexShader und PixelShader der D3D-Terminologie.Da wir hier aber ne OpenGL-Community sind, nutze ich hier die korrekten Ausdrücke, nämlich Vertexprogramme (VP) und Fragmentprogramm (PS) :

Hardware :
Mit deiner TNT2 wirst du weder VPs noch FPs nutzen können.VPs und FPs gibt es erst seit der GeForce3, und später kamen dann noch VPs per Software (über den Treiber) für GeForce2&Co dazu.Mit deiner Karte kannst du also keines von beiden nutzen.

Vertexprogramme und Fragmentprogramme :
Neuere GPUs (ab GF3) bieten dir die Möglichkeit, auf jedes Vertex (Vertexprogramm) oder jedes Fragment (Fragmentprogramm) das durch die Pipeline muss ein selbstgeschriebenes, in einer assemblerähnlichen Sprache verfasstes, Programm anzuwenden.
Die GPU bringt dazu 27 spezielle angepasste Befehle für VPs und 33 speziell angepasste Befehle für FPs mit, die dir quasi unendlich viele Möglichkeiten geben die Vertexe bzw. Fragmente zu verändern.Da dieser Befehlssatz recht groß ist, genauso wie die menschliche Vorstellungskraft, kann man damit jede Menge toller Sachen machen.VPs erlauben dir zwar schon nette Effekte, die so allerdings auch auf der CPU möglichen wären, dort aber natürlich langsamer Ablaufen würden.Was VPs sind, und was man damit machen kann steht ja in meinem Tutorial drinne.
Interessanter wird dann die Nutzung von Fragmentprogrammen, die, wie der Name bereits vermuten lässt jedes durch die Pipeline gejagte Fragment (Der Terminus Pixel, wie z.B. in PixelShader, ist in meinen Augen leicht inkorrekt) verändern können.So kannst du z.B. ganz bequem auf der CPU für jedes Fragment die Entfernung zum Licht berechnen und anhand dessen per-Pixel-Beleuchtung recht einfach und hardwareunterstützt realisieren.Das direkte Manipulieren von Fragmenten ist auf Prä-GF3-Hardware allerdings nicht möglich.Dies auf der CPU zu emulieren würde auch keinen Sinn machen, da diese recht überforder wäre, wenn sie Frame-für-Frame mehrere Millionen Fragmente berechnen müsste.Lightmapping ist z.B. eine Technik die (einfach gesagt) per-Pixel (oder per-Fragment) abläuft.Normalerweise würdest du die Lightmaps vorberechnen, mittels eines Fragmentprogrammes kannst du diese allerdings ganz leicht (und hardwarebeschleunigt) in Echtzeit berechnen.

Kurz zur Funktionsweise eines VPs/FPS :
Sobald man diese Programme via glEnable aktiviert, werden Teile der festen Funktionspipeline übersrprungen und durch selbstgeschriebene Programm ersetzt.Man kann in seinem Programm dann bestimmte Eigenschaften eines Vertex oder Fragments (Position, Texturkoordinate, Farbwert) abfragen, und diese dann verändert rausgeben.Schau dir dazu unbedingt mal mein VP-Tut an, FPs funktionieren genauso, haben halt nur nen leicht veränderten Befehlssatz und arbeiten nicht per-Vertex sonder per-Fragment.

P.S. : Ich verweise nochmal auf den <a href='http://www.phobeus.de/hosting/dgl/forum/index.php?act=ST&f=2&t=1290' target='_blank'>Thread von Aya</a>, in dem vor kurzem fast genau das Selbe gefragt wurde..

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jul 02, 2003 19:04 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Ohhh ... sorry, dass du dieselbe Frage 2 Mla beantworten musttest... muss selber wohl im Halbschlaf gewesen sein, als ich den anderen thread gelesen habe :huh:
Naja: wenigstens weiß ich nun einigermaßen, um was es sich handelt... hgabe Teilweise nämlich nur noch "Nahnhof" verstanden....
Danke! :-)

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


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 » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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.009s | 15 Queries | GZIP : On ]