Nice!
One quick question I can't figure out.. I'm sort of missing a proper renderview to iterate renders. There is the karma viewport which is excellent for previewing the visual output but doesn't provide a way to dive into the AOVs etc. Then there is mplay which sort of does it but not really.
Call me spoiled but when doing lookdev for renders I'd like a 'Render' button and a panel that show the render output being rendered in all it's glory. Both VRay and Redshift have proper VFBs that provide a lot of useful features. Fro example I've been trying to get a simple shadowcatcher to work for over 2 hours now, I got no idea what's going on and tbh I can't even tell if that feature is even available! I've been doing CG on quite a deep technical level for over 20 years, this should be easy for me
Found 222 posts.
Search results Show results as topic list.
Solaris and Karma » Karma properties on objects
- Jonathan de Blok
- 253 posts
- Offline
Solaris and Karma » Animation sequence rendering practices - speed loss once sent to Deadline
- Jonathan de Blok
- 253 posts
- Offline
It's this bit..
(You can copy anything to the 'custom' folder and deadline will use that instead of the original files. This keeps things relatively safe during updates etc. So copy this:to: )
The issue is with the path remapping code, as a quick fix add the 'if False' bit from the screenshot, or just delete it.
(You can copy anything to the 'custom' folder and deadline will use that instead of the original files. This keeps things relatively safe during updates etc. So copy this:
\DeadlineRepository10\plugins\Houdini
\DeadlineRepository10\custom\plugins\Houdini
The issue is with the path remapping code, as a quick fix add the 'if False' bit from the screenshot, or just delete it.
def perform_pathmapping(tempdir):
"""
Perform pathmapping on all input parameters and other select parameters
:param tempdir: the temporary location that a text file will be written to to aid pathmapping.
:return: None
"""
if not tempdir:
print("Temporary Directory has not been set. Skipping Pathmapping.")
return
print("Begin Path Mapping")
# gather a list of all parameters that need to be pathmapped
if False:
parms = gather_parms_to_map()
if parms:
pathmap_parms(tempdir, parms)
envs = gather_envs_to_map()
if envs:
pathmap_envs(tempdir, envs)
else:
print("Skipped path mapping: line 367 custom/plugins/Houdini/hrender_dl.py")
print("End Path Mapping")
Solaris and Karma » Animation sequence rendering practices - speed loss once sent to Deadline
- Jonathan de Blok
- 253 posts
- Offline
Btw, there is this annoying deadline issue that trips up all the caches, not sure of it happens in Solaris as sell. It's in deadline's houdini script where there are a few lines that trigger refreshes on all parm/nodes that have a fileReference. Even if they are upstream of cached output etc.
This caused massive delays for me a while back compared to straight UI renders..
I'll grab some more details when I get back to my workstation.
This caused massive delays for me a while back compared to straight UI renders..
I'll grab some more details when I get back to my workstation.
Edited by Jonathan de Blok - 2024年1月24日 13:00:22
Solaris and Karma » Karma properties on objects
- Jonathan de Blok
- 253 posts
- Offline
Brilliant, and please excuse the price winning graphics here, the blue marks aren't showing up in the reflections anymore, thx!
And the script let me to the docs, good to know it's there
https://www.sidefx.com/docs/houdini/hom/sceneimport_object_translator.html [www.sidefx.com]
And the script let me to the docs, good to know it's there
https://www.sidefx.com/docs/houdini/hom/sceneimport_object_translator.html [www.sidefx.com]
Solaris and Karma » Karma properties on objects
- Jonathan de Blok
- 253 posts
- Offline
Is there a way to set karma properties on objects (in /obj level)? I needs to flag a few objects to not show up in reflections, in redshift each object could have a tab full of options to tweaks all sorts of things.
Solaris and Karma » Animation sequence rendering practices - speed loss once sent to Deadline
- Jonathan de Blok
- 253 posts
- Offline
For deadline jobs you can set the chunk_size to something bigger then 1 (the amount of frames per task). You don't have to render frame by frame. Depending on the scene I usually set it between 25 .. 100 or something like that.
Edited by Jonathan de Blok - 2024年1月24日 04:59:30
Solaris and Karma » Karma ROP vs /obj level render flag
- Jonathan de Blok
- 253 posts
- Offline
robp_sidefx
Hi Jonathan, can you share a simple hip file that demonstrates the issue? Our goal is for Scene Import (which is what sits inside the Karma ROP) to give out-of-the-box results as similar as possible to what Mantra did. If we've missed the translation of a flag/setting, it'd be good to know so we can address this.
Thx for stepping in! And ofcoarse while making a repo scene I found it works just fine. And when I revisited the production scene it was working normally in there as well.
I do notice 'the' viewport bug where objects stop updating in the viewport happens quite a lot recently, could that have been at play here? Not sure if that affects the Karma viewport as well? (It's the issue that the Lab's 'reset viewport' feature fixes)
Solaris and Karma » Karma ROP vs /obj level render flag
- Jonathan de Blok
- 253 posts
- Offline
For now this works to generate a list of candidate objects in the Karma rop without the need to modify the karma hda itself which is nice.
" ".join( [ (f"{x.path()}/*" if x.isSubNetwork() else x.path()) for x in hou.node("/obj").children() if getattr(x,"isDisplayFlagSet",lambda:-1)()] )
Edited by Jonathan de Blok - 2024年1月12日 04:44:42
Solaris and Karma » Karma ROP vs /obj level render flag
- Jonathan de Blok
- 253 posts
- Offline
By the looks of it the Karma ROP doesn't respect any of the render flags? I'm converting from an redshift based workflow with a complex scene and using extensive automation to render out subsets that use this flag it's a bit of a roadblock. Rebuilding it all in Solaris is a bit to much r&d..
I did notice the karma rop being a wrapper around a lopnet and digging in there confirms that the renderflag is not ending up in the USD data. I guess I could hack something in there to make it use that flag but I'm hopping I've simply missed a checkbox somewhere.. any clues on how to do this comfortably?
I did notice the karma rop being a wrapper around a lopnet and digging in there confirms that the renderflag is not ending up in the USD data. I guess I could hack something in there to make it use that flag but I'm hopping I've simply missed a checkbox somewhere.. any clues on how to do this comfortably?
Houdini Lounge » Is there a procedural way to smooth capture weights?
- Jonathan de Blok
- 253 posts
- Offline
Not an exact answer but using deltamush sort of has the same effect in the end.
And I vaguely remember something with unpacking the capture attributes, a blur attrib node to smooth things after which you pack it again. it will only blur the current weighs assignments and not "spill" over into new joints/bones.
And I vaguely remember something with unpacking the capture attributes, a blur attrib node to smooth things after which you pack it again. it will only blur the current weighs assignments and not "spill" over into new joints/bones.
Houdini Lounge » Windows Clock Stops Updating when Houdini 20 is Running?
- Jonathan de Blok
- 253 posts
- Offline
It happens when Houdini's awesomeness rips a hole in the fabric of space and time. Startup up Blender in the background usually balances things out
Houdini Lounge » Why is everyone criticizing COP?
- Jonathan de Blok
- 253 posts
- Offline
This career opertuniy has been there for a while but I guess it means a cops overhaul is somewhere on the todo list: https://sidefx.bamboohr.com/careers/90 [sidefx.bamboohr.com]
Technical Discussion » How to modify HDA context visibility with python?
- Jonathan de Blok
- 253 posts
- Offline
The HDA definition is also in there if I'm not mistaken. Maybe you have to pass some extra arguments but even the UI, extra scripts etc are/should be all there in the output.
And vaguely remember something about the HDA needing to be in unlock for this..
And vaguely remember something about the HDA needing to be in unlock for this..
Technical Discussion » How to modify HDA context visibility with python?
- Jonathan de Blok
- 253 posts
- Offline
if you check the output of
hou.Node("/obj/yourHDA").asCode()
You might find some clues of what to set with python.
hou.Node("/obj/yourHDA").asCode()
You might find some clues of what to set with python.
Edited by Jonathan de Blok - 2023年12月12日 17:21:45
Technical Discussion » Dragging and dropping parameters when building an HDA
- Jonathan de Blok
- 253 posts
- Offline
Technical Discussion » Group objects by common partial name matches
- Jonathan de Blok
- 253 posts
- Offline
I've tweaked the hip file a bit for more robust output and to create actual groups as well while we're at it.
What it does is takes the first part of the string and uses that as main part name, the other matches are kept as an array of subnames. If you look at the input 'name' attrib values you can see I've made them extra messy yet the 'part_name' and 'part_subnames' values come out quite nicely.
What it does is takes the first part of the string and uses that as main part name, the other matches are kept as an array of subnames. If you look at the input 'name' attrib values you can see I've made them extra messy yet the 'part_name' and 'part_subnames' values come out quite nicely.
Edited by Jonathan de Blok - 2023年12月12日 04:01:11
Technical Discussion » Group objects by common partial name matches
- Jonathan de Blok
- 253 posts
- Offline
1) Take the name string up to the first non-letter character and add them to a list if they are not already in the list. This will give you a list of unique 'starter' strings.
2) sort the list by length, longest ones first. this is to help keeping "part_1234" and "partOther_1234" apart.
3) loop over list items and group them by item*. Make sure to only add to the group if it's not in a group already. This in combination with the sorting will avoid the "part" group from getting the "partOther" items.
2) sort the list by length, longest ones first. this is to help keeping "part_1234" and "partOther_1234" apart.
3) loop over list items and group them by item*. Make sure to only add to the group if it's not in a group already. This in combination with the sorting will avoid the "part" group from getting the "partOther" items.
Edited by Jonathan de Blok - 2023年12月11日 18:37:53
Technical Discussion » Capturing ROP node interrupt with python
- Jonathan de Blok
- 253 posts
- Offline
if all else fails you could use a post frame script that sets an extra parm on the ropnode to the last frame number that is rendered. Then a post render script that emits some exception event you could catch elsewhere if the last rendered frame value is less then the end of the frame range. #FridaySolutions
Technical Discussion » Stop me if you've heard this one before: 'module' object has no attribute 'foo'
- Jonathan de Blok
- 253 posts
- Offline
I use this all the time and it works just fine. How did you setup the callbacks? Should be something like:
hou.pwd().hm().regenTiles(kwargs)
hou.pwd().hm().regenTiles(kwargs)
Technical Discussion » Align or straighten points
- Jonathan de Blok
- 253 posts
- Offline
'Flatten' is probably the correct term since the node that does this is actually named 'Flatten'
https://www.sidefx.com/docs/houdini20.0/nodes/sop/flatten.html [www.sidefx.com]
https://www.sidefx.com/docs/houdini20.0/nodes/sop/flatten.html [www.sidefx.com]
-
- Quick Links