Author Topic: Motion-blur support when using map sequences / animated textures  (Read 115 times)

2024-04-26, 10:13:32

marchik

  • Active Users
  • **
  • Posts: 259
    • View Profile
I'm experimenting with long exposure photography and suddenly realized that the corona renderer does not allow me to get an image with motion blur if the animation is done using textures.

The most obvious example is the surface of water shot at a long exposure. The only thing I can do to recreate it is to make a simulation using PhoenixFD (which is unacceptable for large spaces such as a river or sea) or use a Displace modifier with very strong surface subdivision - which is also not acceptable for large spaces.

I can't use the PhoenixFDOceanTex map in the displacement slot because Corona doesn't support motionblur for changing topology. And the strangest thing I found out is that I can’t get motion blur when I put it in the bump slot, because animated textures in the material do not affect the motion blur in any way.

The second example is a TV screen shot with a long exposure, if I animate the image on the screen using a image sequence, it wont work and I will not get this "cumulative light effect" that will be in photography.
The same goes for simply animating a static texture map if I animate its tiling, offset, and so on, corona won't get this into account when creating motion blur.

And of course it would be nice to finally get motionblur with a changing topology during displacement, at least with a PhoenixFdOceanTex map, I hope it will be possible to come up with a solution with your colleagues from the head office so that it works in some “special way”, just like motion blur works in regular simulation using PhoenixFD

2024-04-26, 10:35:30
Reply #1

pokoy

  • Active Users
  • **
  • Posts: 1869
    • View Profile
+100 here. I requested this before, too, it's a must have (just like motion blur support for Distance Map).

2024-04-26, 11:30:48
Reply #2

maru

  • Corona Team
  • Active Users
  • ****
  • Posts: 12781
  • Marcin
    • View Profile
This was requested in the past and I am afraid there are some technical reasons why this cannot be done. I will double check that and will report it as a feature request if it's not there yet.
There is however a workaround that you can use to get "true" motion blur whatever you are rendering:
- Render a sequence
- Save each frame as a CXR file
- Use a low pass limit (e.g. 2 passes - if we render 100 frames with 2 passes the quality will be like rendering a single frame for 200 passes)
- Once the rendering is completed, open the Corona Image Editor, click the "Merge" button and pick your rendered frames
This should result in correctly blending all frames just as if it was single frame rendered for x number of passes. The result should look exactly like a photo with long exposure. The advantage here is that you can still control exposure and other post/tone mapping params.
The disadvantage is that you cannot control the shutter curve.

Marcin Miodek | chaos-corona.com
3D Support Team Lead - Corona | contact us

2024-04-26, 11:43:46
Reply #3

pokoy

  • Active Users
  • **
  • Posts: 1869
    • View Profile
But that workaround is only for long-time exposure and wouldn't work for 'normal' motion blur like the usual 0,5 frames and fast moving objects unless you stretch all your animation to something that you can render out. Or you would need to offset frames in the camera by tiny bits.

Motion blur for textures is such a nice to way to trick your way around certain problems, please try... (same for Distance Map)

2024-04-26, 14:42:10
Reply #4

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 8868
  • Let's move this topic, shall we?
    • View Profile
    • My Models
An idea - what if the devs would add "advanced motion blur hack" checkbox somewhere in the UI, that would automatically do what Marcin described here, i.e. split the selected time range in multiple sub-frames, render them out in sequence, then merge them all and output result to VFB. I think that would be simple enough to implement solution that would be very useful for so many users, at least until devs could figure proper changing topology MB support.
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2024-04-26, 15:05:10
Reply #5

arqrenderz

  • Active Users
  • **
  • Posts: 997
  • https://www.behance.net/Arqrenderz1
    • View Profile
    • arqrenderz
"at least until devs could figure proper changing topology MB support" 
One can only dream.....
How many years have passed ¿

2024-04-26, 15:12:59
Reply #6

pokoy

  • Active Users
  • **
  • Posts: 1869
    • View Profile
An idea - what if the devs would add "advanced motion blur hack" checkbox somewhere in the UI, that would automatically do what Marcin described here, i.e. split the selected time range in multiple sub-frames, render them out in sequence, then merge them all and output result to VFB. I think that would be simple enough to implement solution that would be very useful for so many users, at least until devs could figure proper changing topology MB support.
This is not about changing topology (I don't think we'll ever see that btw...), it's about animated textures, which would be useful on its own.

But I fully support the 'under-the-hood' automated hack. It would make things way easier for all things that don't support motion blur. Quite a good suggestion, actually! Doing it manually is a no go for animations (imagine the amount of work needed), so anything that allows for this to be automated would be very welcome.
« Last Edit: 2024-04-26, 15:28:12 by pokoy »

2024-04-26, 15:41:24
Reply #7

marchik

  • Active Users
  • **
  • Posts: 259
    • View Profile
This was requested in the past and I am afraid there are some technical reasons why this cannot be done. I will double check that and will report it as a feature request if it's not there yet.
There is however a workaround that you can use to get "true" motion blur whatever you are rendering:
- Render a sequence
- Save each frame as a CXR file
- Use a low pass limit (e.g. 2 passes - if we render 100 frames with 2 passes the quality will be like rendering a single frame for 200 passes)
- Once the rendering is completed, open the Corona Image Editor, click the "Merge" button and pick your rendered frames
This should result in correctly blending all frames just as if it was single frame rendered for x number of passes. The result should look exactly like a photo with long exposure. The advantage here is that you can still control exposure and other post/tone mapping params.
The disadvantage is that you cannot control the shutter curve.
Thanks for your reply!
Although this is one of the stupidest things I've ever done, but yes, it works) unfortunately this method does not allow you to interactively see a preview of what will happen with different shutter speeds, which slightly destroys the continuity of the creative process and is not suitable for not such long shutter speeds, like shooting a mountain river at 1/10 s

Well, let's hope for the best, considering that you guys have already implemented the main layer of features that Corona required, I will accept if the only change in the 13th version of Corona will be just expanded support for motion blur for different use cases :D