- uniform sampler2D Part;
- void main(void)
- {
- vec4 look = texture2D(Part, vec2(gl_Vertex.x, gl_Vertex.y)) - vec4(0.5, 0.5, 0.5, 0.0);
- gl_Position = gl_ModelViewProjectionMatrix * look;
- }
DGL https://delphigl.com/forum/ |
|
Vertex Shader: Texturelookups extrem langsam https://delphigl.com/forum/viewtopic.php?f=20&t=6438 |
Seite 1 von 1 |
Autor: | .:Nico:. [ So Mär 11, 2007 15:20 ] |
Betreff des Beitrags: | Vertex Shader: Texturelookups extrem langsam |
Hallo, ich versuche mich an einem auf der GPU berechneten Partikelsystem und habe mich an eurem Tutorial im Wiki (GLSL_Partikel) versucht. Es funktioniert soweit auch alles, aber ich bekomme auf meinem System (Athlon64 3200 - Geforce 7800GS) nur ~6 FPS. Gerendert werden 65536 Point Sprites, die ich in einem VBO abgelegt habe. In den Vertex-Koordinaten speichere ich die Texture-Koordinaten der Partikel für die Texture "Part" in der die Position der Partikel gespeichert sind. Nach einigem Nachforschen habe ich die Weiterverarbeitung der aus der Textur gelesenden Werte im Vertex Shader als ultimativen Performancekiller ausgemacht. In seiner minimalsten Form sieht der Vertex Shader so aus: Code:
Das Problem ist die letzte Zeile. Nehme ich für "look" z. B. vec4(0.0) habe ich volle 60 Frames (irgendwie begrenzt der Treiber alle 3D-Applikationen auf 60 FPS). Oder ich lasse den Texturelookup (texture2D(...)) weg, dann habe ich auch volle 60 FPS. Die Textur wird korrekt an den Shader übergeben, zumindest wird sie richtig auf die Partikel gezeichnet wenn ich im Pixelshader gl_FragColor = texture2D(Part, vec2(0.0) angebe. (Die Texturekoordinaten sind egal, da sie durch glTexEnvf(GL_POINT_SPRITE, GL_COORD_REPLACE_ARB, GL_TRUE); ersetzt werden.) Also ich habe atm nicht den blassesten Schimmer warum das soviel Performance zieht ![]() Nico |
Autor: | LarsMiddendorf [ So Mär 11, 2007 16:47 ] |
Betreff des Beitrags: | |
Die Texture muss als internes Format RGBA32F_ARB oder INTENSITY32F_ARB haben. Im Artikel sind 16 Bit angegeben. Die Hardware unterstützt nur 4 oder 1 Komponente mit jeweils 32 Bit float. Entsprechende Informationen: ftp://download.nvidia.com/developer/Pap ... xtures.pdf |
Autor: | .:Nico:. [ So Mär 11, 2007 21:54 ] |
Betreff des Beitrags: | |
Ahhh...das ist's gewesen ![]() Jetzt läuft es wunderbar flüssig. Vielen, vielen Dank. Gruß Nico |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |