object size changes with rotational motion blur in karma

   164   5   2
User Avatar
Member
3 posts
Joined: Nov. 2015
Online
Greetings,

I'm having some issues with motion blur in karma when rendering some car wheels that are outputted from an rbd car path follow sop exported to USDsd using USD export.

My camera is derived from the camera export option from the RBD car rig setup and tracks the car in motion. The camera data is coming from obj context and is imported to LOPs via SOP import then cached. The object blur itself looks to be accurate, but the size of the wheels dramatically fluctuates frame to frame as the camera shutter time increases.

I've tried a few approaches trying to pinpoint the issue including different motion blur/caching solutions as well as packed primitives vs. raw mesh transforms.

I feel like this is something that would be pretty obvious, so I'm inclined to believe I'm doing something wrong.
Any ideas?

cheers~
~p

Houdini FX Version 21.0.559

Open Source Information: https://www.sidefx.com/docs/houdini/licenses/index.html [www.sidefx.com]

Operating System: Microsoft Windows 11 Pro x64
Processor: AMD Ryzen Threadripper 3960X 24-Core Processor
Number of Cores: 48
Physical Memory: 127.88 GB
Number of Screens: 1
Screen 0: 2560 x 1440 at 0,0
Work Area 0: 2560 x 1368 at 0,0
Screen 0 DPI: 106.2

Platform Build: windows-x86_64-cl19.42
Python Version: 3.11
Qt Version: 6.5.3
USD Version: 25.05
USD git URL: https://github.com/sideeffects/USD.git [github.com]
USD git Revision: 4a631cd4a7549f6cc18b264b4cee940e8492985a
UI Scale: 1.375

Detected GPU: NVIDIA Consumer
10240 MB
581.57.0.0


Vulkan Vendor: NVIDIA Corporation
Vulkan Device: NVIDIA GeForce RTX 3080
Vulkan Version: 1.4.312
Vulkan Loader Version: 1.3.236
Device Heaps: 10053 MB + 214 MB

Attachments:
noMoBlur.png (389.8 KB)
moBlur.png (340.5 KB)

User Avatar
Member
280 posts
Joined: Jan. 2015
Offline
Maybe Hydra 2 bug. You can switch to Hydra 1 using this environment variable.

USDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX=0
User Avatar
Member
71 posts
Joined: March 2017
Offline
Looks to me like it's either doing deformation blur, there aren't enough transform samples or the matrices aren't being interpolated correctly.

Lots of things can go wrong with motion blur. Without seeing the file there's no way to know for sure.
User Avatar
Member
3 posts
Joined: Nov. 2015
Online
Thanks for the responses~
I'll have a look at these solutions

I'll put together a scene that emulates my issue shortly

@pixelninja, enjoying your online content;
cheers~

~p
User Avatar
Member
3 posts
Joined: Nov. 2015
Online
Here is a condensed scene of the issue I'm still seeing.

There is a small usd export and a small camera cache that needs to be saved to see the issue.

Seems like something is happening in the rbd path follow that is affecting the moblur in solaris to cause the shrinking.
I've run a couple tests just using regular transforms for rotations in mesh and packed primitives and those seem to work fine.

Any insight would be appreciated.

cheers~
~p

Attachments:
rotationKarma_v001.hiplc (1.5 MB)

User Avatar
Member
71 posts
Joined: March 2017
Offline
From what I can see there's not enough samples. If you turn on "Enable playback at fractional frames" you can actually see the wheels collapsing in the viewport.
The simple solution is to increase the amount of samples by lowering the increment (of the start/end/inc parameter) of the export.
Here's a reference flipbook comparing caching at 1, 0.5 and 0.25.

The "Resample Transforms" LOP I think is meant to correct issues like this without having to cache with more steps but it didn't work here for some reason (it made the wheels go haywire). I'll submit a bug report.

Some other unrelated improvements I would suggest:
- Set "Packed primitives" to "Create Xforms" so you don't end up with a bunch of unneeded prototype primitives
- Set "Topology Attributes" to "Static" (assuming there's no mesh deformation)
- Set "Set Default Values" to "* ^transform" (assuming your attributes are static)

Those options give you a cleaner tree and won't cache your attributes for every timestep. Your current setup caches not only your transforms but also the mesh, normals, uvs, etc for every single timestep, which is wasteful.
Personally, I recommend caching from LOPs rather than SOPs so that you can curate your scene graph tree and troubleshoot any USD issues before caching.

Hope that helps!
Edited by pixelninja - today 19:14:29

Attachments:
cache_increment_comparison.mp4 (7.7 MB)
settings.png (124.6 KB)
rotationKarma_v001_mt.hiplc (1.6 MB)

  • Quick Links