- varying vec3 MPos;
- void main(void)
- {
- MPos = gl_Vertex.xyz;
- gl_Position = ftransfom();
- }
DGL https://delphigl.com/forum/ |
|
Fragen zu Noise und Texturen in GLSL https://delphigl.com/forum/viewtopic.php?f=20&t=5977 |
Seite 1 von 1 |
Autor: | PhoenixGL [ Mo Sep 25, 2006 19:28 ] |
Betreff des Beitrags: | Fragen zu Noise und Texturen in GLSL |
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:
FragmentShader: Code:
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. |
Autor: | PhoenixGL [ Do Sep 28, 2006 15:57 ] |
Betreff des Beitrags: | |
hat denn niemand eine antwort für mich ![]() 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. |
Autor: | Sascha Willems [ Do Sep 28, 2006 16:59 ] |
Betreff des Beitrags: | |
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. |
Autor: | oc2k1 [ Fr Sep 29, 2006 15:51 ] |
Betreff des Beitrags: | |
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. |
Autor: | PhoenixGL [ Mo Nov 13, 2006 20:33 ] |
Betreff des Beitrags: | |
![]() 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:
und es muss ja Code:
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* ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |