X_Loadshader funktioniert nicht richtig?

Previous topic - Next topic

Sebastian

Gernot, du sagtest doch, dass alle OpenGL kompatiblen Shader mit GLBasic funktionieren sollten.
Wieso funktionieren dann das folgende Beispiel nicht, obwohl ShaderEditor sagt, dass sie fehlerfrei auf meiner Karte kompiliert wurden?

Programmcode:
Code (glbasic) Select
IF X_LOADSHADER(0,"mytest.vert","mytest.frag") = FALSE
PRINT "Sorry, couldn't load the shader!",10,10
SHOWSCREEN
KEYWAIT
END
ELSE
X_MAKE3D 1,1000,45
X_SETSHADER 0
SHOWSCREEN
KEYWAIT
END
ENDIF


mytest.vert
Code (glbasic) Select
void main()
{
  gl_Position = ftransform();
}


mytest.frag
Code (glbasic) Select
void main()
{
  gl_FragColor = vec4(0.4,0.4,0.8,1.0);
}


Mach ich was falsch oder ist da ein Bug?
P.S.: X_Make3D lässt sich nur mit allen 3 Parametern benutzen, obwohl die Brennweite doch standardmäßig auf 45 eingestellt sein soll. Bug oder Feature ;)?

Edit: Ich hab grade festgestellt, dass das mitgelieferte Cartoon Shader Beispiel auch nicht funktioniert. Da konnte GLBasic den Shader auch nicht laden...

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Kitty Hello

Seltsam, ich hatte heute exakt das gleiche Problem!
Der Rückgabewert ist kaputt. Ignorier ihn bitte solange.

Schranz0r

ahh stimmt die Rückgabe ist falsch ^^
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Sebastian

#4
Hmm, egal was für Werte ich gl_FragColor zuweise, der Bildschirm bleibt immer schwarz  :S Der sollte doch eigentlich eine bestimmte Farbe anzeigen soweit ich das verstanden habe  :doubt:

Edit: Ahhhhhhhhhhh... Der Shader funktioniert nur, wenn man Objekte auf dem Bildschirm hat und die zeichnet. Bevor ich mir jetzt nen Wolf suche eine Frage an jmd. der Ahnung davon hat: wie beeinflusse ich den kompletten Bildschirm? Muss ich da ein Viereck erstellen, dort draufrendern und dann darstellen oder geht das auch einfacher?

Edit 2: Ok, man muss tatsächlich erstmal auf eine Textur rendern, die dann auf ein Quad ziehen und das dann Fullscreen anzeigen lassen. Dann mal ab ans Reißbrett und ein entsprechendes Framework entwerfen...

Kitty Hello

genau. Der Fragment Shader wird für jeden Pixel auf dem Bildschirm, der gerendert wird 1x aufgerufen.
Der Hit ist, dass die Grafikkarte mehrere Prozessoren hat, die alle parallel die Pixel verarbeiten können. Somit hat man einen Geschwindigkeitszuwachs, der extrem hoch ist im Vergleich zu 1-Prozessor Lösungen.

Sebastian

Jap. Meine Grafikkarte hat 800 Stream Prozessoren. Da frag ich mich wie es sein kann, dass es trotzdem noch Spiele gibt die nur knapp über 30 FPS laufen. Liegt das an der Komplexität der Shader oder wie?  :rant:

Schranz0r

I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Sebastian

Nein, Hellgate:London DirectX10 Modus  :glare:
Crysis ist ganz gut optimiert und die HD4850 ist ja mit einer Nvidia 9800GTX gleichzusetzen im Moment (mit den allerersten Beta Treibern).

WPShadow

Juhuuu! Noch ein Hellgate London Spieler! Ich bin nicht alleine!!! :good:
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Sebastian

Hellgate London rockt! Aber ich spiel grade nicht so viel. Day of Defeat gabs (bzw. gibts bis zum 10.) für $4,99, das sind umgerechnet 3,80 Euro inkl. Steuern. Dann noch GLBasic und Mathestudium. Und am Wochenende bin ich bei meiner Freundin (die übrigens auch Hellgate spielt ^^). Zu wenig Zeit ;) Gott sei Dank sind jetzt dann Semesterferien  :whistle:

Schranz0r

Day of Defeat : Source  zock ich auch ;)
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard