Feedback

What's your question?

By: [ Editor ] Asked

Mental Ray and motion blur

Hi All,

has anyone got any tips on how to successfully(~30min render time, no artefacts) get mental ray to do full 3d multi segment motion blur from something like the wings of a humming bird?

When I tried with my regular settings I get 2.5h+ per frame, which I can't afford, and when using the 'Rapid Motion' render option I get lots of bright speckles that I can't figure out how to get rid of no matter how I change things around. Funnily(or not so funnily), with Rapid Motion on, it looks OK when I do a regular maya GUI render to the render window, but when I do a batch render I get those pesky dots.

This is using Mental Ray and Maya 2010.

Sorry that this sounds like a support question but I am getting slightly desperate.

Grateful for any tips.

cheers fred

Add comment viewed 1,508 times Latest activity 11 months ago

NN comments
hugh_gid
-

I remember we had a similar problem on a project last year. We were trying to decide which direction we’d go for rendering… I can’t remember if we resolved this in the end… We actually ended up going more towards prman for rendering. I’ve forwarded a link to this question to the guy who was dealing with the rendering – if we did get a solution, he may be able to help.

or Cancel

6 answers

  • 1

szabolcs [ Editor ]

The bright spots are usually the effect of some superbright values, that are killing the sampling / filtering process for that pixel. They can come from either a misbehaving shader (returning insane bright color), a specular model that does extreme stuff at grazing angles (like some cook-torrence implementations that only look cool on stills) or reflection of super-bright spots (or a funky HDRI map).

The difference between GUI and batch rendering might be related to the framebuffer settings. Can it be that you're using 8bit framebuffer or file format for Maya and float / half for batch? By using non-floating point buffers the values are clipped to 1 before the filtering happens and that makes the bright spots go away (or dim a lot). You can try to set the framebuffer to 8 bit or set colorclipping.

If you can find which shader makes the bright spots you can try to clamp the output of the shader by inserting a new node in the shading graph to avoid the problem.

And yes, use rapid scanline.

or Cancel
  • 0

julian [ Admin ]

I did dragonfly wings using prman. I used multi segment-motion blur, but also duplicated the wings about 4 times and put them in different parts of the wing beat. Maybe this technique can be used in MR too.

Edit I heard about this method because it was how ILM did the wings of that little flying guy in "The Phantom Menace" (Anakin's boss?) - That was prman I believe - it would work with MR though.

As you say, the effect you are trying to get, humming bird wings, needs to be very sensitive to reflections, and standard motion blur algorithms fail because: a.) rotations are linearly interpolated and b.) shading is sampled just once . The method above would overcome all that because it is effectively a method where you create your own motion-blur segments, as many as you like, and you can do it without rendering more frames or evaluating anything except the objects that are flapping so fast.

You could make 20 wing copies and have their animation offset 1/20th frame increments from the master wing. When static (or very slow), the master is 100% opaque and the copies are 0%. As the wings ramp up speed, you quickly blend down the master wing opacity, and blend up the copies, so they are all about 5 - 10%. You can drive the blending with expressions. Each copy will of course be motion blurred a little bit anyway and you wont see the joins. The idea is, the wings ramp up speed to much slower speed than real humming birds, but the duplicated copies make it look a lot faster.

The copies will reflect whatever they should, each at their correct angle - shading will be sampled 20 times. And you will be able to get a much better response from the shader as it wont be getting blurred to hell.

or Cancel
  • 0

ian_68

Hi All

I would like to suggest setting up a simple render where you increase the flapping rate over time, then render this. This will give you the optimal flap to motion blur setting you need to reduce the render time, while still getting the required look. I agree with Szabolcs about the Rapid scanline rendering when using Mental Ray.

I would however strongly suggest using a renderman renderer. I your case Julies 3Delight would be a good choice as it is likely to convert the hypershade graph well and match the render you have in Mental Ray.

If you want you can always send me the scene and I will have a look.

Cheers, Ian

or Cancel
  • 0

angus giorgi

Hi,

There's a really simple workaround to this where you can get Max's scanline motion blur which is effectively 2D post processed Motion blur to override Mental Ray's 3D motion blur settings but still use the full mental ray engine and renderer to render very high quality motion blur. This means what would take 1.5 hours in Mental Ray might take 60-90 seconds instead and still give you close to the same effect.

Do this.

  1. Set Mental Ray as default render under Render Setup Common Tab. Press f10 to confirm Mental Ray enabled. Cancel out of the render. Who want to sit in front of a screen for an hour and a half watching Mental Ray precalculate its 3D motion blur maths, right?

  2. Avoid the "fast rasterizer" (fast rasterizer is useless and never produces a production quality usable image) instead under F10- Render Setup- Renderer Tab- Mental Ray render settings and do tick enable mental ray motion blur. (leave default camera aperture settings etc as is, you can play with these later. Hit render to test it and whatever is in your scene will take a long time (too long, impractical for production use). This is because MR is trying to calculate all blur as a 3D precalculated effect which it doesn't need to do to create realistic motion blur. You want to trick it into using 2D post process settings instead which are way faster.

  3. So, instead. Select all the objects in the scene in the viewport you want to apply motion blur too.

  4. Right click choose "object properties" then under the Object Properties Motion Blur section click "enabled" and click the image based motion blur (not object based). Leave multiplier at 1.0 and exit.

  5. Under Rendering menu option drop down select"effects"

  6. apply a motion blur (default max scanline post-process 2D effect) and untick work with transparency.

  7. Hit f10 and under render tab, scroll down to camera effects Motion Blur, check "enable" is ticked on, (should be from before) thus enabling Mental Ray motion blur.

So now you've set Mental Ray as default renderer, setup a 2D scanline effects Motion blur render based off image based motion blur, and you are going to hit the render button.

What happens is you still get a dog slow render. However here's the trick. Mental Ray does actually have the ability to read all of Max's traditional 2D effects it just has this overridden as it's default settings forcing you into better quality, but impossibly slow 3D camera based motion blur. By setting up traditional Max scanline post effect motion blur then getting mental ray to render it will seem like nothing has happened however what has happened is you've forced mental ray to calculate the max scanline based 2d effects data. Now if you simply follow the final amazingly simple and secret step you will get motion blur that looks great yet takes possibly 1 hundredth of the time to render.

If that sounds too good to be true. Do this.

  1. Under F10, Render Tab, Camera Effects simply untick Motion Blur "enable" and hit render.

And now you will experience the full joy and wonder of the Mental Ray engine, calculating beautiful motion blur from Max's default scanline 2D post processed Motion Blur effect, rather than from Mental Ray's own internal settings.

Hope this saves you many happy hours of rendering and pulling your hair out.

Angus http://www.angusgiorgi.org

or Cancel
  • 0

freds_24

I did some tests using 3delight and though it is rendering much faster, as expected, there seems to be limitations to it due to the design of it(and all reyes renderers?). The wings I am rendering are reflective and bright lights in the hdri end up as bright broken segment.

This is because the shading only happens at one point in time during the frame and is then 'smeared out' to create the blur.(untechnically speaking)

Has anyone tried something like rendering 10x the amount of frames with 1 slice each and then doing some kind of motion vector re-time processing on them?

cheers fred

NN comments
julian
-
– we really should sort out your account(s). openId and google dont mix well. Standard logins and passwords will be implemented in an upcoming version. Meanwhile, catch me on skype (julian.mann) and I’ll try to sort it out properly.

or Cancel
  • 0

freds [ Editor ]

I tried to comment but wasn't allowed,

Szabolcs, I thought so too for a while but unfortunately this happens even with a simple lambert with diffuse set to zero and just incandescence set to a relaxing mid blue. So just a constant shader basically.

I have also tried a few different file formats, bit-depths and 'Colorclip' settings. All still produce the dots. (Though I haven't tried all combinations yet)

f

NN comments
hugh_gid
-

You seem to have ended up with two accounts here – I don’t know how you managed that one.. This answer wasn’t done with the same account as the original question…

Once your reputation is up to 50, you’ll be able to comment on other people’s stuff.

szabolcs
-

Strange indeed. Are you using final gather, for example? And could you upload a sample image somewhere. that might help a bit finding the problem.

or Cancel