Sign in to follow this  
HyDr0x

Dynamic Instancing

Recommended Posts

Hi folks,
well, I'd like to know whether dynamic instancing is worth the higher effort or not. I refer to the GPU Gems 2 article about that, if I understand it, they are saying that I must skin the geometry by the CPU before streaming the vertices to the GPU. Is that right? If so, isn't it more complex to do all those transformations? I mean I have something about 300 to 1000 vertices per skinned mesh and im drawing like 1000 or more of them. this results in aproximately 1000 draw calls. If i would pack them all into one single vertexbuffer, would this cause in higher framerates? I've done a small test and drawed 2000 of those small meshes and got 38 FPS with ~900.000 Polygons and my CPU was to 100% busy (task manager). When I looked away (I've done culling) I had 60 FPS and my CPU was only to ~50% busy. So I think it dynamic instancing could reduce this. I also rendered a more complex mesh ~3900 poylgons ~448 times. So I had ~8M polygons with 50 FPS. Those numbers are telling me that i should batch my geometry much more. But on the other hand I've made a simple test transforming some matrices for all those models and the framerate dropped down to 20. Should I use multithreading? Or is my idea of dynamic instancing totaly wrong? Oh and sorry for my english >.<

Share this post


Link to post
Share on other sites
I'm using XNA with DirectX9, and I think thats the problem because all what I heard is that DirectX9 isn't as good as DirectX10 in sampling textures in the vertex shader. So I think that for example pallete skinning ( I refer to the Skinned Instancing white paper from nvidia) isn't working very good on it.

Share this post


Link to post
Share on other sites
You can still sample textures in a vertex shader in DX9, it was just slow on DX9 GPU's. If you have any GPU that supports DX10 or higher, you can use textures in a vertex shader and it will be fast.

Share this post


Link to post
Share on other sites
Ah, okay, that makes sense. I wasn't sure about this. So thank you for bringing me some clarity. Now I'll have to test which is faster, CPU multithreading or GPU palette Skinning :-)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this