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

Aktuelle Zeit: So Jul 27, 2025 23:12

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



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Fragen zu Noise und Texturen in GLSL
BeitragVerfasst: Mo Sep 25, 2006 19:28 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
Hi Leutz,
hab mal nen paar kleine Fragen.

Ich haben einen sehr kleinen Shader geschrieben der nur per noise ein paar schöne Farben generiert.

VertexShader:
Code:
  1.  
  2. varying vec3 MPos;
  3.  
  4. void main(void)
  5.  {
  6.    MPos = gl_Vertex.xyz;
  7.    gl_Position = ftransfom();
  8.  }
  9.  


FragmentShader:
Code:
  1.  
  2. varying vec3 MPos;
  3.  
  4. void main(void)
  5.  {
  6.    gl_FragColor = vec4(noise3(MPos), 1.0);
  7.  }
  8.  


Dies ist sehr Performence lastig und ich wollte fragen wieso das so ist und warum die noise-Funktion nicht im VertexShader funktioniert?


Außerdem hätte ich noch eine Frage zum Multitexturing mit GLSL.
Ich habe das Beispiel aus dem Tutorial glSlang 2 so wie es ist übernommen aber es funzt nett wie es soll es wird egal was ich tuhe immer nur die Texture aus der TMU0 korekt angzeigt, die aus TMU1 ist komplett so "blaugrau". :(
Gibt es da irgendwas was ich beachten muss.

Danke im Voraus für Hilfe.

_________________
ghost-site.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 28, 2006 15:57 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
hat denn niemand eine antwort für mich :cry:

ok ja das noise problem kann man ja weglassen und davon ausgehen das noise einfach zu auwendig ist.

aber das Multitexturing lässt mir irgendwie keine ruhe.
ich mache das ganz normal:
-Texturen laden (2)
-glactivtexture und dann glbindtextur für beide
-uniform Variable an Fragment-Shader übergeben
-im vertexshader gl_TexCoord[0] = gl_MultiTexCoord0
-Fragment-Shader gl_FragColor = texture2d(tex0, vec2(gl_TexCoord[0])) * texture2d(tex1, vec2(gl_TexCoord[0]));

und siehe da ich sehe "Tex0"

Wenn ich den Shader weglasse und das Multitexturing "normal" mache gehts aber mit Shader nicht.

Hoffe diesmal kann mir jemand weiterhelfen.

_________________
ghost-site.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Sep 28, 2006 16:59 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Du musst die einzelnen Sampler innerhalb deiner Anwendung den entsprechenden TMUs zuordnen, denn per Default (kann je nach Implementation variieren) verweisen soweit ich mich noch erinnere alle Sampler auf die gleiche TMU (TMU0), deshalb siehst du wohl auch nur die Textur von TMU0.

Und zur Noisefunktion : Es kann gut möglich sein dass die bei deiner OpenGL-Implentation nicht in Hardware implementiert ist, sondern per Software emuliert wird und daher sehr langsam ist. So war das zumindest bei meiner R9700, die damals noch keinen HW-Noise konnte und Noise dann sehr langsam war. Warum der im VS nicht funzt kann ich nicht sagen, liegt evtl. auch an der OpenGL-Implementation, laut Specs ist das glaubich möglich.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Sep 29, 2006 15:51 
Offline
DGL Member
Benutzeravatar

Registriert: So Jun 04, 2006 12:54
Beiträge: 263
DIe noisy funktion sollte man meiden, da sie z.B. meist nur 0 zurückgibt. Meistend wird stat dessen eine Textur verwendet, wo man auch schon angepasste noisyalgoritmen wie perlinnoisy verwenden kann.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo Nov 13, 2006 20:33 
Offline
DGL Member
Benutzeravatar

Registriert: Fr Jun 20, 2003 13:59
Beiträge: 134
:oops: sind Ahhhaaa-Effekte nicht wunderbar. Besonders wenn sie erst nach fast 2 Monaten.
Ich will damit sagen ich hab den Fehler bei den Texturen gefunden. Und es ist eigendlich kein wunder das ich das übersehen habe.
Ich habe bei der Übergabe der TexturSampler geschrieben:

Code:
  1. glUniform1fARB()


und es muss ja

Code:
  1. glUniform1iARB()


heißen.
Jetz funzt es. Hätte vielleicht doch nen bissl Code posten sollen.
Wollte das nur noch mal bemerken falls sowas doch noch mal jemandem passiert *bezweifel* :!:

_________________
ghost-site.de


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 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.007s | 13 Queries | GZIP : On ]