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?