Author Topic: Inefficient sampling for distant lights  (Read 2848 times)

2015-09-08, 14:15:24

pokoy

  • Active Users
  • **
  • Posts: 1983
    • View Profile
I have an animation where I need a more detailed environment with distant signal lights (think airport runway at night). The camera moves fast and turns by almost 180° so there's some well noticeable motion blur in the background almost all of the time. In real life this would produce nice light streaks from the distant signal lights (from the motion blur and the intense light sources).

Most of the lights are pretty small, around 10-20 cm only, and that's where the sampling becomes inefficient. I need to crank up passes to unreasonably high levels in order to make the streaks look continuous. Render times are 10 times what I need them to be for an acceptable sampling level in the rest of the image, only to have the lights sampled better (though still not looking smooth). If the lights are around 1 m, they produce the effect I'm after and within reasonable pass numbers, but I just can't make them this big in our scene, it'll look completely wrong.

Sometimes, depending on the distance, even without any motion blur some of the lights won't show up, the sampling just keeps missing them. This is unacceptable for an animation since I need them to show up in every frame, not every nth frame in a random manner.

Both Corona Lights and geometry with CoronaLightMtl show the same behavior, unfortunately.
Is there anything I can utilize to make the sampling more efficient, maybe using a different random sampler than the default '2 High-D + PRNG'?

2015-09-08, 14:38:54
Reply #1

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 13675
  • Marcin
    • View Profile
Do not touch devel/debug settings please. :)

What render settings are you using? You should decrease GIvsAA (and possibly LSM too if it does not introduce a lot of noise) when rendering heavy DoF or motion blur. What GIvsAA value are you using?
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2015-09-08, 14:53:59
Reply #2

pokoy

  • Active Users
  • **
  • Posts: 1983
    • View Profile
Do not touch devel/debug settings please. :)

What render settings are you using? You should decrease GIvsAA (and possibly LSM too if it does not introduce a lot of noise) when rendering heavy DoF or motion blur. What GIvsAA value are you using?

If you want to have a spin at it, I'm attaching a simple test file.
There's an animated camera, it's set to render frame 10. I've limited the pass number to 250 to stay within a certain limit which I wouldn't want to exceed in the main environment scene.

Select one of the objects (LIGHT_...) in the Layer '02_LIGHTS', then
- set its radius to 0,5 meter - acceptable
- set its radius to 0,1 meter (the one that we can accept as realistic in our case) - you'll see the missing pixels.

Everything I tried so far (GI/AA, LSM) didn't really help. The only was to overcome this is to use unreasonably high pass numbers, which makes sense from the technical pov but is unusable for the final animation in my case. That's why I thought one of the random samplers might be of help here.

2015-09-08, 15:40:24
Reply #3

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 13675
  • Marcin
    • View Profile
The only solution I managed to find for now seems to be using buckets. Revert to defaults (internal resolution, filter type etc). Then use some sick bucket settings like:
samples: 100
passes: 200
It should render in reasonable time/quality, but I can imagine that it will greatly interfere with the rest of your scene...
Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2015-09-08, 16:48:26
Reply #4

pokoy

  • Active Users
  • **
  • Posts: 1983
    • View Profile
Yes, Bucket helped to an extent but it's not that easy to set up.
My plan B was to separate this from the main animation, render with another engine and comp it. Looks like the only safe way for now.

Thanks!