If you turn the https/ into http/ it seems to load the videos.
i.e. go to:
http://www.sidefx.com/index.php?option=com_content&task=view&id=2724&Itemid=344 [sidefx.com]
instead of:
https://www.sidefx.com/index.php?option=com_content&task=view&id=2724&Itemid=344 [sidefx.com]
Alternatively, you can search google for the name of the video you're trying to load, and it should find the page that can display the video.
Found 47 posts.
Search results Show results as topic list.
Houdini Learning Materials » Missing tutorial videos?
- ben-andersen
- 47 posts
- Offline
Houdini Lounge » Setting global animation range with python/hscript
- ben-andersen
- 47 posts
- Offline
I don't think the printf style formatting is going away in python 3.
https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting [docs.python.org]
Python 3 just introduces a more flexible alternative to it as well.
https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting [docs.python.org]
Python 3 just introduces a more flexible alternative to it as well.
Technical Discussion » Call HDA Tool from script
- ben-andersen
- 47 posts
- Offline
Right click on the shelf button. For instance, Flames.
Click Edit Tool
Click Script
This will show you the code used to drive that shelf tool. For flames, you can see it is:
import doptoolutils
import dopsmoketoolutils
import doppyrotoolutils
doppyrotoolutils.burn(kwargs,True)
Then to see what's going on inside of burn, you can do the following:
add a Python Shell Pane and type:
>>> import doppyrotoolutils
>>> help (doppyrotoolutils)
That will show you the docstring for each method in doppyrotoolutils as well as the location of the .py source file.
You could take pieces of that code and add it to your HDA, or simply have the build script call doppyrotoolutils.burn(), but I think it might still do the object selection prompting. You'd probably need to tear into it a little for it to use another object.
Click Edit Tool
Click Script
This will show you the code used to drive that shelf tool. For flames, you can see it is:
import doptoolutils
import dopsmoketoolutils
import doppyrotoolutils
doppyrotoolutils.burn(kwargs,True)
Then to see what's going on inside of burn, you can do the following:
add a Python Shell Pane and type:
>>> import doppyrotoolutils
>>> help (doppyrotoolutils)
That will show you the docstring for each method in doppyrotoolutils as well as the location of the .py source file.
You could take pieces of that code and add it to your HDA, or simply have the build script call doppyrotoolutils.burn(), but I think it might still do the object selection prompting. You'd probably need to tear into it a little for it to use another object.
Technical Discussion » Call HDA Tool from script
- ben-andersen
- 47 posts
- Offline
Store your code under the ‘python module’ section on your Scripts tab (as opposed to the Tools/Script you have shown. If you have a method defined like this:
def yourMethod():
print “This method is just like so sweet, you guys.”
Then you can access it later from outside of the HDA itself (like from a shelf button) with something like:
hou.nodeType(“Sop/yourhda”).hdaModule().yourMethod()
Documentation for this here:
http://www.sidefx.com/docs/houdini13.0/hom/assetscripts [sidefx.com]
def yourMethod():
print “This method is just like so sweet, you guys.”
Then you can access it later from outside of the HDA itself (like from a shelf button) with something like:
hou.nodeType(“Sop/yourhda”).hdaModule().yourMethod()
Documentation for this here:
http://www.sidefx.com/docs/houdini13.0/hom/assetscripts [sidefx.com]
Technical Discussion » Default expressions for multiparm block child parameters
- ben-andersen
- 47 posts
- Offline
# gets replaced with the multiparm index when the new parms get replaced.
So, if you have an expression on your filename# set to:
hou.pwd().hm().getFilename(#)
it will replace that with
hou.pwd().hm().getFilename(1)
hou.pwd().hm().getFilename(2)
etc
for the actual parameters in the block.
Remember to set the parameter defaults in the HDA to be a python script, too.
So, if you have an expression on your filename# set to:
hou.pwd().hm().getFilename(#)
it will replace that with
hou.pwd().hm().getFilename(1)
hou.pwd().hm().getFilename(2)
etc
for the actual parameters in the block.
Remember to set the parameter defaults in the HDA to be a python script, too.
Houdini Lounge » Emit new wires into wire solver
- ben-andersen
- 47 posts
- Offline
Hi –
Is there a way to emit new wires into the wire solver? I'll also need to kill wires over the course of the simulation. I want to have an object move through space emitting points, and have deforming wires connecting the points to the original object.
If I add wires to the source geometry with deforming geometry ticked on, the wire solver complains about mismatching topology.
I could probably rig something up using bullet and adding new constraints to hook up the new objects, but that seems like a lot of work for something that should end up looking simple.
I could also see if I can add all of the wires on the first frame together, but I'd rather not.
Thanks,
Ben
Is there a way to emit new wires into the wire solver? I'll also need to kill wires over the course of the simulation. I want to have an object move through space emitting points, and have deforming wires connecting the points to the original object.
If I add wires to the source geometry with deforming geometry ticked on, the wire solver complains about mismatching topology.
I could probably rig something up using bullet and adding new constraints to hook up the new objects, but that seems like a lot of work for something that should end up looking simple.
I could also see if I can add all of the wires on the first frame together, but I'd rather not.
Thanks,
Ben
Technical Discussion » Iso Offset Node showing strange results.
- ben-andersen
- 47 posts
- Offline
I think the SDF displays as a surface where the SDF value is 0 now, instead of showing the nearly useless display of the SDF values as each voxel (which would look like the inverse of the fog volume).
If you put a scatter on, then hook it up to an attribfromvolume to transfer the SDF values over, you'll see what those values actually are.
I could be wrong, but I think your fog volume looks crisp like that because your resolution is pretty high. The uniform sampling rate of 90 means that you're dividing the maximum dimension up into 90 voxels, so for a cube, that's a 90x90x90 grid for your sphere. If you reduce that to 20 or so, you'll see a much foggier fog volume.
If you put a scatter on, then hook it up to an attribfromvolume to transfer the SDF values over, you'll see what those values actually are.
I could be wrong, but I think your fog volume looks crisp like that because your resolution is pretty high. The uniform sampling rate of 90 means that you're dividing the maximum dimension up into 90 voxels, so for a cube, that's a 90x90x90 grid for your sphere. If you reduce that to 20 or so, you'll see a much foggier fog volume.
Technical Discussion » node.cook
- ben-andersen
- 47 posts
- Offline
How come hou.pwd().cook(force=True) executes almost immediately, even for slow nodes, but turning a hard lock on and then off, to force a cook through the UI, executes the cook at the expected speed? is node.cook(force=True) actually cooking the node?
Technical Discussion » Operating on Alembic problem
- ben-andersen
- 47 posts
- Offline
If you look at the details view of an alembic, you'll see that you'll only have points for each transform, not for each point on the geometry. In order to change it, you need to convert it to polygons or something first. It's the same for packed primitives.
Technical Discussion » OPMenu item order, hide items, and line separator
- ben-andersen
- 47 posts
- Offline
Hi! I have some questions about customizing the OPMenu.
1) How can I reorder the items on the context menu? I'd like to add some items not at the bottom of the list
2) How can I hide existing items on the menu?
3) How can I add a line separator to the menu?
Thanks!
Ben
1) How can I reorder the items on the context menu? I'd like to add some items not at the bottom of the list
2) How can I hide existing items on the menu?
3) How can I add a line separator to the menu?
Thanks!
Ben
Technical Discussion » HOUDINI_PATH undefined
- ben-andersen
- 47 posts
- Offline
Ah, great. Thanks.
I was trying to use HOUDINI_PATH, since that's what it says here, before the bit about HOUDINI_OTLSCAN_PATH:
http://www.houdinitoolbox.com/installation.php [houdinitoolbox.com]
So I wanted to see what HOUDINI_PATH actually was and then couldn't see what it was, even inside of Houdini. I was confused.
I was trying to use HOUDINI_PATH, since that's what it says here, before the bit about HOUDINI_OTLSCAN_PATH:
http://www.houdinitoolbox.com/installation.php [houdinitoolbox.com]
So I wanted to see what HOUDINI_PATH actually was and then couldn't see what it was, even inside of Houdini. I was confused.
Technical Discussion » HOUDINI_PATH undefined
- ben-andersen
- 47 posts
- Offline
I feel like an idiot for even asking this, but why is my HOUDINI_PATH variable undefined on my personal machine? I'm on Windows (gag me)
>>> hconfig -a
…
HOUDINI_PATH := ‘<not defined>’
…
And from the python shell in Houdini, this is what I get:
>>> hou.expandString(“$HOUDINI_PATH”)
''
Despite this, everything does seem to work in Houdini. I just wanted to add some more directories to the script and otl search path, and based on the documentation, it says that I should add them to the HOUDINI_PATH variable.
I haven't set the variable by hand in the system environment, obviously, but I kind of expected that I wouldn't need to, since it's such an important variable.
>>> hconfig -a
…
HOUDINI_PATH := ‘<not defined>’
…
And from the python shell in Houdini, this is what I get:
>>> hou.expandString(“$HOUDINI_PATH”)
''
Despite this, everything does seem to work in Houdini. I just wanted to add some more directories to the script and otl search path, and based on the documentation, it says that I should add them to the HOUDINI_PATH variable.
I haven't set the variable by hand in the system environment, obviously, but I kind of expected that I wouldn't need to, since it's such an important variable.
Technical Discussion » List of tab submenus
- ben-andersen
- 47 posts
- Offline
Hi – how can I get a list of the tab submenus in python? I've been looking through the HOM documentation, but I've had no luck finding anything.
Thanks!
Ben
Thanks!
Ben
Houdini Lounge » VEX/VOP node to sample point from VDB
- ben-andersen
- 47 posts
- Offline
Hey Jeff!
Thanks. I was trying to sample vector components as floats using volumesamplefile, then changing the primitive number to get the individual components (the way it works for dense volumes). I don't know why I didn't see the volume sample vector from file. I was too hasty, I suppose :-) I wonder why there are two different nodes for float and vector. Import attribute, bind, and parameter all allow you to set the input type on the node itself. This worked well.
Thanks!
Ratmann – sorry for the confusion. I meant that I wanted to sample voxel data on to a set of points that I'm feeding into a vopsop.
Thanks. I was trying to sample vector components as floats using volumesamplefile, then changing the primitive number to get the individual components (the way it works for dense volumes). I don't know why I didn't see the volume sample vector from file. I was too hasty, I suppose :-) I wonder why there are two different nodes for float and vector. Import attribute, bind, and parameter all allow you to set the input type on the node itself. This worked well.
Thanks!
Ratmann – sorry for the confusion. I meant that I wanted to sample voxel data on to a set of points that I'm feeding into a vopsop.
Houdini Lounge » VEX/VOP node to sample point from VDB
- ben-andersen
- 47 posts
- Offline
I want to sample points from my VDB in a VOP SOP or VEX. What's the VOP node that will let me do that? I tried volume sample, but it didn't seem to work.
Houdini Lounge » Questions about Houdini Bullet
- ben-andersen
- 47 posts
- Offline
Oh great. That's terrific.
I just got a chance to look at the activate body example on the rbd packed object page, and I see that it's activating them.
So I just tried combining your trick of setting the time attribute on the sop geo object to “set always” to get SOP animation. Unfortunately, setting the packed primitives to active then has all of the new position data overwritten.
Any ideas for how to combine them outside of deleting the animated object and then emitting a new one that is active when the active flag is set? I'm comfortable doing that technically, but it just seems so hacky and untidy :-)
I just got a chance to look at the activate body example on the rbd packed object page, and I see that it's activating them.
So I just tried combining your trick of setting the time attribute on the sop geo object to “set always” to get SOP animation. Unfortunately, setting the packed primitives to active then has all of the new position data overwritten.
Any ideas for how to combine them outside of deleting the animated object and then emitting a new one that is active when the active flag is set? I'm comfortable doing that technically, but it just seems so hacky and untidy :-)
Houdini Lounge » list of attributes
- ben-andersen
- 47 posts
- Offline
Ah, okay. That attribcopy work around will do fine for now.
Thanks! It would be cool to be able to loop through a list of them in VEX in the future, Mark :-)
Thanks! It would be cool to be able to loop through a list of them in VEX in the future, Mark :-)
Houdini Lounge » list of attributes
- ben-andersen
- 47 posts
- Offline
Can I get a list of attributes in VEX or VOPs?
I have an attribute wrangle node that is making new geometry and none of those points inherit the attributes from the point that is being processed when that geometry is being created.
I'd like to loop over the attributes on the source geometry and copy them to the new points, but I can't find a vex function to provides a list of attributes or a way to get attributes by something other than its name. I was thinking I could do an import attribute by index (if such a thing existed) until it started failing. But I don't see how to do that either.
Thanks!
I have an attribute wrangle node that is making new geometry and none of those points inherit the attributes from the point that is being processed when that geometry is being created.
I'd like to loop over the attributes on the source geometry and copy them to the new points, but I can't find a vex function to provides a list of attributes or a way to get attributes by something other than its name. I was thinking I could do an import attribute by index (if such a thing existed) until it started failing. But I don't see how to do that either.
Thanks!
Houdini Lounge » Questions about Houdini Bullet
- ben-andersen
- 47 posts
- Offline
Awesome. I love the compounding.
for 1) Do you know if newly emitted geometry gets the same collision delay treatment as stuff that is in the scene on the first frame? i.e. if I emit geometry that is intersecting already dynamic geometry, will those two bodies still behave nicely?
I'll check out the rbd packed object documentation for that example of animated rbd packed objects :-)
Thanks everyone!
for 1) Do you know if newly emitted geometry gets the same collision delay treatment as stuff that is in the scene on the first frame? i.e. if I emit geometry that is intersecting already dynamic geometry, will those two bodies still behave nicely?
I'll check out the rbd packed object documentation for that example of animated rbd packed objects :-)
Thanks everyone!
Houdini Lounge » Volume I/O Houdini <=> 3DS Max
- ben-andersen
- 47 posts
- Offline
Okay fantastic. Thanks very much :-) I'll check that out.
Yeah, i meant gas, not liquid. Sorry for the confusion.
I love mantra. It's definitely what I would choose to use, if I could :-) unfortunately, one of the stipulations of the job is 3DS Max and VRay.
Yeah, i meant gas, not liquid. Sorry for the confusion.
I love mantra. It's definitely what I would choose to use, if I could :-) unfortunately, one of the stipulations of the job is 3DS Max and VRay.
-
- Quick Links