GLBasic forum

Main forum => Bug Reports => Topic started by: Sebastian on 2008-Jul-07

Title: X_Loadshader funktioniert nicht richtig?
Post by: Sebastian on 2008-Jul-07
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...
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Schranz0r on 2008-Jul-07
Es ging aber mal :/
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Kitty Hello on 2008-Jul-07
Seltsam, ich hatte heute exakt das gleiche Problem!
Der Rückgabewert ist kaputt. Ignorier ihn bitte solange.
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Schranz0r on 2008-Jul-07
ahh stimmt die Rückgabe ist falsch ^^
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Sebastian on 2008-Jul-07
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...
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Kitty Hello on 2008-Jul-07
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.
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Sebastian on 2008-Jul-07
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:
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Schranz0r on 2008-Jul-07
Lass mich raten : Crysis ?  :booze:
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Sebastian on 2008-Jul-07
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).
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: WPShadow on 2008-Jul-08
Juhuuu! Noch ein Hellgate London Spieler! Ich bin nicht alleine!!! :good:
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Sebastian on 2008-Jul-08
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:
Title: Re: X_Loadshader funktioniert nicht richtig?
Post by: Schranz0r on 2008-Jul-08
Day of Defeat : Source  zock ich auch ;)