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

Aktuelle Zeit: So Aug 03, 2025 15:57

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: PHONG
BeitragVerfasst: Mo Aug 08, 2005 08:20 
Offline
DGL Member

Registriert: Mo Aug 08, 2005 01:02
Beiträge: 2
Hallo!
Shader sind ja eine tolle Sache, doch so genervt habe ich mich ab ein paar Zeilen Code fast noch nie!! - Für mich ist das ganze eigentlich noch ziemlich Neuland, und deswegen brauch ich Euch menschliche Debugger, solang das so kompliziert und undurchsichtig bleibt.
Ich arbeite mit den ARB_VERTEX_PROGRAM/ARB_FRAGMENT_PROGRAM Extensions.
Mein Einstieg: Bastle einen unabhängigen Phong-Shader (Per-Pixel), der mit jeder Art von Geometrie eine sauber Beleuchtung hinkriegt. Das ganze soll von Material- sowie Licht-Eigenschaften der OpenGL abhängen und sonst von keinen zusätzlichen Parametern extra für den Shader!
OpenGL beleuchtet ja eigentlich schon Phong, doch eben nur per Vertex (Gouraud)... das ganze nun mit einem Vertex-/Fragment-Programm nachzubauen ist leider doch schwieriger als ich zuerst dachte. Vielleicht sollte ich, vorausgesetzt wir kriegen das hin, ein Grundlagentutorial schreiben, das wirklich jeden Schritt beschreibt. Im Netz lässt sich ne Menge Material dazu finden, doch von Doku keine Rede...

Hier der Code und Exes, eine mit Standard OpenGL-Lighting als Vergleich, die andere mit dem Phong-Shader: PhongShader. Funzt schon irgendwie, leider nur auf den ersten Blick, denn wie man sieht kommte es an den Rändern der Kugel zu seltsamen Verzerrungen... Besonders am Glanzlicht zu sehen, doch auch die Diffuse Beleuchtung machte da Probleme!
(Taste 5 um Teapot zu beleuchten) Auf der gebogenen Bauch der Kanne sieht man so eine Art Lichtkegel, mit starker Helligkeit und definierten Winkel, obwohl Phong klar mit Punktlichtern arbeitet. Hier ein gute Einführung : PhongIllumination

Ich bin mir fast sicher dass es irgendwie an den Vektroberechnungen im Vertex Shader liegt... vielleicht am View-Vektor? Oder Licht?
Bitte schaut es euch an... ich habe besonders Mühe all diese Koordinatensystemtransformationen richtig zu verstehen (eye-/view-/object-/world-/camera-space). Und dann das Dilemma mit den Row-/Column-Matrizen... waahhh
thx
elix


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 08, 2005 08:24 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Ohne Worte: http://wiki.delphigl.com/index.php/Tutorial_glsl2
Da hat sich schon mal einer die Mühe gemacht ;)

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 08, 2005 13:21 
Offline
DGL Member

Registriert: Mo Aug 08, 2005 01:02
Beiträge: 2
Cool! GLSL möchte ich dann auch noch angehen, zuerst aber die wirklichen Basics... mit Worten: ASSEMBLER. Bin sonst nicht unbedingt der Fanatiker, aber ich denke in solch einem zeitkritischen Bereich, wo alle nur so nach Performance hächeln, lohnt es sich die Mühle bis ins letzte zu kennen. Die Befehle sind wirklich einfach, ihre exakte Abfolge macht da jedoch schon mehr Probleme! - Kurzum: Ich seh nicht ein, hier eine pseudo-Hochsprache zu verwenden, die doch auch nicht wirklich mehr kann als die GPU drauf hat, oder?! - Wenn dann Schleifen und If-Thens möglich sind... sieht's schon anders aus. Ab welcher GeForce-Klasse geht das überhaupt, weiss das jemand? Und unterscheidet sich da GLSL sehr von den Möglichkeiten der ARB_VERTEX_PROGRAM/ARB_FRAGMENT_PROGRAM Extensions?
Eines ist klar: das verflixte Phong will ich einfach in dry graka asm ;-), hab schon zu viel Zeit damit verknorzt...
(Nachher kommt dann noch Bump- und Parallax Mapping, es soll da so ein echtes Licht Tutorial geben...)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 08, 2005 14:31 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Nach den neusten Nachrichten sollte man eher Cg lernen. Dann kann man wenigstens seine Shader mit nach D3D herübernehmen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 08, 2005 15:34 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
@Lars: Spielst du auf Windows Vista an? Oder meinst du GLSlang is nicht mehr die Zukunft..?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 08, 2005 16:03 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jul 17, 2002 12:07
Beiträge: 976
Wohnort: Tübingen
Lars macht mir Angst.... :|

_________________
"Du musst ein Schwein sein in dieser Welt, sangen die Prinzen, das ist so 1.0. Du musst auf YouTube zeigen, dass dir dein Schweinsein gefällt, das ist leuchtendes, echtes Web 2.0."
- Hal Faber

Meine Homepage: http://laboda.delphigl.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 08, 2005 18:23 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Ja, das war halb ernst wegen Windows Vista gemeint. Ich glaube zwar nicht, dass es so extrem kommen wird. Bei den Patenten war es ja auch nicht so. Aber es ist gut jederzeit für die Zukunft gerüstet zu sein. Bei Cg muß man zwar die beiden DLL's von NVidia ins Programmverzeichnis packen, aber falls es irgendwann mal soweit kommen wird, dass wir alle ausschließlich D3D sinnvoll verwenden können, hat man zumindest die Shader schon fast im HLSL Format. Falls es alles so schlimm kommt. Desweiteren funktionieren Cg Shader wegen dem verbuggten Compiler auch auf ATI Karten besser als GLSL Shader. Bei NVidia ist es ja eh der gleiche Compiler. Cg ist als Sprache HLSL und GLSL überlegen. Man kann objektoriertiert mit Interfaces (mit virtuellen Methoden) und Klassen (ohne Zeiger nur structs) programmieren und es gibt dynamische Arrays. Diese erweiterten Sachen funktionieren mit HLSL nur eingeschränkt, aber der HLSL Compiler optimiert weitaus besser als Cg und GLSL. Cg 1.4 bietet auch unter OpenGL .fx Dateien, in denen man mehrere Renderpass in verschiedenen Versionen spezifizieren kann. Alles in allem ist Cg eine interessante Sache, die man sich zumindest mal ansehen sollte. Sowohl wegen der erweiterten Sprachmöglichkeiten als auch wegen der teilweisen Kompatibilität mit HLSL. Tatsache ist das, GLSL momentan nur eingeschränkt benutztbar ist. Es gibt jede Menge Probleme mit den Treibern (ATI fehlerhaft, NVidia langsam) und Inkompatibilitäten zwischen den Karten. Man kann mit dem Cg Compiler auch GLSL kompilieren falls man -oglsl als Argument übergibt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 08, 2005 19:50 
Offline
DGL Member

Registriert: Mo Aug 08, 2005 01:02
Beiträge: 2
ANGST
ANGST
ANGST
ANGST
ANGST
Willkommen, jeden Tag ein blaues Fenster. Wer sind wir? Programmierer, Entwickler, Erfinder, Wissenschaftler, Anvantgardisten oder einfach KONSUMENTEN??? Hast du die grüne Wiesen auf den Schreibtisch gesehen? Wie lang müssen wir diesen miesen running gag noch aushalten. Windows, DirectX und interpretiertes XML, DRAUF GES****N!!! Zwar muss ich den Rasen nicht mähen, doch erten kann ich so auch nichts... echt, WER sonst soll da sonst was ändern an der Zukunft als die Konstrukteure und Softwarearchitekten! Wollen wir denn diese wahnsinns schnellen Spiele, die blad nicht's mehr als eine stereotype Trade Show, wollen wir denn 10 verschiedene Fensterfunktionen? Wo sind wir denn, wenn wir unsere neue Sprache nur noch altes Material wieder und wieder nachplappern? Schnellschwätzer, plauppermal, specht... Wenn die Sprache nicht mehr frei ist, was ist denn die artikulierte IDEE?
Dieser elende Update-Wahn und doch kommen wir nicht vom Fleck, ich zumindest. GLslang, steht für mich fest, danach fang ich an endlich was damit auf die Beine zustellen, anstatt immer den neuen Standards hinterherzurennen! Bald zieh ich die Vorhänge und geh nach draussen!
Wer war überhaupt Bui-Tuong Phong?
asta la vista, langhorn dackel!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Aug 08, 2005 21:54 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 14, 2004 18:56
Beiträge: 804
Wohnort: GER/OBB/TÖL-WOR/Greiling
full ack, und mit so etwas kannst du vielleicht sogar die massen mobilisieren. Bau doch ne "We want OpenGL in MS Vista" Homepage, mit dienem Stil könnte da wirklich was draus werden ;)

aber sollte das nicht HIER hin? :mrgreen:

_________________
Bild

"User Error. Replace User and hit Continue."


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


Wer ist online?

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