| DGL https://delphigl.com/forum/ |
|
| glSlang auf ATI-Karten https://delphigl.com/forum/viewtopic.php?f=20&t=4458 |
Seite 1 von 1 |
| Autor: | Gran [ Do Aug 18, 2005 22:45 ] |
| Betreff des Beitrags: | glSlang auf ATI-Karten |
Servus, hab' mal wieder was mit Shadern gemacht...und zwar Bump Mapping. Auf meiner GeForce 6800 GT läuft das ganze auch exzellent, als mein Kumpel das Programm aber bei sich laufen lies, erhielt er ettliche Fehlermeldungen, u.a. bezüglich der Konvertierungen von vec3 zu vec4 (nur eins von vielen Beispielen). Ich hab' mich dann mal hingesetzt und alles nochmal "genauer" programmiert, d.h. überall Konstruktoren benutzt usw., bis das Prog auch bei ihm ohne Fehlermeldungen startete. Während die verbesserten Shader bei mir immer noch genau so aussahen, wurden sie auf der Radeon 9800 Pro nicht wirklich angewendet, viel mehr wurde scheinbar der komplette Shadercode übersprungen (obwohl bei beiden Shaderteilen nur eine leere MessageBox ausgegeben wurde). Zu sehen war weder Licht noch irgendein Bump-Effekt, es war, als hätte man einfach nur eine Textur draufgelegt. An den Treibern kann es nicht liegen, die sind von der neusten oder zweit-neusten Version. Ich wüsste gern, ob jemand mir da ein paar Tips geben kann, was man beachten muss, dass die Shader auch von ATI Karten korrekt benutzt werden können. Notfalls kann ich auch mal den Shadercode hier posten, hätte aber gerne ein paar generelle Hinweise, dass ich das beim nächsten Shader besser machen kann. Mfg, Gran |
|
| Autor: | Grizzly [ Fr Aug 19, 2005 09:58 ] |
| Betreff des Beitrags: | |
zu glsl auf ati karten ist allgemein zu sagen, dass sie (wie du ja auch festgestellt hast) es schon übertrieben genau nehmen mit sachen wie typkonvertierung usw. bei sowas muss man also aufpassen. Die einzige Möglichkeit die wirklich hilft ist meiner erfahrung nach aber nur sich mit ner ATI Karte hinsetzen und schaun das man das zum laufen kriegt. wenn du willst würde ich das mal machen Wenn der shader nicht ausgeführt wird ist das ansich ein recht klarer hinweisdass er nicht richtig kompiliert ist. |
|
| Autor: | LarsMiddendorf [ Fr Aug 19, 2005 10:01 ] |
| Betreff des Beitrags: | |
Cg funktioniert ja auch mit ATI Karten und man kann per "-oglsl" Parameter auf GLSL Syntax umschalten. Da der Compiler dann extern ist, weiß man wenigstens was generiert wird. |
|
| Autor: | Gran [ Fr Aug 19, 2005 14:46 ] | ||
| Betreff des Beitrags: | |||
danke für die schnellen Antworten. Zu den cg Shadern kann ich nur sagen, dass ich mir das schlicht und einfach nicht zutraue, da mir dazu das Material fehlt. glSlang konnte ich (fast) problemlos mit Sascha's exzellentem Tut lernen, zu den CG Shadern hab' ich bisher leider nix gefunden, was ich verstehe. @Grizzly: Vielen Dank für das Angebot, scheint mir mittlerweile auch die einzige Lösung zu sein. Hab' den Source angehängt, wäre sehr nett wenn du dir das mal ansiehst. EDIT: Für die Normal Map war leider kein Platz mehr
|
|||
| Autor: | Grizzly [ Fr Aug 19, 2005 20:08 ] |
| Betreff des Beitrags: | |
--------------------------- Opengl15_template --------------------------- ERROR: 0:8: '__LightPosition' : reserved built-in name ERROR: 0:13: '__LightPosition' : undeclared identifier ERROR: 2 compilation errors. No code generated. --------------------------- OK --------------------------- --------------------------- Opengl15_template --------------------------- ERROR: 0:12: '__SourceAmbient' : reserved built-in name ERROR: 0:13: '__SourceDiffuse' : reserved built-in name ERROR: 0:15: '__MaterialSpecular' : reserved built-in name ERROR: 0:16: '__MaterialShininess' : reserved built-in name ERROR: 0:25: '*' : wrong operand types no operation '*' exists that takes a left-hand operand of type '3-component vector of float' and a right operand of type 'const int' (or there is no acceptable conversion) ERROR: 0:27: '__SourceAmbient' : undeclared identifier ERROR: 0:28: '__SourceDiffuse' : undeclared identifier ERROR: 0:29: '__MaterialSpecular' : undeclared identifier ERROR: 0:29: '__MaterialShininess' : undeclared identifier ERROR: 0:29: '=' : cannot convert from 'float' to '4-component vector of float' ERROR: 10 compilation errors. No code generated. --------------------------- OK --------------------------- auf ner 9500 pro akzeptiert er schonmal scheints keine underlinesasl veriablenanfang weiterhin hab ich festgestellt, und das ist das merkwürdige, dass der Wert von IDiffuse allgemein nicht 0 ist, aber bei interaktion mit texture2D(texSampler, vec2(gl_TexCoord[0])) scheinbar als 0 angenommen wird |
|
| Autor: | LarsMiddendorf [ Fr Aug 19, 2005 20:43 ] |
| Betreff des Beitrags: | |
Zitat: glSlang konnte ich (fast) problemlos mit Sascha's exzellentem Tut lernen, zu den CG Shadern hab' ich bisher leider nix gefunden, was ich verstehe.
Cg kann auch GLSL. Zur Not kann man das mit dem Kommandozeilenkompiler per Hand kompilieren und die Assembler Shader Datei laden, falls man nicht die Cg DLL dabei haben möchte. |
|
| Autor: | Gran [ Fr Aug 19, 2005 22:36 ] |
| Betreff des Beitrags: | |
oops, sorry, hab' vergessen zu sagen, dass ich eben diese Fehler alle (scheinbar) verbessert habe, also so, dass das Programm ohne Fehlermeldungen auf ATI Karten kompiliert wurde, und bei mir immer noch das gleiche Ergebnis lieferte. Aber scheinbar wurde es doch nicht richtig kompiliert und zeigte einfach nur eine ganz normale Textur an. |
|
| Autor: | Blechwolf [ Di Aug 23, 2005 08:48 ] |
| Betreff des Beitrags: | |
Grizzly hat geschrieben: auf ner 9500 pro akzeptiert er schonmal scheints keine underlines als variablenanfang
Ich meine mich zu erinnern, das in dem "Orange Book" drin stand, das der _ am Anfang einer Variable für den internen Gebrauch reserviert ist und Variablen mit __ (zwei Underscore) für die Zukunft reserviert sind und nicht verwendet werden sollten. |
|
| Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|