Author Topic: [solved] Corona Scatter Exclude areas  (Read 26314 times)

2015-10-01, 18:21:07
Reply #15

Torsten

  • Active Users
  • **
  • Posts: 78
    • View Profile
Yes, the problem was that the gradient between black and white was too small. I added a larger gradient edge, and now its much better.

2015-10-01, 18:56:44
Reply #16

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8834
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Now this looks really good.

If you can afford to choose (which usually is not the case), when instancing/scattering, it is always best to minimize the higher of (number of instances, number of polygons in the instance). This is usually done by having approximately same number of instances as number of polygons. This will be the best compromise between speed and memory usage.

Sorry to bother you, but this is not entirely clear to me. Are you saying that optimal way is to have single poly proxies for such scenario? Or i completely misinterpreted you?
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2015-10-01, 21:48:14
Reply #17

rambambulli

  • Active Users
  • **
  • Posts: 159
    • View Profile
Hi Guys,

I made some tests. On this scale there seems to be no difference.
Here I assume that instancing a grass leaf or a teapot doesn't make a difference. I chose the teapot to show what I did. With grass leaf this is a lot harder to show :).

As far as I can see  (but I am no render engine expert) there is no real difference between the different size of patches.
I assumed in this test that a large patch of teapots (or grass) is 2 or 4 times as big as a small patch of 5 teapots (or grass). Filled with the same geometry and trying to achieve the same density of course.
I was amazed to see that my tests don't really show any difference in render time. And only the single teapot instanced increased the memory usage noticeably.
I tested the single teapot just to test it. When creating grass a single grass leaf is very unusable I think.

Ondra if I understand you right, you mean: instead of using 10 instances of 100 poly object or 100 instances of 10 poly objects, you better use 31 instances of a 31 poly object. Right?

I can also imagine the LOD option in Forest Pack can make a real difference. So I still use the smaller patch but with far less complicated geometry as the geometry is further away from the camera. This could be the ideal option to find a balance between polys and instances.

@tmiddelkoop sorry for hyjacking your thread :)

2015-10-01, 22:04:55
Reply #18

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
I know I should not talk about it, because it will almost surely get misinterpreted into some horrible advices, but whatever ;))

If you need to render 100 000 000 grass blades (for simplicity 1 blade = 1 polygon), obviously you dont want to do no instancing ( 1 * 100 000 000) - it would not fit into RAM.
You also dont want to scatter individual blade 100M times (100 000 000 * 1), the scatter would compute for ages (and then it would crash on RAM).
Ideally you want to do 10 000 blades 10 000 times. It will give you the lowest RAM consumption (which is calculated as 10 000 instances PLUS 10 000 polygons - so 20 000 units of RAM - in other examples it would be 100 000 000 instances + 1 polygon = 100 000 001 units of memory, or 1 instance + 100 000 000 polygons = again 100 000 001 units of memory). You will also get the lowest precomputation time (which is again rougly computed as number of polygons PLUS (+) number of instances, NOT TIMES (*)). You will also get reasonable speed (highest speed is usually when using no instancing at all, but we already established that is not practical).

Obviously this is not applicable for many situations (such as scattering cars/trees- you cannot replace 5 highpoly cars with 5 000 lowpoly ones ;)). For scenarios like 1000 poly/instances this does not matter at all. Also cost per instance might be bigger than cost per triangle, so maybe it is better to go for instance polycount = 3*instance count. Or maybe 10? Hard to say ;)
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2015-10-01, 23:31:08
Reply #19

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8834
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Thank you very much for info!
« Last Edit: 2015-12-26, 20:26:04 by romullus »
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2015-10-02, 09:04:34
Reply #20

rambambulli

  • Active Users
  • **
  • Posts: 159
    • View Profile
Ondra that's interesting!

Btw I hope nobody took my little test as an advice.
Especially not when they could turn in horrible results :).
I was just wondering and trying to understand how it works. Thanks for explaining.

2015-10-02, 11:47:31
Reply #21

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12754
  • Marcin
    • View Profile
btw, you can also use object paint from 3ds max ribbon to paint instances (proxies) by hand, it's pretty easy and fast
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2015-12-26, 20:20:45
Reply #22

zchen

  • Active Users
  • **
  • Posts: 28
    • View Profile
    • webfolio
Yay! Finally we have new MSI-200 rule :] Thanks!

Sorry to bump up an old thread.

I was just quickly going through this post when I saw your comment Romullus; what is this MSI-200 rule (of thumb I presume) that you are referring to? Until now, I've never questioned the default MSI-20...
Is there some cases that needs up MSI-200??

I must have missed an important thread somewhere..

Thanks!

2015-12-26, 20:25:29
Reply #23

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8834
  • Let's move this topic, shall we?
    • View Profile
    • My Models
Default settings is fine. MSI200 is just a forum joke... a bad one :]

I'll edit my post to not confuse more people.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures