Hi,

I'm at a loss here. I have an Op subclassed from CameraOp that only changes
the outputContext of an incoming camera (for freeze-frames, time offsets,
etc).

I manually set both matrix_ and projection_, and everything is fine going
into a ScanlineRender, for example. Going into a Card3D, my camera-Op also
works fine until motionblur is turned on.

Looking closer, I've found that:
1- Turning motionblur on in a Card3D when I have my own camera connected
crashes Nuke, unless I explicitly have "projection_knobs" in my camera Op.
So, I assume that either Card3D or CameraOp::projectionAt() are calling
those projections knobs explicitly? I think I've got that fixed by adding
the projection knobs and setting them to the desired values.

2- Something similar happens with the transformation knobs (axis_knob). If I
don't have them in my Op, going into a Card3D and setting motionblur on does
not crash, but it looks like matrixAt is always returning the identity
matrix (even though it gets the matrix correctly from my op when motionblur
is off). I've tried overriding matrixAt in my own Op to return the matrix I
want, but I guess Card3D is calling matrixAt of the base class (CameraOp),
and matrixAt is not virtual so I can't really override it, right?

So here's where I'm at now: what do I need to implement in my Op so I can
control what will happen when matrixAt gets called on it? I suppose I could
just add the transformation knobs, but if I do that, is there a way to
prevent the resulting matrix from concatenating with another Camera
upstream? (considering that this is a "camera retiming op", and I don't want
to concatenate with the above camera, but "steal" values from it).

Help!

Thanks,
Ivan
_______________________________________________
Nuke-dev mailing list
[email protected]
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-dev

Reply via email to