Author Topic: Motion Blur problem  (Read 11535 times)

2015-02-02, 19:56:23

pokoy

  • Active Users
  • **
  • Posts: 1987
    • View Profile
I am using motion blur on a propeller and I've come across artifacts. The problem is that using higher transform segments actually make the artifacts worse, here's a gif showing the problem (with transform samples value):



I thought that increasing transform samples should actually make the rendering 'smoother', but it it doesn't really help. Most of the time, random 'single frame strobo-like artifacts are introduced and it's quite a guess work to determine a value that renders a smooth motion blur.

Like I said, the problem is probably caused due to fast rotation (2400 rpm = 40 rps) but it's a realistic value so I'd like to stick to it.
I could also make them rotate slower but decrease shutter speed to compensate the artifacts. However, the artifacts reappear when the shutter speed gets too slow.

This happened every time so far I've used motion blur on fast transforming objects (moving, rotating, both show this) and I wonder if there's a fundamental limitation to motion blur in general. Is this a bug or expected behavior?
« Last Edit: 2015-02-02, 20:00:05 by pokoy »

2015-02-02, 20:02:39
Reply #1

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
can you guess what I would like? :D
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2015-02-02, 20:32:01
Reply #2

pokoy

  • Active Users
  • **
  • Posts: 1987
    • View Profile
No clue ;)

Will post a scene tomorrow, on my way home already. FWIW, it is very easy to reproduce, just use some very fast moving or rotating object.

2015-02-02, 21:18:55
Reply #3

romullus

  • Global Moderator
  • Active Users
  • ****
  • Posts: 9276
  • Let's move this topic, shall we?
    • View Profile
    • My Models
I'm affraid it's not Corona's fault. It's due to the fact that time in 3ds max is discrete. There's only 4800 segments per second, so called ticks. Usually it's enough, but when things starts to move really fast, discreteness starts to show its ugly head. I had encounter same problem some time ago: https://forum.corona-renderer.com/index.php/topic,3171.msg23849.html#msg23849 However sollution is easy - lower speed of moving object, decrease shutter speed, like you already said.

More about ticks: http://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2015/ENU/MAXScript-Help/files/GUID-D62B5EF2-702E-4281-88EA-129223F6E0DA-htm.html
I'm not Corona Team member. Everything i say, is my personal opinion only.
My Models | My Videos | My Pictures

2015-02-02, 23:20:43
Reply #4

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
ok, Deadclown's explanation makes sense, and is probably correct. I did some calculations and indeed in this scene the problem would appear. With the usual 180° shutter there are only 80 3dsmax time units. If you further decrease the value, you will easily get to the point where the time values begin to repeat for your 24-64 motion blur time samples.
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2015-02-03, 11:42:27
Reply #5

pokoy

  • Active Users
  • **
  • Posts: 1987
    • View Profile
I appreciate the fact that you guys like to move on fast but this was a tad too fast.

Comparing against Brazil shows that there is a problem with Corona, I'm setting up a scene and post it here later with examples. Although Brazil also shows the tick segmentation with slower shutter it is far from being that visible and at shorter exposure times it is always smooth, even when setting the transform segments to very low values.

I believe the problem is not the ticks/subframe system in max. The problem is that the number of samples can easily produce artifacts, like for example going from 12 samples to 13 samples. In a scene where you have several moving objects, for example a car moving fast (movement of the car, rotation on the wheels, objects in the background passing by) you can be almost certain that while one object will look ok, another one moving at a different speed will show these artifacts. I guess motion blur from a camera path will make things even worse. Increasing the samples will not help, it will instead move the artifacts to another place.

Actually, the gif should already be enough to show that the rule 'more smaples = higher quality' is not true and that there's something else going on, higher samples should look smoother and not produce any artifacts at all.

Since this thread has been closed/resolved, can you please move it back to the bugs section or should I create a new thread?

2015-02-03, 13:15:58
Reply #6

pokoy

  • Active Users
  • **
  • Posts: 1987
    • View Profile
Here you go. I'm posting here and hope you still look at 'resolved' bug reports. Also reported this on Mantis now.

Scene is attached. The fan rotates at 40 rps (14400° in 25 frames). This is a realistic value, you'll get similar speeds with very fast moving objects as well, so it's not a special case you come across once in a while only.

Below the comparisons between Brazil and Corona. I can't say if the segments in Brazil are multiplied internally (the value goes from 1-256) but I guess it's a similar methodology. Haven't tested in mentalray but I don't expect it to be that much different from Brazil. I can't say why Brazil's result looks perfectly identical with all segments but 1 - I didn't cheat, this is how it rendered.

0.1 frames (1/250 sec)



0.5 frames (1/50 sec)



Corona's motion blur time sampling is not only inconsistent (at least in this comparison), it is actually almost impossible to get artifact-free motion blur.
Like I said in the post above, in a scene with several objects moving at different speeds, Corona will most likely produce artifacts one one or several objects regardless of the sampling value. Since increasing the geometry segments does not improve the result it is not possible to avoid them.
« Last Edit: 2015-02-03, 13:20:40 by pokoy »

2015-02-03, 13:29:49
Reply #7

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
How about decreasing them instead? You can see you need actually quite a few samples to match Brazil result.

2015-02-03, 13:38:49
Reply #8

pokoy

  • Active Users
  • **
  • Posts: 1987
    • View Profile
Please download the scene and try for yourself.

You may get a smooth result with, for example, 7 segments but you'll see that the perceived 'outer circle' will not be regular. If you increase it to 8, 13, 20, 24, or decrease to 6,5,4 (whatever), you'll see that single blade strobo-artifacts are introduced.

Let's say, you have two other objects in the same frame moving at different speeds - the fan may look ok at a certain value but what if it introduces artifacts on the other objects?

I don't understand how this could be debatable. In my eyes it is a bug and a fundamental flaw if it's not possible to get artifact free motion blur.

In other words: The result should be consistent throughout all transform samples values and should not introduce random irregularities, it should look like the Brazil's motion blur in the example above.
« Last Edit: 2015-02-03, 13:55:45 by pokoy »

2015-02-03, 15:02:31
Reply #9

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
It is a fundamental flaw, definitely, but i don't think it's the one that will be solved quickly. So if you need to finish job now, i would try to look for a sweet spot value between strobbing artifacts and  circular shape.

I would log it on mantis as critical bug along with scene. That's probably the most reliable way to get it fixed.

2015-02-03, 15:17:10
Reply #10

pokoy

  • Active Users
  • **
  • Posts: 1987
    • View Profile
It is a fundamental flaw, definitely, but i don't think it's the one that will be solved quickly. So if you need to finish job now, i would try to look for a sweet spot value between strobbing artifacts and  circular shape.

I would log it on mantis as critical bug along with scene. That's probably the most reliable way to get it fixed.

I think it's of special interest for anyone doing animation and hope it'll get some dev love soon. I'm sure this will resurface very soon after 1.0 is released.

Reported to Mantis and referred to this thread here since here's the information and background needed to understand why it is a bug.

2015-02-03, 15:38:25
Reply #11

Ludvik Koutny

  • VIP
  • Active Users
  • ***
  • Posts: 2557
  • Just another user
    • View Profile
    • My Portfolio
It is a fundamental flaw, definitely, but i don't think it's the one that will be solved quickly. So if you need to finish job now, i would try to look for a sweet spot value between strobbing artifacts and  circular shape.

I would log it on mantis as critical bug along with scene. That's probably the most reliable way to get it fixed.

I think it's of special interest for anyone doing animation and hope it'll get some dev love soon. I'm sure this will resurface very soon after 1.0 is released.

Reported to Mantis and referred to this thread here since here's the information and background needed to understand why it is a bug.

Well the sole fact that Corona does it and Brazil does not means the 3ds max ticks limit excuse is pointless :) Therefore it's definitely a bug and definitely a fixable one.

2015-05-12, 17:07:02
Reply #12

pokoy

  • Active Users
  • **
  • Posts: 1987
    • View Profile
Just a heads up so the thread gets a final note, this has been resolved for 1.0. According to Ondra there may be cases where this still occurs but in the case presented above it is working fine.