Jump to content

Light shader respecting motion blur

Recommended Posts

Hi all,

I'm confounded by a scenario and I'm hoping that someone else might have run across this.  I have a light shader assigned to a Light Template object: let's call it myLight.  It behaves as expected for non-motionblurred frames.  But when I place it inside a subnetwork, put extreme motion in rotation and translation on the subnet, add a generic Light (spotlight) object to the subnet (at the same level as myLight), the generic light motionblurs properly but I get no motion blur my myLight's contribution.  Here is the poignant code and information that I can tell:

    vector Plight = ptransform("space:light", Ps);
    Cl = max(0, 1-length(Plight*set(1,1,0)));


  • I am using Houdini 16.5 Mantra Raytrace mode.
  • I am using exclusively xformational motion blur, 2 motion samples.
  • I have the above light shader assigned to a Light Template object: myLight.
  • myLight and a generic Houdini spotlight live in a subnet that has extreme translation and rotation animation.
  • It behaves as expected for non-motionblurred frames, with and without rotational and translational transformations.
  • It looks exactly the same with motionblur turned on, but the light from generic Houdini spotlight motionblurs properly in the same render.
  • The vector version of the transformation, vtransform("space:light", -L);  Seems to respect the translation component of the motion blur. BUT NOT the rotation component.  So generally, myLight WILL motionblur, but not consistently in the right direction/magnitude.  Weird.
  • I have tried using the explicit path of the Light Template and to its containing subnet to see if I could jigger it.  And the results are exactly the same:
    • vector Plight = ptransform("/obj/mySubnet/myLight", Ps);
    • vector Plight = ptransform("/obj/mySubnet", Ps);

So I am wondering if I'm using the right transformation, the right variables, and if I am to add any special rendering intrinsics to the Light Template object to get the "space:light" transformation to respect the motion blur properly.  What am I doing wrong?

Share this post

Link to post
Share on other sites

New tests:

P-L behaves similarly to Ps

normalize(-L).normalize((Lz) motion blurs as expected.

Share this post

Link to post
Share on other sites

Incidentally, to be clear, I think the problem doesn't lie in a time varying Ps, but a time-varying ptransform("space:light", ...) which is what should be animating.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now