It's different in every studio but that's why standard file formats like Alembic, VDB, USD exists. Even though you can technically render Deep images out of Houdini and comp them with other Deep renders from another software, things never line up properly and you'll get issues with mattes/edges - and you will need interaction between 3D elements anyways for shadows, transmission, reflection, etc...
You should render everything in one software, whatever it is, Houdini, Maya, Katana, Gaffer, or others.
Found 14 posts.
Search results Show results as topic list.
Technical Discussion » Render workflow in studio ?
- bunker__
- 21 posts
- Offline
Technical Discussion » Upres Bonfire
- bunker__
- 21 posts
- Offline
Technical Discussion » Can no longer open hip file (Invalid header) - help!
- bunker__
- 21 posts
- Offline
What Houdini build version are you using?
that kind of bug should be reported to SideFX.
that kind of bug should be reported to SideFX.
Edited by bunker__ - May 17, 2022 20:35:29
Technical Discussion » Pyro - disturbance on smooth density only
- bunker__
- 21 posts
- Offline
Hey Hristo,
not sure if that answers your question but you could try applying disturbance only on the outside of the smoke.
I find it easier to control that in a wrangle:
pseudo-code:
-keep voxels outside the smoke
-keep voxels that move fast enough
-create 1D noise (with divscale), if above thresold: create 3D noise
-add to vel
The noises are really basic and quick to compute, just cubes, no smoothing...
Also that way, I'm only adding noise to some percentage of the voxels
eg: if noise_threshold=0.99, only add noise to 1% of the voxels.
it looks a lot more natural, not just adding noise everywhere
... and you can adapt the code to use any mask easily too!
example attached, hope that helps
not sure if that answers your question but you could try applying disturbance only on the outside of the smoke.
I find it easier to control that in a wrangle:
pseudo-code:
-keep voxels outside the smoke
-keep voxels that move fast enough
-create 1D noise (with divscale), if above thresold: create 3D noise
-add to vel
if(f@density<chf("density_threshold")){ float speed = length(v@vel); if(speed>chf("speed_threshold")){ // 1D noise vector hvec = (v@P + chf("divscale"))/chf("divscale"); float r1 = float(random(hvec+@Frame+chf("seed"))); if(r1>chf("noise_threshold")){ // 3D noise vector hvec2 = (v@P + chf("divscale"))/chf("divscale"); vector r3 = (random(hvec2+@Frame+123+chf("seed")))*vector(2)-1; v@vel += r3 * speed * chf("disturbance_amount"); } } }
The noises are really basic and quick to compute, just cubes, no smoothing...
Also that way, I'm only adding noise to some percentage of the voxels
eg: if noise_threshold=0.99, only add noise to 1% of the voxels.
it looks a lot more natural, not just adding noise everywhere
... and you can adapt the code to use any mask easily too!
example attached, hope that helps
Edited by bunker__ - May 6, 2022 00:48:36
Technical Discussion » Problems with H19 window (maximize, full-screen)
- bunker__
- 21 posts
- Offline
Technical Discussion » [Solved] Unable to properly link float ramps via script
- bunker__
- 21 posts
- Offline
adding this for anyone interested in doing everything in python
This sets the callback script and language, then triggers the callback:
and the destination ramp's path is relative
This sets the callback script and language, then triggers the callback:
and the destination ramp's path is relative
source_ramp = hou.parm('/obj/ground_explosion/ramps/ramp_a') dest_ramp = hou.parm('/obj/ground_explosion/ramps/ramp_b') def copyRefRamp(source_ramp,dest_ramp): ptg = source_ramp.node().parmTemplateGroup() source_ramp_template = ptg.find(source_ramp.name()) dest_ramp_relpath = source_ramp.node().relativePathTo(dest_ramp.node())+"/"+dest_ramp.name() callbackScript = 'dest_ramp=hou.parm("'+dest_ramp_relpath+'");source_ramp=hou.pwd().evalParm("'+source_ramp.name()+'"); dest_ramp.set(source_ramp)' tags = {} tags["script_callback_language"]="python" tags['script_callback']=callbackScript source_ramp_template.setTags(tags) ptg.replace(source_ramp.name(),source_ramp_template) source_ramp.node().setParmTemplateGroup(ptg) copyRefRamp(source_ramp,dest_ramp) # trigger callback source_ramp.pressButton()
Edited by bunker__ - March 29, 2021 22:32:32
Houdini Indie and Apprentice » Smoke simulation Upres artifacts (blocs and rectangles)
- bunker__
- 21 posts
- Offline
Also if you don't add any turbulence in your upres, you're just upscaling the sim, making any lowres issue more visible.
Houdini Indie and Apprentice » How to move a group to a point in VEX
- bunker__
- 21 posts
- Offline
The stem's top point number might not be zero? if that's the case, use a Sort node to reverse the point number
then you should be able to do something like this:
@P += point(1,“P”,0) - point(0,“P”,0);
then you should be able to do something like this:
@P += point(1,“P”,0) - point(0,“P”,0);
Edited by bunker__ - Sept. 27, 2020 02:36:32
Houdini Lounge » what is geometry spreadsheet parameter ???
- bunker__
- 21 posts
- Offline
https://www.sidefx.com/forum/topic/56423/?page=1#post-253129 [www.sidefx.com]
you can also just export as .OBJ it will have all the points and polygons in text format
you can also just export as .OBJ it will have all the points and polygons in text format
Technical Discussion » Equivalent of old Group SOP expressions?
- bunker__
- 21 posts
- Offline
You can also drop down a wrangle, it's almost exactly the same syntax as ($BBZ < 1.0) && ($BBZ > 0.95)
vector BB = relbbox(@P);
@group_mygroup = BB.x<1 && BB.z>0.95;
And I agree with @jsmack, do not use old SOPs, some have been deprecated for a few years already.
vector BB = relbbox(@P);
@group_mygroup = BB.x<1 && BB.z>0.95;
And I agree with @jsmack, do not use old SOPs, some have been deprecated for a few years already.
SI Users » Disable Clic translate
- bunker__
- 21 posts
- Offline
you can easily lock the Position of all object nodes in Python:
for i in hou.node(“/obj”).children(): for j in i.parmTuple(“t”):j.lock(1)
Edited by bunker__ - July 26, 2017 20:20:35
Houdini Lounge » Using noise texture on a geometry light
- bunker__
- 21 posts
- Offline
have a look at this:
http://ihoudini.blogspot.ca/2009/08/particle-motion-blur-again-and-some.html [ihoudini.blogspot.ca]
It's a much better and faster way of creating lights, and no grainy renders…
http://ihoudini.blogspot.ca/2009/08/particle-motion-blur-again-and-some.html [ihoudini.blogspot.ca]
It's a much better and faster way of creating lights, and no grainy renders…
Technical Discussion » Gas Up res
- bunker__
- 21 posts
- Offline
Houdini Lounge » houdini on linux quad core
- bunker__
- 21 posts
- Offline
Houdini's cooking process is not fully multi-threaded (yet).
However, DOPs use multi-core quite well with fluids.
You should also have a look at the “VOP SOP” in SOP. it handles data in a SIMD way ( http://en.wikipedia.org/wiki/SIMD [en.wikipedia.org] ) and can access point clouds too
So it will use all your cores if you have enough data to process.
You can also create VEX geometry operators ( same as VOP SOP, but purely code based instead of using VOPS )
To note also, POPs are not multi-threaded, but you can use VEX in POPs with the “VOP POP” node.
Feel free to add more multi-core tricks if you know any
However, DOPs use multi-core quite well with fluids.
You should also have a look at the “VOP SOP” in SOP. it handles data in a SIMD way ( http://en.wikipedia.org/wiki/SIMD [en.wikipedia.org] ) and can access point clouds too
So it will use all your cores if you have enough data to process.
You can also create VEX geometry operators ( same as VOP SOP, but purely code based instead of using VOPS )
To note also, POPs are not multi-threaded, but you can use VEX in POPs with the “VOP POP” node.
Feel free to add more multi-core tricks if you know any
-
- Quick Links