If you want to instance a network, you need to make an HDA out of the network that you can use in your scene multiple times.
If you want to instance geometry on to points, you can do that with the instance object, the copy sop, or using packed geometry.
Not sure exactly what you mean, sorry.
Found 47 posts.
Search results Show results as topic list.
Technical Discussion » instancing nodes
- ben-andersen
- 47 posts
- Offline
Houdini Indie and Apprentice » Mantra GPU Rendering option
- ben-andersen
- 47 posts
- Offline
SideFX just announced that they're supporting a new cloud rendering service that might be worth checking out.
You wouldn't get the immediate speeds of rendering on the GPU, but if you're rendering sequences, it would run in parallel and maybe come back faster than running everything in sequence locally, even with a GPU renderer.
https://www.sidefx.com/index.php?option=com_content&task=view&id=3121&Itemid=66 [sidefx.com]
You wouldn't get the immediate speeds of rendering on the GPU, but if you're rendering sequences, it would run in parallel and maybe come back faster than running everything in sequence locally, even with a GPU renderer.
https://www.sidefx.com/index.php?option=com_content&task=view&id=3121&Itemid=66 [sidefx.com]
Technical Discussion » Energy trail FX
- ben-andersen
- 47 posts
- Offline
I'd guess this is done by advecting millions of points through a smoke sim and have them add their color on top of each other. So you get bands of color where there are lots of points, but it gets low opacity where there aren't many. You could additionally put on a force that pushes the points towards areas of higher density in the smoke as well, to get more discrete lines in the trails.
Another option would be to scatter a few points (like 20) that are bound to the character (attrib interpolate) that emits a trail coming off the character as he runs. You can then use that to build a discrete curve coming off of those points either to push your millions of points towards that curve, or to increase the density of your points in that area, or something.
Another option would be to scatter a few points (like 20) that are bound to the character (attrib interpolate) that emits a trail coming off the character as he runs. You can then use that to build a discrete curve coming off of those points either to push your millions of points towards that curve, or to increase the density of your points in that area, or something.
Technical Discussion » Bullet Collisions - Box vs Concave
- ben-andersen
- 47 posts
- Offline
F e z
Is it more efficient to have 200 pieces of convex hulls collider vs one concave object? Thank you Jeff for the example file.
I'm not sure if it's more efficient (I bet it is though), but you'll get much better, much more stable results with many convex primitives than with concave, complex pieces.
Another thing you can do is do vdb_from_polygons and then vdb to spheres to do sphere packing. You can then say that all of those spheres are named the same thing. Then in the packed rbd object DOP node, set it to use a convex hull per set of connected polygons (or whatever that's called). Then you can use the transform pieces SOP to put your original geometry back on to the spheres after you've simulated it.
Technical Discussion » Change the size of particle
- ben-andersen
- 47 posts
- Offline
You can use a Point VOP to do per-point modifications like that.
In the Point VOP, divide age by life, plug that into a fit, and then plug that into a bind export node set to pscale.
I can't put together an example right now, but I can put one together in a bit if that's not clear enough.
In the Point VOP, divide age by life, plug that into a fit, and then plug that into a bind export node set to pscale.
I can't put together an example right now, but I can put one together in a bit if that's not clear enough.
Houdini Lounge » Setting global animation range with python/hscript
- ben-andersen
- 47 posts
- Offline
I think hou.playbar.setPlaybackRange() just sets the playback range, not the actual scene frame range. So the hou interface would set $RFSTART but not $FSTART.
Technical Discussion » how to set custom variable like $HIP
- ben-andersen
- 47 posts
- Offline
The houdini.env file might be what you're looking for:
http://www.sidefx.com/docs/houdini14.0/basics/config_env [sidefx.com]
You could also do something weird like running a line like this in your 123.py/456.py:
hou.hscript(“set -g %s=%s” % (“VARIABLE”,“VALUE”))
http://www.sidefx.com/docs/houdini14.0/basics/config_env [sidefx.com]
You could also do something weird like running a line like this in your 123.py/456.py:
hou.hscript(“set -g %s=%s” % (“VARIABLE”,“VALUE”))
Technical Discussion » How do you create groups in an attribute VOP?
- ben-andersen
- 47 posts
- Offline
Houdini Indie and Apprentice » ConeTwist and SOP Solver Prim remove
- ben-andersen
- 47 posts
- Offline
The default expression for the ‘Overwrite with SOP’ on the constraint network is incorrect in the latest production build (14.0.201) and causes it to return 1 most/all of the time, so constraints are replaced from SOPs.
You can replace the expression with something like:
$SF==1
They've fixed it in the current daily build, I think.
You can replace the expression with something like:
$SF==1
They've fixed it in the current daily build, I think.
Houdini Learning Materials » 3ds max and Houdini workflow.
- ben-andersen
- 47 posts
- Offline
Hey Vincit – sorry I'm late to the party. I'm at a studio that is primarily using Max at the moment too.
For geometry, we're writing alembic out of houdini, then converting to xmesh as a post export process. Thinkbox provided a standalone Alembic to Xmesh conversion application that we've been using.
Alternatively, we can route it through a maya batch process to convert Alembic to Xmesh, but Maya's Alembic support isn't awesome either – it doesn't really support point based velocities, so topologically inconsistent meshes were a bit of a challenge. We worked around it and I can describe the solution if you need me to. I'd suggest asking Thinkbox for the conversion instead, though.
We're using XMesh because rendering the VRay alembic proxy geometry doesn't support motion blurred displacement maps – the faces of the geometry all separate. It's kind of a big disappointment. Xmesh works fine though. Just make sure you turn on ‘convert to mesh’, otherwise orbiting around in the max viewport is really slow.
To get volumes from Houdini, we built a conversion using a max script that will convert vdb to a fume grid by going through stoke. It's a very slow and painful process to run that conversion, so I would recommend just rendering in Mantra. You can use deep images to get perfect hold outs, but in most cases, the matte lines aren't that big of a deal to render the hold outs with mantra as well.
To get particles from Houdini, we're using a PRT exporter, kind of like this guy: https://github.com/ThinkboxSoftware/HoudiniPRTExporter [github.com]
Max seems to have pretty bad adoption of open source file formats like abc and vdb, so it makes using both tools together pretty painful.
For geometry, we're writing alembic out of houdini, then converting to xmesh as a post export process. Thinkbox provided a standalone Alembic to Xmesh conversion application that we've been using.
Alternatively, we can route it through a maya batch process to convert Alembic to Xmesh, but Maya's Alembic support isn't awesome either – it doesn't really support point based velocities, so topologically inconsistent meshes were a bit of a challenge. We worked around it and I can describe the solution if you need me to. I'd suggest asking Thinkbox for the conversion instead, though.
We're using XMesh because rendering the VRay alembic proxy geometry doesn't support motion blurred displacement maps – the faces of the geometry all separate. It's kind of a big disappointment. Xmesh works fine though. Just make sure you turn on ‘convert to mesh’, otherwise orbiting around in the max viewport is really slow.
To get volumes from Houdini, we built a conversion using a max script that will convert vdb to a fume grid by going through stoke. It's a very slow and painful process to run that conversion, so I would recommend just rendering in Mantra. You can use deep images to get perfect hold outs, but in most cases, the matte lines aren't that big of a deal to render the hold outs with mantra as well.
To get particles from Houdini, we're using a PRT exporter, kind of like this guy: https://github.com/ThinkboxSoftware/HoudiniPRTExporter [github.com]
Max seems to have pretty bad adoption of open source file formats like abc and vdb, so it makes using both tools together pretty painful.
Technical Discussion » FLIP sim for quick feedback
- ben-andersen
- 47 posts
- Offline
I've just been using the low res sim as the source emitter for the high res and varying the velocities to be like 0.9-1.1 times the velocity of the source.
You can also use the surface/sdf to force the high res sim to be in lock step to the low res just under the surface of the water, depending on what kind of liquid sim it is. This will cause the high res sim to retain the shape of the Los res, while adding surface detail.
You can also use the surface/sdf to force the high res sim to be in lock step to the low res just under the surface of the water, depending on what kind of liquid sim it is. This will cause the high res sim to retain the shape of the Los res, while adding surface detail.
Technical Discussion » FLIP sim for quick feedback
- ben-andersen
- 47 posts
- Offline
Grid Scale is a scalar on the voxel size of the underlying fluid solve. I often increase that to make sure that my simulation is technically working before sending it to the farm to sim at a higher resolution (lower grid scale). I wouldn't rely on the artistic results looking very close between the two, obviously.
Sometimes it helps to do a two pass flip solve. Getting it to look pretty good on a low res sim, then use that sim to emit into a higher resolution sim afterward. That kind of allows you to get the broad strokes in first before adding detail on top of it afterward.
Sometimes it helps to do a two pass flip solve. Getting it to look pretty good on a low res sim, then use that sim to emit into a higher resolution sim afterward. That kind of allows you to get the broad strokes in first before adding detail on top of it afterward.
Technical Discussion » H14 compiling, x86_amd64 error
- ben-andersen
- 47 posts
- Offline
I got this to work by copying
CProgram Files (x86)/Microsoft Visual Studio 11.0/VC/bin/x86_amd64
to
CProgram Files (x86)/Microsoft Visual Studio 11.0/VC/bin/amd64
Then in hcmd, running:
“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat” x86_amd64
then hcustom worked for me using the cross compiler on 64-bit windows.
It's a shame that the only freely available compiler for vc11 doesn't ship with a 64 bit compiler.
CProgram Files (x86)/Microsoft Visual Studio 11.0/VC/bin/x86_amd64
to
CProgram Files (x86)/Microsoft Visual Studio 11.0/VC/bin/amd64
Then in hcmd, running:
“C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat” x86_amd64
then hcustom worked for me using the cross compiler on 64-bit windows.
It's a shame that the only freely available compiler for vc11 doesn't ship with a 64 bit compiler.
Technical Discussion » What attribute(s) used to draw Particle Gnomon on screen?
- ben-andersen
- 47 posts
- Offline
Hey Goldleaf :-)
You might find this helpful:
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=6679 [sidefx.com]
You might find this helpful:
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=6679 [sidefx.com]
Technical Discussion » Acessing point Alpha in vops
- ben-andersen
- 47 posts
- Offline
Alpha is a separate attribute from Cd, so to make it, you'd do something like:
@Alpha = .5;
@Alpha = .5;
Technical Discussion » create poly line primitive from edge group
- ben-andersen
- 47 posts
- Offline
Ah, yeah! Thanks! I've never used that before.
In order to get it to work, I had to make an edge group that was *not* my edge, set the type to edges, set strategy to ‘remove’ and untick ‘keep polygons closed’.
It also seems to output doubled up edges, so I had to put down a clean node afterwards to fix overlaps.
Thanks
Ben
In order to get it to work, I had to make an edge group that was *not* my edge, set the type to edges, set strategy to ‘remove’ and untick ‘keep polygons closed’.
It also seems to output doubled up edges, so I had to put down a clean node afterwards to fix overlaps.
Thanks
Ben
Technical Discussion » create poly line primitive from edge group
- ben-andersen
- 47 posts
- Offline
I have an edge group that I made by selected edges on a sphere.
I want to remove everything except the edge.
Blasting non selected with the edge group removes everything but the points. Which makes sense, because there are no line primitives prior to the blast, and the blast removes the polygon faces that were making up the line.
Is there a node to just give me the edge I selected as a line?
The add sop doesn't work because the point order isn't linear and I want to support branching.
Thanks!
Ben
I want to remove everything except the edge.
Blasting non selected with the edge group removes everything but the points. Which makes sense, because there are no line primitives prior to the blast, and the blast removes the polygon faces that were making up the line.
Is there a node to just give me the edge I selected as a line?
The add sop doesn't work because the point order isn't linear and I want to support branching.
Thanks!
Ben
Technical Discussion » Packed point data on unpacked geometry
- ben-andersen
- 47 posts
- Offline
Thanks Derrick!
The problem for me was that the name attribute isn't unique to each point. A point can share multiple ‘name’ geometries, because name just refers to the packed geometry type, which can be instanced to each point.
Someone at houdini support told me that the best way to do this right now is use two dop import nodes with one set to ‘fetch unpacked geometry’ with the ‘add DOP Object Name Attribute’ checked on, and then another set to ‘fetch packed geometry’ and build the association there via an attribute copy, which worked for me for the time being.
The problem for me was that the name attribute isn't unique to each point. A point can share multiple ‘name’ geometries, because name just refers to the packed geometry type, which can be instanced to each point.
Someone at houdini support told me that the best way to do this right now is use two dop import nodes with one set to ‘fetch unpacked geometry’ with the ‘add DOP Object Name Attribute’ checked on, and then another set to ‘fetch packed geometry’ and build the association there via an attribute copy, which worked for me for the time being.
Technical Discussion » volume vop: write data to voxel?
- ben-andersen
- 47 posts
- Offline
What's the write equivalent of volume sample?
I want to use findattribval to find which primitive is named “vel” for instance (but having the name of that attribute set as a parameter on the volume vop). Then I can feed the output of findattribval into volumesample to get the volume data without knowing the primitive ahead of time.
I would just do it with bindings, but a) I have to know the name of the volume ahead of time, and b) binding everything to density doesn't seem to work for vdb vector grids.
So, basically, I want to write voxel values in the same way that I am reading them when I use volume sample.
Is there a good way to do that?
I want to use findattribval to find which primitive is named “vel” for instance (but having the name of that attribute set as a parameter on the volume vop). Then I can feed the output of findattribval into volumesample to get the volume data without knowing the primitive ahead of time.
I would just do it with bindings, but a) I have to know the name of the volume ahead of time, and b) binding everything to density doesn't seem to work for vdb vector grids.
So, basically, I want to write voxel values in the same way that I am reading them when I use volume sample.
Is there a good way to do that?
Technical Discussion » Packed point data on unpacked geometry
- ben-andersen
- 47 posts
- Offline
I have a bunch of rocks that I've got in a bullet simulation, and now I need to unpack the geometry and modify them based on some data on the packed points. I want to get the packed point number after unpacking it. Or, basically just figure out some way to associate the packed geo points with the unpacked geo. How can I do that?
-
- Quick Links