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

Aktuelle Zeit: Do Mär 28, 2024 11:26

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Functionen - Rückgabewert
BeitragVerfasst: Mi Jan 22, 2014 17:20 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Wieso funktioniert die unterste Zeile nicht ?

Die Function diffuse gibt einen float zurück, bei den auskommentierten Zeilen ist diffuse auch ein float und hier funktioniert es.
Code:
  1. #version 330
  2.  
  3. in vec2 UV;
  4.  
  5. in vec3 Pos;
  6. in vec3 Normal;
  7.  
  8. out vec4 FragColor;
  9.  
  10. uniform sampler2D myTextureSampler;
  11.  
  12. vec3 LightPosition = vec3(-1.0, 0.4, -1.1);
  13. float UmgebungsLicht = 0.3;
  14.  
  15. float diffuse()
  16. {
  17.   LightPosition = (LightPosition * -1.0) - Pos ;
  18.   float distance = length(LightPosition);
  19.   float dif = max(dot(Normal, LightPosition), UmgebungsLicht);
  20.   return dif * (1.0 / (1.0 + (0.25 * distance * distance)));
  21. }
  22.  
  23. void main()
  24. {
  25. //  LightPosition = (LightPosition * -1.0) - Pos ;
  26. //  float distance = length(LightPosition);
  27. //  float diffuse = max(dot(Normal, LightPosition), UmgebungsLicht);
  28. //  diffuse = diffuse * (1.0 / (1.0 + (0.25 * distance * distance)));
  29.  
  30.   FragColor = texture( myTextureSampler, UV ) * diffuse;
  31. }


Fehlermeldung:
Code:
  1. ERROR: 0:33: '*' :  wrong operand types  no operation '*' exists that takes a left-hand operand of type '4-component vector of float' and a right operand of type 'void' (or there is no acceptable conversion)

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Functionen - Rückgabewert
BeitragVerfasst: Mi Jan 22, 2014 17:30 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 587
Programmiersprache: C++
Weil du bei einem Funktionsaufruf immer Klammern setzen musst - auch wenn keine Parameter drin stehen. GLSL ist ja an C angelehnt und nicht an Pascal. :)

_________________
So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Functionen - Rückgabewert
BeitragVerfasst: Mi Jan 22, 2014 17:54 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1276
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Stimmt, C braucht Klammern. Nur bei der Fehlermeldung stand nirgends was von Klammern.

Danke!

_________________
OpenGL


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 11 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.046s | 17 Queries | GZIP : On ]