Jump to content

Missing mesh_leaf_base Impostor Rendering


photo

Recommended Posts

Problem

 

When trying to render imported SpeedTree geometry into impostors for increased performance it seams that leaf cards using mesh_leaf_base material will not be rendered into the impostor texture (please see attached screenshots), while stems with mesh_stem_base material will be rendered into the impostor as expected.

 

Also shadows seems to be rendered with full geometry, but I think this is expected behaviour as impostors normally should be used only for distances larger than regular shadow distance, right ?

 

post-82-0-03470000-1307949267_thumb.jpgpost-82-0-04372300-1307949279_thumb.jpg

Link to comment

Confirmed, see the attachment. Please fix it in next sdk Release, it's urgent.

I think the shadows for impostor should use the impostor as shadow caster. If objects turned into impostor, the distance is far far away, the shadow just don't need that kind of precision.

 

post-49-0-50821500-1307950583_thumb.jpg

Link to comment

Hi, unigine guys, please give us some info about this, is this a bug of imposter system or limitation of leaf_cards rendering?

Hi, if this part of manual ("Guidelines and Tips" section)

Use impostors (the Impostor flag in node settings). In effect, the impostors are automatically generated sprites that replace original meshes at a specified distance (Render settings → Common → Impostor distance). The impostors use three textures with grids of images of different objects. One is for 128×128 images, another is for 64×64 images, and the last one is for 32×32 images. The size of these textures depends on the value of the render_impostor console variable.

All impostors are drawn in one call. They are "baked" once, and most of them are not updated until the camera moves. Although each frame one impostor is updated to compensate for possible changes in lighting.

Alas, drawbacks also exist:


  •  
  • Memory consumption. This can be adjusted with the render_impostor console variable
  • If some object has the Impostor flag set, but the impostor grid is already full, this object will not be drawn at all. And that might be undesired.
  • There should be no shadows on the impostors because a shadow map is rendered for each impostor, and there can be lots of them. Try to move the impostors beyond the shadow distance and turn off shadow casting/receiving for surfaces of impostor objects.
  • Animated objects rendered as impostors might look weird, so it might be better to turn animation off.

 

doesn't cover this case, please attach to your reply in this thread or email (support@unigine.com) a part of the affected scene.

Link to comment

please attach to your reply in this thread or email (support@unigine.com) a part of the affected scene.

 

It should be easy to reproduce the problem based on UNIGINE vegetation sample (this one) by setting impostor flag for tree node model and setting samll impostor distance (e.g. 20m)

Link to comment
  • 3 weeks later...
  • 2 weeks later...

I should say that bug is partly fixed, leafcards rendered correctly, but the shadow still use full precision geometry. If shadow can use impostor to render, The render performance can get much higher FPS.

 

I've tested one scene with a lot of speedtree meshes, without impostor FPS count is 90~, with impostor and impostor distance set to 100, the FPS increased to 110~, set the impostor distance to 1, increased the FPS to 150~, it's a big performance increase.

 

So I suggest that imposter will be used to render the shadow pass.

Link to comment

I should say that bug is partly fixed, leafcards rendered correctly, but the shadow still use full precision geometry. If shadow can use impostor to render, The render performance can get much higher FPS.

 

I've tested one scene with a lot of speedtree meshes, without impostor FPS count is 90~, with impostor and impostor distance set to 100, the FPS increased to 110~, set the impostor distance to 1, increased the FPS to 150~, it's a big performance increase.

 

So I suggest that imposter will be used to render the shadow pass.

 

Thank You for your valuable remarks - we'll pass that on to our devs. Will keep you updated.

Link to comment
×
×
  • Create New...