Registriert: Do Mär 06, 2003 15:27 Beiträge: 281 Wohnort: Bochum
Ab welcher Geforce-Genaeration werden Fragment-Programme unterst3ützt ? ich hab eben gemerkt das sie nämlich auf meiner Geforce4 ti4600 nicht gehen, das ist aber sehr komisch, da das doch im Prinzip das Gleiche ist wie n Pixelshader und die gehen auf meiner Karte !!
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Ja,Fragmentprogramme sind Pixelshader (der Begriff Pixelshader ist in meinen Augen allerdings falsch, Fragmentprogramm ist korrekter).
Allerdings basiert die OpenGL-Extension GL_ARB_Fragment_Program auf PS2.0, welche erst ab GeForceFX/Radeon9500 unterstützt werden.
Deine GeForce4 kann allerdings nur Pixelshader bis zur Version 1.4,die sich in OpenGL nur über die Herstellerspezifischen NV_Register_Combiner programmieren lassen.
Registriert: Sa Okt 26, 2002 17:14 Beiträge: 188 Wohnort: Hannover/Lüneburg
Ich meine aber, dass es noch die Extension GL_NV_fragment_program gibt, die auf einer Geforce 4 unterstützt wird. Sie entspricht in etwa schon der GL_ARB_fragment_program, nur werden vielleicht noch nicht alle Befehle unterstützt. Aber das Format ist sehr ähnlich.
_________________ Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?
GL_NV_fragment_program wird erst auf einer GFFX unterstützt und ist leistungsfähiger als die ARB Version. Weil die GFFX ja bei 32Bit Gleitkommawerten langsam ist, kann man dort auch für jede Berechnung die Genauigkeit festelegen. Bei Delphi3D gibt es eine Liste welche Karten welche Extension unterstützen.http://www.delphi3d.net/hardware/index.php Auf der GF4 kann man zusätzlich zu den Combinern noch die Texture Shader in den Versionen 1-3 benutzen. Für alle Effekte, bei denen die Texturekoordinaten im Shader berechnet werden benötigt man diese Texture Shader. Man hat da allerdings nicht viel Freiheit und kann pro Texture nur zwischen einigen festgelegten Texture Shadern (ca. 30) wählen. Man kann abhängig von dem Ergebnis eines Shaders die Texturekoordinaten verschieben,Skalarprodukte berechenen und damit auf Texturen zugreifen usw.. Etwas komplexere Effekte wie die Berechnung den Reflektionsvektors sind schon fest eingebaut.
Wenn man Register Combiner und Texture Shader in Textform einlesen möchte, dann gibt es dazu die nvparse.dll. Bei Delphi3D gibt es die konvertierte Schnittstellenunit dazu. Da hat man dann so eine Art eingeschänkten Pixel Shader. CG von NVidia kann auch diese Dateien für NVParse erzeugen, so daß man auf Umwegen auch die GF4 mit C programmieren kann.
Registriert: Sa Okt 26, 2002 17:14 Beiträge: 188 Wohnort: Hannover/Lüneburg
Aso, gut zu wissen, hatte das mit NV_fragment_program nur noch in etwa im Kopf, weil ich die Extension-Spezifikation nur grob überflogen hatte damals. Vielleicht hätte ich die mal genauer lesen sollen...
_________________ Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?
Mitglieder in diesem Forum: 0 Mitglieder und 7 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.