|
#1
|
|||
|
|||
Vertex shader performance problem
Hello,
I have just started experimenting with vertex shaders and I have a performance problem. Below is an example program that shows my problem: Code:
import viz import vizshape viz.go() vizshape.addGrid() viz.MainView.setPosition(0, 1, -5) vert = """ uniform float elapsedTime; void main() { if( gl_MultiTexCoord0.y > 0.0) { gl_Vertex.x += sin(gl_Vertex.x * 0.2 + elapsedTime * 1.0) * gl_MultiTexCoord0.y * 0.2; gl_Vertex.z += sin(gl_Vertex.y * 0.2 + elapsedTime * 1.0) * gl_MultiTexCoord0.y * 0.2; } gl_FrontColor = gl_Color; gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; } """ shape = vizshape.addQuad() elapsedTime = viz.addUniformFloat('elapsedTime', viz.tick()) shader = viz.addShader(vert = vert, uniforms = [elapsedTime]) shape.apply(shader) def onUpdate(e): elapsedTime.set(viz.tick()) viz.callback(viz.UPDATE_EVENT,onUpdate) Greetings, Joran. |
#2
|
|||
|
|||
I don't think you are doing anything wrong. I tried your sample code and my draw time is 0.04 using a GeForce 8800 GTS. This might be an issue with your OpenGL drivers.
FYI, you don't have to create your own elapsed time uniform. OpenSceneGraph supplies the following global uniforms that you can use in any shader: Code:
int osg_FrameNumber; float osg_FrameTime; float osg_DeltaFrameTime; Code:
import viz import vizshape viz.go() vizshape.addGrid() viz.MainView.setPosition(0, 1, -5) vert = """ uniform float osg_FrameTime; void main() { if( gl_MultiTexCoord0.y > 0.0) { gl_Vertex.x += sin(gl_Vertex.x * 0.2 + osg_FrameTime * 1.0) * gl_MultiTexCoord0.y * 0.2; gl_Vertex.z += sin(gl_Vertex.y * 0.2 + osg_FrameTime * 1.0) * gl_MultiTexCoord0.y * 0.2; } gl_FrontColor = gl_Color; gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; } """ shape = vizshape.addQuad() shader = viz.addShader(vert = vert) shape.apply(shader) |
#3
|
|||
|
|||
I updated my driver and now it works as expected. And I now also use the osg global uniforms. Thanx.
Greetings, Joran. |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
fps performance caused by garbage collection? | Mike Konstant | Vizard | 7 | 09-03-2012 01:44 PM |
Improve performance with large number of onthefly objects? | Fox5 | Vizard | 7 | 04-28-2008 06:19 PM |
5DT Data Glove 5 Ultra Problem | bjgold | Vizard | 1 | 08-08-2006 05:08 PM |
problem with female animations | vmonkey | Vizard | 1 | 10-07-2005 11:36 AM |
sound problem | alaa | Vizard | 7 | 09-02-2005 02:13 PM |