PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shader programmieren


rotalever
2006-10-16, 20:20:29
Ich programmiere schon einige Zeit grafisch mit OpenGL rum. Jetzt ist es langsam an der Zeit Shaderlanguages zu lernen. Sollte ich besser CG oder GLSL machen? Was sind Vorteile vom einen oder dem anderen? Oder sind diese beiden Sprachen nur syntaktisch verschieden. Desweiteren würde ich gerne wissen ob ihr mir ein gutes Buch empfehlen könnt. Da bin ich auf
OpenGL Shading Language - Amazon (http://www.amazon.de/OpenGL-Shading-Language-Randi-Rost/dp/0321334892/sr=8-1/qid=1159467577/ref=sr_1_1/028-8503805-9961302?ie=UTF8&s=books-intl-de)
und
GPU-Gems - Amazon (http://www.amazon.de/GPU-Gems-CD-ROM-Randima-Fernando/dp/0321228324/ref=pd_bxgy__img_b/302-4000619-2074444?ie=UTF8)
gestoßen. Ist eines der beiden Bücher gut, vor allem ist es ratsam direkt mit so etwas wie GPU-Gems zu beginnen, wenn man noch nie Shader programmiert hat? Sprich ist in diesem Buch eine Einführung in eine der Sprachen oder direkt nur Anwendungsbeispiele/Tips wie man es aus Gameprogramming-Gems kennt? Das 1. Buch scheint ja eher eine Einleitung zu sein. Ist dieses empfehlenswert?
Ich suche vor allem ein Buch, dass sich nicht zu lange mit irgendwelchem BlaBla aufhält und zur Sache kommt und eine Shadinglanguae gut erklärt, mit Beispielen übermalt und vielleicht ein Teil sogar etwas Anspruchsvollere Beispiele enthält, sodass mir nach aufmerksamen lesen (und verstehen) klar ist wie das alles genau funktioniert und ich meine eigenen Shader programmieren kann.

Ist das hier eigentlich das richtige Unterforum?:confused:

ScottManDeath
2006-10-17, 04:12:48
GPU Gems sind Anwendungsbeispiele, d.h. Du sollstest CG oder GLSL schon können ;)

Zum lernen entweder das CG Tutorial oder das Orange Book (OpenGL Shading Language, 2nd Edition)

Zwischen den Sprachen bestehen nur marginale Unterschiede. GLSL hat (zumindest für Dich jetzt im Moment) den Vorteil, dass es keine weiteren Bibliotheken benötigt und es mit der OpenGL Fixed Function Pipeline zusammenarbeitet, Du also graduell umsteigen kannst.

tokugawa
2006-10-17, 12:06:03
Dafür hat GLSL den Nachteil, einige (unverständliche) Umständlichkeiten erzwingen zu wollen.

Cg hat außerdem schon einige wirklich gute Features, die man mit GLSL nicht kriegt, etwa das CgFX Effektframework, sowie Sprachfeatures wie Interfaces, die wirklich nützlich sind.

Außerdem hätte man mit Cg gewissermaßen HLSL-Kompatibilität auch auf OpenGL, da Cg eine Obermenge von HLSL ist.

Es macht insgesamt denk ich aber nicht viel Unterschied. Aber NVIDIAs Homepage hat schon extrem viel Dokumentation zu Cg, eigentlich mehr als man zu GLSL findet im Netz. Da brauchst dann nicht mal ein Buch kaufen.


GPU Gems 1 und 2 tät ich trotzdem empfehlen, ist großteils auf hohem Niveau, viele der Artikel stammen aus der jeweils aktuellen Realtime-Rendering-Forschung.

rotalever
2006-10-17, 14:04:40
Wenn ich das nun richtig sehe, wäre es sinnvoll CG mit Tutorials von der Nvidia Seite zu lernen (hab da schon paar 600Seiten dicke PDFs gezogen:biggrin:) und anschließend sich mit GPU-Gems zu beschäftigen um ein paar Tricks zu erhalten. Das CG-Paket (Compiler) von Nvidia gibt es auch für Linux somit sollte da kein Problem sein?