Houdini 18 Karma Custom Fisheye Lens Shader Revisited
11183 28 7-
- mark
- Staff
- 2655 posts
- Joined: July 2005
- Offline
-
- jsmack
- Member
- 8123 posts
- Joined: Sept. 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?
-
- mark
- Staff
- 2655 posts
- Joined: July 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.
-
- BradThompson
- Member
- 67 posts
- Joined: March 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.
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.
-
- raincole
- Member
- 607 posts
- Joined: Aug. 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)?
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 - Nov. 26, 2021 10:58:02
-
- jlapre
- Member
- 135 posts
- Joined: Aug. 2014
- Offline
-
- jlapre
- Member
- 135 posts
- Joined: Aug. 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
Jeroen
-
- BradThompson
- Member
- 67 posts
- Joined: March 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.
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.
-
- jsmack
- Member
- 8123 posts
- Joined: Sept. 2011
- Offline
-
- Quick Links