Jump to content

Invisible shader and FPS stat


Rick
 Share

Recommended Posts

So I'm playing around with a bunch of cubes. 16 wide by 16 deep and between 1 and 8 height. I make them all have the invisible material and I print out the stats to the screen.

 

When I have 1 layer height (just 16x16 cubes) I get 250 fps. The stats say 0 polygons (which I expect).

When I have 8 height layers of 16x16 width/deep I get 70 fps. The stats still say 0 polygons.

 

If no polygons are being drawn why do I get the big drop in fps? All the other information stays the same.

 

0 polygons

0 shadow polygons

1 lights drawn

1 shadows rendered

0 batches

0 draw calls

Render time: 0

Update time: 0

 

So what's causing the big fps drop?

 

[edit]

I notice if I Hide() the cubes then it goes back up. So I assume the looping over all these in the octree is causing this fps hit?

Link to comment
Share on other sites

My guess is that each material is also a drawcall. Not sure how LE handles identical materials, though. Would be good if they get batched, reducing the drawcalls. Also, i notice in your stats that you have one shadow rendered. It might be caused by the 'Cast shadows' setting on the invisible material that is set to 'on'?

 

Anyhow, it's just a wild guess. wink.png

 

ZBrush 4R7 64-bit - 3DCoat 4.5 BETA 12 - Fl Studio 12 64Bit - LE 3.2 Indie version - Truespace 7 - Blender 2.71 - iClone 5.51 Pro - iClone 3DXChange 5.51 pipeline - Kontakt 5 - Bryce 7 - UU3D Pro - Substance Designer/Painter - Shadermap 3 - PaintShop Photo Pro X7 - Hexagon - Audacity - Gimp 2.8 - Vue 2015 - Reaktor 5 - Guitar Rig 5 - Bitmap2Material 3

Link to comment
Share on other sites

I presume invisible shader remains a call to GPU to render the "invisible" material ?

Disabling shadow is that better ?

 

When I have 8 height layers of 16x16 width/deep I get 70 fps. The stats still say 0 polygons.

It's surprising such frame rate drop down, almost 200 FPS loosed , as 16*16 simple cubes is small compared to Minecraft worlds. What is good , is you find some bottleneck in LE3 that should be optimized.

Some good link

http://gamedev.stackexchange.com/questions/22664/how-can-i-improve-rendering-speeds-of-a-voxel-minecraft-type-game

Stop toying and make games

Link to comment
Share on other sites

I presume invisible shader remains a call to GPU to render the "invisible" material ?

 

There doesn't seem to be an invisible shader though. Just material with no shader assign to it so I assume the engine itself is doing something with the mat. I thought there used to be an invisible shader that just did a discard in it, but can't recall exactly. I figured the engine would see that this surface had this material setting assigned and then wouldn't pass it to be rendered at all.

 

So to me it looks like one thing I can do is to Hide() all blocks the camera can't see. This should only need to be done at the start (is the block surrounded or not) and each time in a small chunk when I remove/add blocks, but even when I do that there will be a fair amount of blocks that can be seen and it looks to me that rendering them isn't the bottleneck (given when they have the invisible material I get the same poor result and that doesn't render them). So it must be something about how many objects are being iterated over by the engine in the scene graph.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...