Houdini 18 Karma Custom Fisheye Lens Shader Revisited

   8687   28   7
User Avatar
スタッフ
2592 posts
Joined: 7月 2005
Offline
Hi @Brad - I think you need to ensure that karma/husk can find the HDA when it starts up. I think there are a few ways to do this. One way is to ensure the .hda with the shader is installed in the HOUDINI_OTL_PATH (i.e. $HOME/houdini19.0/otls/lens_shader.hda).
User Avatar
Member
7785 posts
Joined: 9月 2011
Offline
mark
Hi @Brad - I think you need to ensure that karma/husk can find the HDA when it starts up. I think there are a few ways to do this. One way is to ensure the .hda with the shader is installed in the HOUDINI_OTL_PATH (i.e. $HOME/houdini19.0/otls/lens_shader.hda).

Do CVEX shader builder vops work with Karma/husk as lens shaders?
User Avatar
スタッフ
2592 posts
Joined: 7月 2005
Offline
jsmack
Do CVEX shader builder vops work with Karma/husk as lens shaders?

There's no process for Houdini to pass the lens shader code and have it bound to a camera in Usd, so the VOP network still has to be saved to disk somewhere.

However, we have converted the Lens Shader SHOP to a VOP network, and broken it up into a Physical Lens Shader Core (which is used by the Physical Lens Shader). So, at least it's a little easier to edit lens shaders using VOPs now.
User Avatar
Member
66 posts
Joined: 3月 2017
Offline
If I put the original OTL file into $HOME/houdini19.0/otls, create that asset in /SHOP and point my usd camera to it, it does appear to be working in mplay and husk now. Thanks for that.

The instructions in the H19 manual that I linked earlier don't seem to work for me though. If I put the shader code into a text file, compile it with vcc, put the resulting HDA into $HOME/houdini19.0/otls/lens_shader.hda, the asset can only be created in the /MAT context. Putting that into a /STAGE material library and pointing my USD camera to that doesn't work. I don't know if I'm doing something wrong (likely) or the docs are wrong.
User Avatar
Member
447 posts
Joined: 8月 2019
Offline
Just stumbled onto this thread.

Is it just me or the whole idea that Karma being a USD/Hydra delegate feels... backward? I understand USD is likely going to be the new standard, but I feel the "indirectness" it brings is troublesome.

Isn't the premise of Solaris/LOP that we don't need to assemble our scene in Katana; therefore we can enjoy the proceduralism Houdini provides while doing layout? But it turns out we need to compile our lens shader separately. We need to save our procedural textures separately too (https://www.sidefx.com/forum/topic/74017/). And who knows how many "because USD doesn't support this" pitfalls are in front of us?

Why can't there be a special Karma ROP that renders in the context of Houdini/LOP, instead of Husk/USD? Just like what it renders in viewport? "Karma LOP ROP"?

I know it's not that simple because we need to support command line/render farm. But you got the idea. Does Karma really need to be a Hydra delegate *only* and unaware of Houdini's context(s)?
Edited by raincole - 2021年11月26日 10:58:02
User Avatar
Member
132 posts
Joined: 8月 2014
Offline
I am glad that the topic of fisheye support for Karma has renewed interest in this thread.
Our planetarium productions rely on our fisheye shader for Mantra.
If SideFX plans to eventually phase out Mantra in favor of Karma, fisheye/polar support in Karma would be very important to us.
Thanks
Jeroen
User Avatar
Member
132 posts
Joined: 8月 2014
Offline
BradThompson
If I put the original OTL file into $HOME/houdini19.0/otls, create that asset in /SHOP and point my usd camera to it, it does appear to be working in mplay and husk now. Thanks for that.

The instructions in the H19 manual that I linked earlier don't seem to work for me though. If I put the shader code into a text file, compile it with vcc, put the resulting HDA into $HOME/houdini19.0/otls/lens_shader.hda, the asset can only be created in the /MAT context. Putting that into a /STAGE material library and pointing my USD camera to that doesn't work. I don't know if I'm doing something wrong (likely) or the docs are wrong.

Hi @BradThompson, I tried to duplicate your steps of copying the HDA into /Users/jlapre/Library/Preferences/houdini/19.0/otls on a Mac, but the asset does not show up in /SHOP.
What step am I missing?
Thanks
Jeroen

Attachments:
Screen Shot 2021-12-11 at 10.52.24 AM.png (118.8 KB)

Jeroen
User Avatar
Member
66 posts
Joined: 3月 2017
Offline
Hi @jlapre,

It's hard to say. When I used VCC to compile the HDA, it would only show up in /mat context. I'm not sure why that is. I suspect it's because I don't know how to use VCC. Either way, it didn't work like that.

What worked for me was adding the original OTL that Stuart Levy from NCSA wrote to $home/otls/. I don't know how he created that otl or whether he compiled it. Once the otl is in that folder, it shows up in /shop after a restart. Then you can use a camera override to point to it in /shop. That worked for me. A few caveats:

-I'm on windows. I don't have any macs to test.
-I haven't tested network rendering yet. It works in mplay, which uses husk, so -in theory- network rendering should work.
User Avatar
Member
7785 posts
Joined: 9月 2011
Offline
jlapre
Hi @BradThompson, I tried to duplicate your steps of copying the HDA into /Users/jlapre/Library/Preferences/houdini/19.0/otls on a Mac, but the asset does not show up in /SHOP.
What step am I missing?

Shop is a legacy context. Lens shaders compiled with modern Houdini should be VOPs, not SHOPs.
  • Quick Links