Solaris camera import question

   1356   10   2
User Avatar
Member
24 posts
Joined: March 2017
Offline
I have a camera that is controlled by riveting it to an animated surface. The animated surface is an a time-offset and smoothed copy of an ocean evaluate, so basically the camera follows the motion of the waves, but lagged, smoothed, and offset in Y.

I need to get this camera animation into LOPs, but I also need to use a LOPs specific camera because cameras that come in through scene-import nodes don't respect SHOP CVEX lens shaders, which is a requirement for this shot. So basically, I need to import my /obj camera hierarchy's animation and constrain a LOPs camera to it. What is the best way to do this?

Apologies if this is basic. I'm just starting to investigate Solaris/USD/Karma now that lens shaders can be made to work with it.

Attachments:
image_2021-03-31_144944.png (46.4 KB)

User Avatar
Member
4293 posts
Joined: Sept. 2011
Offline
Use a scene import to bring in the camera with animation, then use a camera lop to add/modify the desired properties to the camera.
User Avatar
Member
24 posts
Joined: March 2017
Offline
Nice! That appears to work. Thanks. I thought the camera lop just created a camera. I didn't know you could use it to set properties on an imported one. I have a lot to learn.
User Avatar
Member
4293 posts
Joined: Sept. 2011
Offline
BradThompson
Nice! That appears to work. Thanks. I thought the camera lop just created a camera. I didn't know you could use it to set properties on an imported one. I have a lot to learn.

Yeah, it's sort of central to solaris. Almost everything that creates also modifies, due to the layer based structure.
robp_sidefx
Staff
51 posts
Joined: June 2020
Offline
@Brad, if you can share a .hip file that has the final camera (i.e., SceneImport + extra-properties), I'll look into extending the relevant SceneImport translator(s).
User Avatar
Member
24 posts
Joined: March 2017
Offline
Thanks Rob. Here's a stripped down version. Hopefully this packaged up correctly. I left some notes on the STAGE. The file is too big to upload to the forum, so I posted it here: https://we.tl/t-AulkC1x6wS [we.tl]
robp_sidefx
Staff
51 posts
Joined: June 2020
Offline
BradThompson
Here's a stripped down version...

Perfect, thanks!

I'm afraid I've put my foot in my mouth a bit in terms of my offer. Your scene was very valuable because even in our latest internal builds the lens shader assignment wasn't translating via SceneImport. I've been able to address this, but it's not practical for me to backport to 18.5 (or earlier).

Looking at the notes you left...

* Sky lights - The sky map that gets procedurally generated does not get translated via SceneImport, this is a known limitation I'm afraid. There is an internal task to investigate this further, but it hasn't been started.

* "Camera animation won't come through until you enable "Import All Time Samples" on the sceneimportcameras1 node" ... this one confuses me. You have it disabled in your test scene (as noted), but I still see animation on /cameras/sceneimportcameras1/rivet1.xformOp:transform:sceneimportcameras1 (which then gets inherited by the camera). Can you elaborate, because I want to make sure I'm not missing something important.

* "It would be nice if the chooser button could select from the SHOP context directly". I'll look into this one further. It strikes me as odd as well, but I expect there's a good reason for it
User Avatar
Member
24 posts
Joined: March 2017
Offline
It looks like it was me that was confused. I have nearly zero experience with USD/Solaris/Kama. Something I read said that for animation to come though a scene import, "Import all time samples" should be selected. That's what I did and it appeared to work, but with a big lag on scene load. I don't remember where I read that. I disabled that setting and wrote the note as a convenience to you, so you aren't waiting forever for the file to load. I never tested it any other way. I guess I don't understand the purpose of the Import all time samples setting yet.
User Avatar
Member
4293 posts
Joined: Sept. 2011
Offline
BradThompson
I guess I don't understand the purpose of the Import all time samples setting yet.

It evaluates the input for all time when transcoding to USD. Without that only the current time sample is evaluated. In order for motion blur to work, there needs to be more than one timesample. I think the scene import still authors the animation as a time sample and not a default value. Without load all time samples checked, when writing animation to a usd file, the whole animation should end up in the resulting file either way.
robp_sidefx
Staff
51 posts
Joined: June 2020
Offline
jsmack
I think the scene import still authors the animation as a time sample and not a default value

Yes, we try to do "the right thing" (or at least "the most sensible thing") in terms of writing all Houdini-time-varying-data as time samples and everything else as default values.

when writing animation to a usd file, the whole animation should end up in the resulting file either way

If you write to a single USD file, yes. If you write per-frame USD files, you'll still need some mechanism of pre-baking the samples (such as a Cache LOP with a +/-1 frame window).
Edited by robp_sidefx - April 8, 2021 06:43:58
robp_sidefx
Staff
51 posts
Joined: June 2020
Offline
BradThompson
It would be nice if the chooser button could select from the SHOP context directly

This will be in tomorrow's 18.5.542 build. It won't affect Camera LOPs already in your scene, but any new Camera LOPs will have this.
  • Quick Links