Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Mai 29, 2024 19:24

Foren-Übersicht » Programmierung » Shader
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Shader Fehler
BeitragVerfasst: Mi Okt 24, 2012 11:07 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
Hallo Leute,
ich verstehe es nicht^^ Irgendwie mag mein Programm Shader nicht. Ich versuche den einfachsten alles Shadercodes zu kompilieren:
Code:
  1.  
  2. //Vertexshader
  3. void main(void)
  4. {
  5.     gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
  6.     gl_FrontColor = gl_Color;
  7. }
  8.  

Code:
  1.  
  2. //Fragmentshader
  3. void main(void)
  4. {
  5.     gl_FragColor = gl_Color;
  6. }
  7.  


Und dazu benutzte ich folgenden Quellcode:
Code:
  1.  
  2. var VertexShaderList,FragmentShaderList: TStringList;
  3.     VertexShaderText,FragmentShaderText:String;
  4.     VertexShaderLength,FragmentShaderLength: Integer;
  5. begin
  6.   //Shader laden
  7.   //Shaderscripte laden
  8.   VertexShaderList:=TStringList.Create;
  9.   FragmentShaderList:=TStringList.Create;
  10.   VertexShaderList.LoadFromFile('Shader\Testshader\test.vert');
  11.   FragmentShaderList.LoadFromFile('Shader\Testshader\test.frag');
  12.   VertexShaderText:=VertexShaderList.Text;
  13.   FragmentShaderText:=FragmentShaderList.Text;
  14.   VertexShaderLength:=Length(VertexShaderText);
  15.   FragmentShaderLength:=Length(FragmentshaderText);
  16.   //Shaderscripte freigeben
  17.   VertexShaderList.Free;
  18.   FragmentShaderList.Free;
  19.  
  20.   //Shader erstellen
  21.   ProgramObject:=glCreateProgramObjectARB;
  22.   VertexShaderObject:=glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB);
  23.   FragmentShaderObject:=glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB);
  24.   glShaderSourceARB(VertexShaderObject,1,@VertexShaderText,@VertexShaderLength); //Shader zuweisen
  25.   glShaderSourceARB(FragmentShaderObject,1,@FragmentShaderText,@FragmentShaderLength);
  26.  
  27.  
  28.   //Shader Compilieren
  29.   glCompileShaderARB(VertexShaderObject);
  30.   MessageDlg('VertexShader: '+glSlang_GetInfoLog(VertexShaderObject),mtError,[mbOK],0);
  31.   glCompileShaderARB(FragmentShaderObject);
  32.   MessageDlg('FragmentShader: '+glSlang_GetInfoLog(FragmentShaderObject),mtError,[mbOK],0);
  33.  
  34.   //Shader mit Shaderprogramm binden
  35.   glAttachObjectARB(ProgramObject,VertexShaderObject);
  36.   glAttachObjectARB(ProgramObject,FragmentShaderObject);
  37.  
  38.   //Shader Ressourcen freigeben
  39.   glDeleteObjectARB(VertexShaderObject);
  40.   glDeleteObjectARB(FragmentShaderObject);
  41.  
  42.   //Shaderprogramm zum ausführbaren Programm gelinkt
  43.   glLinkProgramARB(ProgramObject);
  44.  
  45.   glUseProgramObjectARB(ProgramObject); //Shader benutzten
  46.  
  47.  


Und ich bekomme immer folgenden Fehler:
Fragmentshader: (0): error C0000: syntax error, unexspected $end, expecting "::" at token <EOF>"
Vertexshader: (0): error C0000: syntax error, unexspected $end, expecting "::" at token <EOF>"

Ich benutzte eine NVIDA Geforce GTX 560 TI


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shader Fehler
BeitragVerfasst: Mi Okt 24, 2012 11:34 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Neueres Delphi? Wenn ja ist String nen WideString und du willst statt dessen einen AnsiString verwenden. Eventuell ist auch die übergabe der Strings an die glShaderSource-Funktionen falsch, wenn der obere Tipp nicht hilft bzw. du ein älteres Delphi verwendest, versuch mal ein @foo[1] anstatt @foo (nur für die strings, nicht für die längen).

grüße

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shader Fehler
BeitragVerfasst: Mi Okt 24, 2012 11:47 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
Ich benutzte Delphi 2009 Professional.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shader Fehler
BeitragVerfasst: Mi Okt 24, 2012 11:57 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
Ich habe den String durch einen Widestring ausgetauscht. Hat leider nicht geklappt.
Es wird auch ein PPGLcharARB verlangt. Das müsste nämlich sogar ANSI sein denn:

PPGLcharARB = ^PGLcharARB;
PGLcharARB = PAnsiChar;

Aber danke für die Hilfe :D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shader Fehler
BeitragVerfasst: Mi Okt 24, 2012 11:59 
Offline
DGL Member

Registriert: So Sep 26, 2010 16:19
Beiträge: 64
Programmiersprache: Pascal
Ich habe String durch ANSIString getauscht.
Jetzt kommt kein Fehler ;)

Danke für die Hilfe, ich wäre nämlich nicht auf so einen Fehler gekommen ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Shader Fehler
BeitragVerfasst: Mi Okt 24, 2012 17:50 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Sag ich doch ;). Du sollst String durch AnsiString ersetzen, weil die neueren Delphi-Versionen standardmäßig nen WideString verwenden.

grüße ;)

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Shader


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 15 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.019s | 17 Queries | GZIP : On ]