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

Aktuelle Zeit: Di Mai 21, 2024 13:04

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Uniform Variablen im Shader
BeitragVerfasst: Fr Jan 16, 2015 10:40 
Offline
DGL Member

Registriert: Di Dez 16, 2014 10:18
Beiträge: 32
Programmiersprache: C++
Hallihallo,

wenn ich eine uniform-Variable in meinem Shader mithilfe von glUniformXX definiere, ist diese beim nächsten Aufruf von glUseporgram noch gespeichert oder muss sie neu definiert werden?

Code:
  1.  
  2. glUseprogram(XY);
  3. glUniform1f(pos, 123);
  4. glUseprogram(0);
  5. ...
  6.  
  7. glUseprogram(XY);
  8. glUniform1f(pos, 123); // unnötig?
  9. glDraw....();
  10. glUseprogram(0);
  11.  


Dankeschön :)


Zuletzt geändert von beecksche am Fr Jan 16, 2015 12:00, insgesamt 2-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Uniform Variablen im Shader
BeitragVerfasst: Fr Jan 16, 2015 11:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Aug 14, 2013 21:17
Beiträge: 588
Programmiersprache: C++
Die Uniformvariable behält solange ihren Wert, bis du sie auf einen anderen setzt. Wie oft du dazwischen glUseProgram aufrufst, spielt keine Rolle.

_________________
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: Uniform Variablen im Shader
BeitragVerfasst: Fr Jan 16, 2015 11:59 
Offline
DGL Member

Registriert: Di Dez 16, 2014 10:18
Beiträge: 32
Programmiersprache: C++
Okay super danke.
:idea: Also wird die uniform Variable mit glUniform im aktuellen Shaderporgramm (glUseprogram) gespeichert.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Uniform Variablen im Shader
BeitragVerfasst: Fr Jan 16, 2015 16:00 
Offline
Compliance Officer
Benutzeravatar

Registriert: So Aug 08, 2010 08:37
Beiträge: 460
Programmiersprache: C / C++ / Lua
Ich würde nicht drauf vertrauen. Es gibt Treiber, die das nicht supporten.

_________________
offizieller DGL Compliance Beauftragter
Never run a changing system! (oder so)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Uniform Variablen im Shader
BeitragVerfasst: Fr Jan 16, 2015 16:28 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
@end Dann würden die Treiber die Vorgaben von OpenGL nicht richtig erfüllen: They retain the values assigned to them by a call to glUniform until the next successful link operation occurs on the program object, when they are once again initialized to 0. Die Variablen werden nur einmal auf 0 initialisiert, nämlich beim Linken des Programms. Der Variablenwert wird erst wieder beim nächsten Aufruf von glUniform geändert.

_________________
Wenn Gauß heute lebte, wäre er ein Hacker.
Peter Sarnak, Professor an der Princeton University


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Uniform Variablen im Shader
BeitragVerfasst: Fr Jan 16, 2015 18:13 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Mai 31, 2002 19:41
Beiträge: 1278
Wohnort: Bäretswil (Schweiz)
Programmiersprache: Pascal
Zitat:
Die Variablen werden nur einmal auf 0 initialisiert, nämlich beim Linken des Programms.

Wen dir 0 als Standard nicht gefällt, kannst du auch im Shader direkt einen Standard-Wert zuweisen.

Dies ist recht praktisch, in dem unter Beispiel währe die Ausgabe Transparent ohne Standard-Vorgabe.

Beispiel:
Code:
  1. uniform vec4 VecColor = vec4(1.0, 1.0, 1.0, 1.0);  

_________________
OpenGL


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Uniform Variablen im Shader
BeitragVerfasst: Mo Jan 19, 2015 11:59 
Offline
DGL Member

Registriert: Di Dez 16, 2014 10:18
Beiträge: 32
Programmiersprache: C++
Danke für die Infos & Tips!


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 12 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.031s | 19 Queries | GZIP : On ]