Burst Render Gives Twice The FPS as Instancing...

poly-gone

Newcomer
Here's a little vertex instancing demo that I cooked up. It renders a hundred 11,000+ poly (~1.2 million polys) trees using both vertex instancing and burst rendering.

What I can't understand is why the burst rendering mode gives nearly twice the fps as the instancing mode on my Radeon 9600 PRO. Could there be a bug in the code?

I'd really appreciate it if you guys check it out and tell me what kinda framerates you get. The download is roughly 1.2 MB (contains source as well).

http://www.geocities.com/anidex/Instancing.zip
 
Whoa, 11k+ polys per object?

The purpose of instancing is to reduce draw call overhead on the CPU by shifting some overhead to the GPU. It will only help you if you're draw call limited, i.e. with low-poly objects.
 
Yeah you're unlikely to see any kind of benefit to instancing with no AI/physics and so high-detail objects. However, I still don't see why it'd be *that much* slower than burst rendering. Anyone got a clue here? :)

Uttar
 
Yup, the model is just way too large for instancing. I quickly renamed tree.x to tree.xxx and copied the arrow.x file you had there to tree.x, and now instancing is like four times faster than burst rendering.
 
Hmm... 11K polys is quite a lot :) Thanks guys, this was just my first instancing app (I was inspired by Humus, of course ;))!
 
Humus said:
Yup, the model is just way too large for instancing. I quickly renamed tree.x to tree.xxx and copied the arrow.x file you had there to tree.x, and now instancing is like four times faster than burst rendering.

Humus, I have a question for you or anyone that would know the answer.

Is it possible to render the grass in a game like Madden or Fifa with as pretty grass as we see in Farcry or BF: Vietnam using instancing seing it's pretty big scale compared to the small patches we see in Farcry and BFV?

Is rendering 100k grass leafs 10 times as demanding as rendering 10k grass leafs.

It's about time we get some real grass in Madden/Fifa!!!
 
I think something like fur rendering is much more reasonable than rendering single blades of grass which will occupy only single digit numbers of pixels most of the time.
 
Xmas said:
I think something like fur rendering is much more reasonable than rendering single blades of grass which will occupy only single digit numbers of pixels most of the time.

I don't understand.
 
Leto said:
Xmas said:
I think something like fur rendering is much more reasonable than rendering single blades of grass which will occupy only single digit numbers of pixels most of the time.

I don't understand.
Since the blades of grass will be so small on screen, there's no point to rendering grass as individual textured polygons. Instead, using a fur-rendering technique will certainly look good enough.
 
The ATI bear and chimp as well as the Nvidia Wolfman has some pretty darn ugly fur if you ask me, but the ATI tool fur cube is nice.

I just can't imagine what it would look like for a bigscale grass field.
 
It looks pretty good if you can live with the fillrate requirements and solve some of the aliasing issues.
 
I just can't imagine what it would look like for a bigscale grass field.
something like this i think...
starfox_screen018.jpg

images stoel from gamespot. the game is starfox adventures. it uses the fur technique for grass and characters, and there's tons of subtle DOF effects as well.
 
poly-gone said:
Hmm... 11K polys is quite a lot :)

Yup. The ideal case for instancing seems to be around 10-100 triangles in my experience. You'll see a performance gain up to a few hundred triangles, but with diminishing returns as you go up.
 
Leto said:
Humus, I have a question for you or anyone that would know the answer.

Is it possible to render the grass in a game like Madden or Fifa with as pretty grass as we see in Farcry or BF: Vietnam using instancing seing it's pretty big scale compared to the small patches we see in Farcry and BFV?

Is rendering 100k grass leafs 10 times as demanding as rendering 10k grass leafs.

It's about time we get some real grass in Madden/Fifa!!!

I haven't played those games so I don't know how things look now, but rendering grass is one of the things where instancing may provide a benefit. If 100k grass leaves end up as 10 times as demanding depends on what's the bottleneck, but it will likely a good deal more demanding though.
 
Why would you use instancing for rendering individual grass blades? Seems completely moronic to me, you can just aggregate blades into patches or clumps of grass to reduce call overhead, which you're required to do anyway for any sort of LOD system (which is pretty much required for grass, e.g. full geometry up close, fur/3d textured shells further away and flat geometry with fins even further away). Changing the modelview matrix for EVERY blade of grass doesn't seem very efficient to me, even with instancing. It's not like storing vertices for a couple of hundred blades of grass consumes vast resources anyway.
 
Back
Top