the constraint anchor rotation is based on the Wires_From_Dop object
if you extract pre-transform on it, you'll notice it's rotated exactly 90° in Z
Found 5502 posts.
Search results Show results as topic list.
Technical Discussion » Weird restposition with wiresolver
- tamte
- 8554 posts
- Offline
Technical Discussion » Context codes for scripts
- tamte
- 8554 posts
- Offline
for dops it's called: dop
(tried, works)
you can see the directory names in: $HFS/houdini/scripts
where the default creation scripts live
(tried, works)
you can see the directory names in: $HFS/houdini/scripts
where the default creation scripts live
Technical Discussion » Attribute Wrangle and Attribute VOP
- tamte
- 8554 posts
- Offline
Technical Discussion » Alembic instancing in Mantra
- tamte
- 8554 posts
- Offline
I would stick to raytrace as well
since assuming that vm_sharedisplace works for MP (which I haven't tested), the fact that it would dice all instances with the density of the closest one may result in very heavy geometry, for which MP would need to shade every point on every instance no matter how small it is in the frame, that may actually take longer than leaving MP to dice each instance separately at it's own screen space resolution, but for sure seems like it would take longer than raytrace for most of the cases
but this is just a thought based on my understanding of MP, so maybe you can do a simple test whenever not sure
since assuming that vm_sharedisplace works for MP (which I haven't tested), the fact that it would dice all instances with the density of the closest one may result in very heavy geometry, for which MP would need to shade every point on every instance no matter how small it is in the frame, that may actually take longer than leaving MP to dice each instance separately at it's own screen space resolution, but for sure seems like it would take longer than raytrace for most of the cases
but this is just a thought based on my understanding of MP, so maybe you can do a simple test whenever not sure
Technical Discussion » horrible rendertimes
- tamte
- 8554 posts
- Offline
without any changes it takes 5m20s on my 4-core laptop i7-2720QM
so your time seems to be quite slow for how much better your machine seems in comparison
and even though you can improve it slightly (4m20s on my laptop) , it still doesn't change the fact that your machine should be much faster:
- min ray samples to 1 (as more than that doesn't really help your scene, changing )
- Shading/Color Space to Gamma 2.2 (to get more even noise sampling if you're displaying your image with 2.2 gamma)
- increase bucket size (maybe just to 32)
and I noticed, that you've added vm_gamma to your mantra and set to 2.2, which will bake that correction to image being saved to disk
that is usually not desired if you are saving to linear format as exr
H13.0.401
so your time seems to be quite slow for how much better your machine seems in comparison
and even though you can improve it slightly (4m20s on my laptop) , it still doesn't change the fact that your machine should be much faster:
- min ray samples to 1 (as more than that doesn't really help your scene, changing )
- Shading/Color Space to Gamma 2.2 (to get more even noise sampling if you're displaying your image with 2.2 gamma)
- increase bucket size (maybe just to 32)
and I noticed, that you've added vm_gamma to your mantra and set to 2.2, which will bake that correction to image being saved to disk
that is usually not desired if you are saving to linear format as exr
H13.0.401
Houdini Learning Materials » Viewport Normals (aka Autosmoothing)
- tamte
- 8554 posts
- Offline
I agree with OneBigTree
his request has nothing to do with modeling
it's very useful to have correct shading in the viewport, the only thing he is requesting is to be able to have Angle Cusp setting on object that will cusp viewport vertex normals (and I would suggest automatic render ones as well) when no custom point or vertex N attribute exist
so for now viewport and mantra create automatic N if there is no such attribute and this is handy as you don't need to recompute N on model after each operation
so it's just logical if you are using Angle Cusping as it's quite standard to have this as automatic postprocess on the model handled in Viewport and Render, but really only in case when no custom N exist on object
the Cusp Angle setting can live on Object/Geometry tab, right next to Automatically Compute Normals
I'd like to see this happen as appending Facet or Vertex SOP every time to see correct shading is a little tiring
his request has nothing to do with modeling
it's very useful to have correct shading in the viewport, the only thing he is requesting is to be able to have Angle Cusp setting on object that will cusp viewport vertex normals (and I would suggest automatic render ones as well) when no custom point or vertex N attribute exist
so for now viewport and mantra create automatic N if there is no such attribute and this is handy as you don't need to recompute N on model after each operation
so it's just logical if you are using Angle Cusping as it's quite standard to have this as automatic postprocess on the model handled in Viewport and Render, but really only in case when no custom N exist on object
the Cusp Angle setting can live on Object/Geometry tab, right next to Automatically Compute Normals
I'd like to see this happen as appending Facet or Vertex SOP every time to see correct shading is a little tiring
Technical Discussion » how convert absolute path to relative path in motionFX
- tamte
- 8554 posts
- Offline
CHOPs work perfectly with relative paths
just remember, if you are exporting (not using Export CHOP) from any CHOP through export flag, the path to driven parm is combined from Export Prefix and channel name
so just set your channel name to:
Biped_animation_rig1:left_leg_ctrl_ik_ankle_tz
and on node you are exporting from go to Common Tab
and set Export Prefix to :
../..
so that combined export path is:
../../Biped_animation_rig1:left_leg_ctrl_ik_ankle_tz
which will find exactly your parameter
just remember, if you are exporting (not using Export CHOP) from any CHOP through export flag, the path to driven parm is combined from Export Prefix and channel name
so just set your channel name to:
Biped_animation_rig1:left_leg_ctrl_ik_ankle_tz
and on node you are exporting from go to Common Tab
and set Export Prefix to :
../..
so that combined export path is:
../../Biped_animation_rig1:left_leg_ctrl_ik_ankle_tz
which will find exactly your parameter
SI Users » Houdini Into Production - what features lacks
- tamte
- 8554 posts
- Offline
I guess since there is already a Wishlist thread serving this purpose, people may not want to repeat themselves here, so just feel free to join the discussion there
https://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=30366 [sidefx.com]
https://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=30366 [sidefx.com]
Technical Discussion » Get point from a given position.
- tamte
- 8554 posts
- Offline
nearpoint() function in VEX does that
http://www.sidefx.com/docs/houdini13.0/vex/functions/nearpoint [sidefx.com]
not sure what you mean by VEX not supporting arrays, as it does, but maybe you mean that it doesn't have much functions to work with them?
http://www.sidefx.com/docs/houdini13.0/vex/functions/nearpoint [sidefx.com]
not sure what you mean by VEX not supporting arrays, as it does, but maybe you mean that it doesn't have much functions to work with them?
Houdini Indie and Apprentice » Age of particles in a group
- tamte
- 8554 posts
- Offline
you can either create custom attribute that accumulates the age particle has spent in certain group/stream
http://forums.odforce.net/topic/20755-wrangle-reset-particle-age-when-the-particle-enters-a-group/?p=124254 [forums.odforce.net]
or maybe even use f@hittime if it's really about collision
hittime attributes stores time of the last collision (generated by POP Collision Detect, or Add Hit Attributes on POP Solver)
http://forums.odforce.net/topic/20755-wrangle-reset-particle-age-when-the-particle-enters-a-group/?p=124254 [forums.odforce.net]
or maybe even use f@hittime if it's really about collision
hittime attributes stores time of the last collision (generated by POP Collision Detect, or Add Hit Attributes on POP Solver)
Houdini Learning Materials » Copy to primitives
- tamte
- 8554 posts
- Offline
not directly, but it's easy to do
just use Attrib Wrangle, switch Run Over parm to Primitives and use this code to create centroid point per primitive:
addpoint(0,@P);
removeprim(0, @primnum, 1);
if you want your point to inherit some attributes from geometry, you can use primuv() for that:
int pt = addpoint(0,@P);
vector nml = primuv(0, “N”, @primnum, {.5,.5,0});
setpointattrib(0, “N”, pt, nml);
removeprim(0, @primnum, 1);
just use Attrib Wrangle, switch Run Over parm to Primitives and use this code to create centroid point per primitive:
addpoint(0,@P);
removeprim(0, @primnum, 1);
if you want your point to inherit some attributes from geometry, you can use primuv() for that:
int pt = addpoint(0,@P);
vector nml = primuv(0, “N”, @primnum, {.5,.5,0});
setpointattrib(0, “N”, pt, nml);
removeprim(0, @primnum, 1);
Technical Discussion » String matching
- tamte
- 8554 posts
- Offline
I think that's quite limited with current VEX functions, you could split() the string based on “.” to array, then replace last element with “rat” and than assemble back to string, but that feels like too much work for something that could be done easier
if however replacement of string attribute is what you are after, then have a look at AttributeStringEdit SOP, where you can even use regular expressions for substitutions
if however replacement of string attribute is what you are after, then have a look at AttributeStringEdit SOP, where you can even use regular expressions for substitutions
Technical Discussion » Meshing Points (Tree Structure)
- tamte
- 8554 posts
- Offline
not sure how that algorithm looks like
but if you are iterating from root to tips, you will know that direction as you first need to get that direction, then move the point, you you just need to remember direction in which the point was moved and not the direction in which you will move the next one as you have it now, shouldn't be any work at all, but depends on your setup
but if you are iterating from root to tips, you will know that direction as you first need to get that direction, then move the point, you you just need to remember direction in which the point was moved and not the direction in which you will move the next one as you have it now, shouldn't be any work at all, but depends on your setup
Technical Discussion » Meshing Points (Tree Structure)
- tamte
- 8554 posts
- Offline
if I consider direction from root to tips
now your direction vector points to next point
it would be great if the direction vector can keep that direction from previous point so that root point will have empty direction vector as there was no previous one and tip points would still have direction which is from previous point
the point of all this is if you invert those vectors and scale to segment length they will reach more or less the previous point and that will work even for branching ones, so the pointcloud lookup can be much more precise and you can get perfect connections
now your direction vector points to next point
it would be great if the direction vector can keep that direction from previous point so that root point will have empty direction vector as there was no previous one and tip points would still have direction which is from previous point
the point of all this is if you invert those vectors and scale to segment length they will reach more or less the previous point and that will work even for branching ones, so the pointcloud lookup can be much more precise and you can get perfect connections
Technical Discussion » Setting varmaps with python
- tamte
- 8554 posts
- Offline
here is an example of creating variable mappings for all incoming attributes on the geometry
geo = hou.pwd().geometry()
# get all attribs
attribs = geo.pointAttribs() + geo.primAttribs() + geo.vertexAttribs()
# populate varmap list with variable mappings
varmaps =
# create varmap if doesn't exist
if geo.findGlobalAttrib(“varmap”) is None:
geo.addAttrib(hou.attribType.Global, “varmap”, “”)
# store varmap list into varmap detail attribute
geo.setGlobalAttribValue(“varmap”, varmaps )
geo = hou.pwd().geometry()
# get all attribs
attribs = geo.pointAttribs() + geo.primAttribs() + geo.vertexAttribs()
# populate varmap list with variable mappings
varmaps =
# create varmap if doesn't exist
if geo.findGlobalAttrib(“varmap”) is None:
geo.addAttrib(hou.attribType.Global, “varmap”, “”)
# store varmap list into varmap detail attribute
geo.setGlobalAttribValue(“varmap”, varmaps )
Technical Discussion » Meshing Points (Tree Structure)
- tamte
- 8554 posts
- Offline
so until you provide those attribs here is the version from current geo
it's not completely perfect as that direction info would really help
it's not completely perfect as that direction info would really help
Technical Discussion » Meshing Points (Tree Structure)
- tamte
- 8554 posts
- Offline
how did you create those points?
if those are trailing points of some particles and you have stored v attribute of the particle leaving them, then it should be pretty straightforward to join them in cvex
additionally if you have age/time attribute which represents time from beginning of your sim till the trail particle is created, that can help to get correct thickness on the branches
and once you have points connected and proper attribute for thickness, you can use polywire to create desired tubes
can you provide those attribs from your sim?
if those are trailing points of some particles and you have stored v attribute of the particle leaving them, then it should be pretty straightforward to join them in cvex
additionally if you have age/time attribute which represents time from beginning of your sim till the trail particle is created, that can help to get correct thickness on the branches
and once you have points connected and proper attribute for thickness, you can use polywire to create desired tubes
can you provide those attribs from your sim?
Technical Discussion » Meshing Points (Tree Structure)
- tamte
- 8554 posts
- Offline
your file doesn't contain the geometry
you need to load houdini geometry, then lock it
if you lock Alembic SOP in Alembic Delayed Load Primitives mode, all we see is one point/primitive with path to your alembic file, so not the geometry itself
you need to load houdini geometry, then lock it
if you lock Alembic SOP in Alembic Delayed Load Primitives mode, all we see is one point/primitive with path to your alembic file, so not the geometry itself
Houdini Learning Materials » How to use custom per point attributes in DOPs
- tamte
- 8554 posts
- Offline
as written on the page I've sent you many attributes serve as scaling factors for the parms on wire objects
by each attribute you have if it's a scaling factor or not
if it is, it multiplies the parm on Wire DOP object, if not it sets the absolute value (like fexternal, v, angvel, etc…)
EDIT: just be aware that the values are combined by the solver, so you'll not get combined value in the details view
by each attribute you have if it's a scaling factor or not
if it is, it multiplies the parm on Wire DOP object, if not it sets the absolute value (like fexternal, v, angvel, etc…)
EDIT: just be aware that the values are combined by the solver, so you'll not get combined value in the details view
Houdini Learning Materials » How to use custom per point attributes in DOPs
- tamte
- 8554 posts
- Offline
you can as well look through docs to find which attributes your object will recognize automatically
http://www.sidefx.com/docs/houdini13.0/nodes/dop/wireobject#idm47406248528416 [sidefx.com]
http://www.sidefx.com/docs/houdini13.0/nodes/dop/wireobject#idm47406248528416 [sidefx.com]
-
- Quick Links