Thanks, man!
This opens up a lot of other potential as an example - on top of being an excellent and useful setup in and of itself.
Found 25 posts.
Search results Show results as topic list.
Technical Discussion » Houdini Expression Editor
- caleb
- 30 posts
- Offline
Technical Discussion » array attributes to python
- caleb
- 30 posts
- Offline
Hi Jeff… Can you point me at the docs for intListAttribValues(), please - and an example in use. I'm not immediately finding it. Thanks!
Technical Discussion » Editable objects inside HDAs, permission errors etc.
- caleb
- 30 posts
- Offline
I think this can be worked around using the User Data Dictionary and python. I am reading, writing, and modifying nodes' User data within a locked hda with no problem.
-caleb
-caleb
Technical Discussion » resurfacing volumes by delaunay or similar methods
- caleb
- 30 posts
- Offline
Hiya! Before I dive into developing this myself, has anyone done anything like this:
I have need for a more adaptive surfacing method to generate a mesh from an intermediary unorganized point cloud (with Normals), or from a volume primitive directly. I have already developed methods to generate a nonuniform point cloud from a (uniform) volume primitive - with the points where I need the detail. I would love a Delaunay triangulation from that. (The standard marching-cubes method doesn't have the nonuniform detail I need)
Has anyone done this? Any similar experience, or pointers to software that might provide this solution?
Thanks!
-caleb
[Cross-posted to od - sorry for the bandwidth]
I have need for a more adaptive surfacing method to generate a mesh from an intermediary unorganized point cloud (with Normals), or from a volume primitive directly. I have already developed methods to generate a nonuniform point cloud from a (uniform) volume primitive - with the points where I need the detail. I would love a Delaunay triangulation from that. (The standard marching-cubes method doesn't have the nonuniform detail I need)
Has anyone done this? Any similar experience, or pointers to software that might provide this solution?
Thanks!
-caleb
[Cross-posted to od - sorry for the bandwidth]
Technical Discussion » HDA Python callback Class usage
- caleb
- 30 posts
- Offline
poop. This won't do at all (I don't think).
I have a list of houdini nodes - each is an instance of an HDA created from a subnet with all sorts of structure and parameters.
repr() just returns a string like the following:
[
<hou.ObjNode of type foo_CV_bezier_handle at /obj/Test/bar/OBJECT_NETWORK_CVs/CV_1>,
<hou.ObjNode of type foo_CV_bezier_handle at /obj/Test/bar/OBJECT_NETWORK_CVs/CV_2>,
…
]
…which string I don't think I can use to rebuild my list of nodes later.
Can I?
I think I really need a way to keep a persistent (static?) python structure associated with a node between cooks. It really seems like this should be an obvious and straightforward need to fulfill.
Translating my list of nodes into lists of parameter lists looks like it will be slower that it's worth.
poop.
Is there a way to build a dictionary of parameters from a node, perhaps, and then to use a dictionary to set all the parms of the node. Failing that, is there any general way to store node data unambiguously as a string, with the ability to reconstruct the node from the string?
back to the drawing board.
Thanks!
-caleb
I have a list of houdini nodes - each is an instance of an HDA created from a subnet with all sorts of structure and parameters.
repr() just returns a string like the following:
[
<hou.ObjNode of type foo_CV_bezier_handle at /obj/Test/bar/OBJECT_NETWORK_CVs/CV_1>,
<hou.ObjNode of type foo_CV_bezier_handle at /obj/Test/bar/OBJECT_NETWORK_CVs/CV_2>,
…
]
…which string I don't think I can use to rebuild my list of nodes later.
Can I?
I think I really need a way to keep a persistent (static?) python structure associated with a node between cooks. It really seems like this should be an obvious and straightforward need to fulfill.
Translating my list of nodes into lists of parameter lists looks like it will be slower that it's worth.
poop.
Is there a way to build a dictionary of parameters from a node, perhaps, and then to use a dictionary to set all the parms of the node. Failing that, is there any general way to store node data unambiguously as a string, with the ability to reconstruct the node from the string?
back to the drawing board.
Thanks!
-caleb
Technical Discussion » HDA Python callback Class usage
- caleb
- 30 posts
- Offline
(Still… It'd be nice to just keep a persistent class instance around. I'm just sayin')
Thanks again!
Thanks again!
Technical Discussion » HDA Python callback Class usage
- caleb
- 30 posts
- Offline
Yeah! This hit me shortly after I posted. Of course! Cool! Thanks!
This should do just what I need! Thanks!
-caleb
This should do just what I need! Thanks!
-caleb
Technical Discussion » HDA Python callback Class usage
- caleb
- 30 posts
- Offline
That sounds more promising… I'll look at this. I gather there is nothing in existence which does this sort of thing already, eh? An example is worth a thousand docs. ;-)
Thanks!
Thanks!
Technical Discussion » HDA Python callback Class usage
- caleb
- 30 posts
- Offline
hmm… on second thought, does this do what I need? I need to store persistent data between cooks, not pass data down the SOp chain. If I create a string attrib, I would expect it to get clobbered when the gdp is killed and recreated as data comes down the chain from the previous SOp on the next cook. I want the data to persist in the Node itself.
I remember the feedback SOp… sigh.
Thanks!
-caleb
I remember the feedback SOp… sigh.
Thanks!
-caleb
Technical Discussion » HDA Python callback Class usage
- caleb
- 30 posts
- Offline
Good idea! Thanks.
I gather then that there is no way to instantiate a class that persists between cooks to manage my data?
How big a string will Houdini cope with? I'm dealing with some big datasets.
Thanks!
-caleb
I gather then that there is no way to instantiate a class that persists between cooks to manage my data?
How big a string will Houdini cope with? I'm dealing with some big datasets.
Thanks!
-caleb
Technical Discussion » HDA Python callback Class usage
- caleb
- 30 posts
- Offline
Hi!
I'm looking to maintain persistent data between cooks in an HDA (SOp) that I am creating. The SOp has buttons with associated Python callback functions, and I would like to reduce redundant computation by storing results in class-owned data.
Does anyone have any experience or pointers?
Other approaches to maintaining persistent data would be welcome as well. I am looking to store statistical data (as floats, etc) as well as list data.
I could store this info within Houdini data (lists into point attributes, etc.), but that's inelegant, and lists are faster to access, which is much of the initial reasoning for keeping data in lists in the first place.
Thanks!
-caleb
I'm looking to maintain persistent data between cooks in an HDA (SOp) that I am creating. The SOp has buttons with associated Python callback functions, and I would like to reduce redundant computation by storing results in class-owned data.
Does anyone have any experience or pointers?
Other approaches to maintaining persistent data would be welcome as well. I am looking to store statistical data (as floats, etc) as well as list data.
I could store this info within Houdini data (lists into point attributes, etc.), but that's inelegant, and lists are faster to access, which is much of the initial reasoning for keeping data in lists in the first place.
Thanks!
-caleb
Houdini Indie and Apprentice » Calling a function on button press
- caleb
- 30 posts
- Offline
I know this is stale, but I was searching on this sort of thing.
What's wrong with putting this in the callback for the button:
hou.node('.').hdaModule().foo()
to call the HDA's foo function?
-caleb
What's wrong with putting this in the callback for the button:
hou.node('.').hdaModule().foo()
to call the HDA's foo function?
-caleb
Houdini Lounge » Any success with Shatter SOp?
- caleb
- 30 posts
- Offline
Well, I'm glad it's not just me, but at the same time, I was hoping it was just me. I'm currently engaged again in the folly of trying to sell my current studio on the advantages of Houdini as a part of the workflow. I have implemented a volume approach to fragmenting which Ben Schrijvers described at the GDC, and it worked flawlessly within a day (the fragging part). I haven't finished the UV transfer yet, but I have a few ideas in that regard.
Thank you Ben!
I'll try it out in v10, and see how it goes.
I like the volume approach. I've been tilting against 2D manifolds in favour of the more realistic solid field representations since I started at DD in ‘93. It’s nice to see it catching on! ;-)
Anyway, Thanks, guys - what an awesome forum to get such weighty feedback so readily! Houdini is doubly great for the community, and the product.
-caleb
Thank you Ben!
I'll try it out in v10, and see how it goes.
I like the volume approach. I've been tilting against 2D manifolds in favour of the more realistic solid field representations since I started at DD in ‘93. It’s nice to see it catching on! ;-)
Anyway, Thanks, guys - what an awesome forum to get such weighty feedback so readily! Houdini is doubly great for the community, and the product.
-caleb
Houdini Lounge » Any success with Shatter SOp?
- caleb
- 30 posts
- Offline
The cookie / boolean operations seem to have the same issues I have been seeing since PRISMS 4.2 (when I started). Which is to say, missing, or extra edges, and unusable output - especially with changing inputs. I assume that I am just ignorant of their correct current improved usage, or unaware of tricks to make it behave.
Has anyone been able to make the shatter SOp work reliably?
Thanks!
-caleb
Has anyone been able to make the shatter SOp work reliably?
Thanks!
-caleb
Technical Discussion » Parsing XML using xml.dom in hython
- caleb
- 30 posts
- Offline
Okeydokey,
I'm parsing an xml file using the xml.dom.minidom module. Standalone in Python from a shell, and I get what I expect on output. When I put the script on a shelf in Houdini, I get the following failure popping up.
==========================================
File “Read_XML_Roads”, line 99, in <module>
File “Read_XML_Roads”, line 16, in handleGameData
File “Read_XML_Roads”, line 22, in handleRoadNetwork
File “Read_XML_Roads”, line 27, in handleElements
File “Read_XML_Roads”, line 63, in handleElement
File “CPROGRA~1/SIDEEF~1/HOUDIN~1.303/houdini/scripts/python\hou.py”, line 16269, in write
return _hou.ShellIO_write(*args)
TypeError: in method ‘ShellIO_write’, argument 2 of type ‘std::string const &’
==========================================
something is being changed within Houdini - the type of the data? Does this ring a bell?
Here's the code:
==========================================
import xml.dom.minidom
#dom = xml.dom.minidom.parseString(“./Python/DemoSlideShow.xml”)
#dom = xml.dom.minidom.parse(“/home/caleb/Work/Traffic/Python/L10R_NFS10_World_RoadNet.xml”)
dom = xml.dom.minidom.parse(“CDocuments and Settings/choward/My Documents/Work/Traffic/Python/test.xml”)
def getText(nodelist):
print “getText(%s)” % nodelist
rc = “”
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc = rc + node.data
print rc
return rc
def handleGameData(gamedata):
print “<GameData>”
handleRoadNetwork(gamedata)
print “</GameData>”
def handleRoadNetwork(gamedata):
print “ <RoadNetwork>”
elements = gamedata.getElementsByTagName(“Element”)
handleElements(elements)
print “ </RoadNetwork>”
def handleElements(elements):
for element in elements:
handleElement(element)
def handleElement(element):
#elementName = “foo”
elementName = element.getAttribute('name')
#print elementName
roadname = element.getElementsByTagName(“RoadName”)
type = element.getElementsByTagName(“Type”)
if type:
typeText = getText(type.childNodes)
else:
typeText = “”
startx = element.getElementsByTagName(“StartX”)
starty = element.getElementsByTagName(“StartY”)
startz = element.getElementsByTagName(“StartZ”)
startcontrolx = element.getElementsByTagName(“StartControlX”)
startcontroly = element.getElementsByTagName(“StartControlY”)
startcontrolz = element.getElementsByTagName(“StartControlZ”)
StartProfile = element.getElementsByTagName(“StartProfile”)
if not StartProfile:
startprofile = “none”
else:
startprofile = StartProfile
endx = element.getElementsByTagName(“EndX”)
endy = element.getElementsByTagName(“EndY”)
endz = element.getElementsByTagName(“EndZ”)
endcontrolx = element.getElementsByTagName(“EndControlX”)
endcontroly = element.getElementsByTagName(“EndControlY”)
endcontrolz = element.getElementsByTagName(“EndControlZ”)
EndProfile = element.getElementsByTagName(“EndProfile”)
if not EndProfile:
endprofile = “none”
else:
endprofile = EndProfile
print “ <Element name=\”%s\“>” % elementName
print “ <RoadName>%s</RoadName>” % getText(roadname.childNodes)
print “ <Type>%s</Type>” % typeText
print “ <StartX>%s</StartX>” % getText(startx.childNodes)
print “ <StartY>%s</StartY>” % getText(starty.childNodes)
print “ <StartZ>%s</StartZ>” % getText(startz.childNodes)
print “ <StartControlX>%s</StartControlX>” % getText(startcontrolx.childNodes)
print “ <StartControlY>%s</StartControlY>” % getText(startcontroly.childNodes)
print “ <StartControlZ>%s</StartControlZ>” % getText(startcontrolz.childNodes)
# handleStartProfile(startprofile)
print “********* %s” % startprofile
print “ <EndX>%s</EndX>” % getText(endx.childNodes)
print “ <EndY>%s</EndY>” % getText(endy.childNodes)
print “ <EndZ>%s</EndZ>” % getText(endz.childNodes)
print “ <EndControlX>%s</EndControlX>” % getText(endcontrolx.childNodes)
print “ <EndControlY>%s</EndControlY>” % getText(endcontroly.childNodes)
print “ <EndControlZ>%s</EndControlZ>” % getText(endcontrolz.childNodes)
# handleEndProfile(endprofile)
print “********* %s” % endprofile
print “ <Element>”
def handleStartProfile(startprofile):
print “ <StartProfile>”
handleLanes(startprofile.getElementsByTagName(“Type”))
print “ </StartProfile>”
def handleEndProfile(endprofile):
print “ <EndProfile>”
handleLanes(endprofile.getElementsByTagName(“Type”))
print “ </EndProfile>”
def handleLanes(lanes):
for lane in lanes:
handleLane(lane)
def handleLane(lane):
print “ <LType>%s</Type>” % getText(lane.childNodes)
handleGameData(dom)
======================================
(I notice the post has screwed my formatting. Sorry)
Help help!
Thanks!
-caleb
I'm parsing an xml file using the xml.dom.minidom module. Standalone in Python from a shell, and I get what I expect on output. When I put the script on a shelf in Houdini, I get the following failure popping up.
==========================================
File “Read_XML_Roads”, line 99, in <module>
File “Read_XML_Roads”, line 16, in handleGameData
File “Read_XML_Roads”, line 22, in handleRoadNetwork
File “Read_XML_Roads”, line 27, in handleElements
File “Read_XML_Roads”, line 63, in handleElement
File “CPROGRA~1/SIDEEF~1/HOUDIN~1.303/houdini/scripts/python\hou.py”, line 16269, in write
return _hou.ShellIO_write(*args)
TypeError: in method ‘ShellIO_write’, argument 2 of type ‘std::string const &’
==========================================
something is being changed within Houdini - the type of the data? Does this ring a bell?
Here's the code:
==========================================
import xml.dom.minidom
#dom = xml.dom.minidom.parseString(“./Python/DemoSlideShow.xml”)
#dom = xml.dom.minidom.parse(“/home/caleb/Work/Traffic/Python/L10R_NFS10_World_RoadNet.xml”)
dom = xml.dom.minidom.parse(“CDocuments and Settings/choward/My Documents/Work/Traffic/Python/test.xml”)
def getText(nodelist):
print “getText(%s)” % nodelist
rc = “”
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc = rc + node.data
print rc
return rc
def handleGameData(gamedata):
print “<GameData>”
handleRoadNetwork(gamedata)
print “</GameData>”
def handleRoadNetwork(gamedata):
print “ <RoadNetwork>”
elements = gamedata.getElementsByTagName(“Element”)
handleElements(elements)
print “ </RoadNetwork>”
def handleElements(elements):
for element in elements:
handleElement(element)
def handleElement(element):
#elementName = “foo”
elementName = element.getAttribute('name')
#print elementName
roadname = element.getElementsByTagName(“RoadName”)
type = element.getElementsByTagName(“Type”)
if type:
typeText = getText(type.childNodes)
else:
typeText = “”
startx = element.getElementsByTagName(“StartX”)
starty = element.getElementsByTagName(“StartY”)
startz = element.getElementsByTagName(“StartZ”)
startcontrolx = element.getElementsByTagName(“StartControlX”)
startcontroly = element.getElementsByTagName(“StartControlY”)
startcontrolz = element.getElementsByTagName(“StartControlZ”)
StartProfile = element.getElementsByTagName(“StartProfile”)
if not StartProfile:
startprofile = “none”
else:
startprofile = StartProfile
endx = element.getElementsByTagName(“EndX”)
endy = element.getElementsByTagName(“EndY”)
endz = element.getElementsByTagName(“EndZ”)
endcontrolx = element.getElementsByTagName(“EndControlX”)
endcontroly = element.getElementsByTagName(“EndControlY”)
endcontrolz = element.getElementsByTagName(“EndControlZ”)
EndProfile = element.getElementsByTagName(“EndProfile”)
if not EndProfile:
endprofile = “none”
else:
endprofile = EndProfile
print “ <Element name=\”%s\“>” % elementName
print “ <RoadName>%s</RoadName>” % getText(roadname.childNodes)
print “ <Type>%s</Type>” % typeText
print “ <StartX>%s</StartX>” % getText(startx.childNodes)
print “ <StartY>%s</StartY>” % getText(starty.childNodes)
print “ <StartZ>%s</StartZ>” % getText(startz.childNodes)
print “ <StartControlX>%s</StartControlX>” % getText(startcontrolx.childNodes)
print “ <StartControlY>%s</StartControlY>” % getText(startcontroly.childNodes)
print “ <StartControlZ>%s</StartControlZ>” % getText(startcontrolz.childNodes)
# handleStartProfile(startprofile)
print “********* %s” % startprofile
print “ <EndX>%s</EndX>” % getText(endx.childNodes)
print “ <EndY>%s</EndY>” % getText(endy.childNodes)
print “ <EndZ>%s</EndZ>” % getText(endz.childNodes)
print “ <EndControlX>%s</EndControlX>” % getText(endcontrolx.childNodes)
print “ <EndControlY>%s</EndControlY>” % getText(endcontroly.childNodes)
print “ <EndControlZ>%s</EndControlZ>” % getText(endcontrolz.childNodes)
# handleEndProfile(endprofile)
print “********* %s” % endprofile
print “ <Element>”
def handleStartProfile(startprofile):
print “ <StartProfile>”
handleLanes(startprofile.getElementsByTagName(“Type”))
print “ </StartProfile>”
def handleEndProfile(endprofile):
print “ <EndProfile>”
handleLanes(endprofile.getElementsByTagName(“Type”))
print “ </EndProfile>”
def handleLanes(lanes):
for lane in lanes:
handleLane(lane)
def handleLane(lane):
print “ <LType>%s</Type>” % getText(lane.childNodes)
handleGameData(dom)
======================================
(I notice the post has screwed my formatting. Sorry)
Help help!
Thanks!
-caleb
Technical Discussion » Linux 2.6.27-9 / NVidia 8600 - graphics corrupt
- caleb
- 30 posts
- Offline
OK nvidia's latest driver (180.22) just dropped. It fixed the problem.
I had to boot without X11 running,
use envyng -t to uninstall the previous nvidia driver (177.whatever),
and then install 180.22 using the driver installer from nvidia.
Now I'm working! Yay!
Thanks all y'all!
-caleb
I had to boot without X11 running,
use envyng -t to uninstall the previous nvidia driver (177.whatever),
and then install 180.22 using the driver installer from nvidia.
Now I'm working! Yay!
Thanks all y'all!
-caleb
Technical Discussion » H9.5.303/WindozeXP - viewport blanks
- caleb
- 30 posts
- Offline
Technical Discussion » H9.5.303/WindozeXP - viewport blanks
- caleb
- 30 posts
- Offline
Technical Discussion » H9.5.303/WindozeXP - viewport blanks
- caleb
- 30 posts
- Offline
So, when I'm adjusting the viewing transform on the main viewport, my geometry disappears. (The grid and Gnomon remains, but the geometry disappears.) If I select another node (not changing which node is displayed - just which is selected), or if I toggle the display of points, or if I change viewing mode (from wireframe to smooth shaded, for example), the geometry shows up again, but only until I adjust the viewport transform again.
I've adjusted the display settings to manually force sensible near/far clipping planes, but it makes no difference. The geometry is large (about 60MB), but I have 3GB of RAM, so that shouldn't be a problem.
I'm trying to show Houdini off to my employers and coworkers here at Electronic Arts, but I'm wondering if I shouldn't rather not bother. As it is, it will *not* impress people the way I think it should.
Help?
-caleb
I've adjusted the display settings to manually force sensible near/far clipping planes, but it makes no difference. The geometry is large (about 60MB), but I have 3GB of RAM, so that shouldn't be a problem.
I'm trying to show Houdini off to my employers and coworkers here at Electronic Arts, but I'm wondering if I shouldn't rather not bother. As it is, it will *not* impress people the way I think it should.
Help?
-caleb
Technical Discussion » Linux 2.6.27-9 / NVidia 8600 - graphics corrupt
- caleb
- 30 posts
- Offline
no, I get 143 dependencies which fail if I try. When I try to add nvidia-glx-173, I get:
Unpacking nvidia-glx-173 (from …/nvidia-glx-173_173.14.12-1-0ubuntu4_i386.deb) …
dpkg: error processing /var/cache/apt/archives/nvidia-glx-173_173.14.12-1-0ubuntu4_i386.deb (–unpack):
trying to overwrite `/usr/lib/xorg/modules/extensions/libglx.so', which is also in package xserver-xorg-core
Processing triggers for man-db …
Errors were encountered while processing:
/var/cache/apt/archives/nvidia-glx-173_173.14.12-1-0ubuntu4_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install. Trying to recover:
dpkg: dependency problems prevent configuration of nvidia-glx-173-dev:
nvidia-glx-173-dev depends on nvidia-glx-173 (>= 173.14.12); however:
Package nvidia-glx-173 is not installed.
dpkg: error processing nvidia-glx-173-dev (–configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
nvidia-glx-173-dev
…so now it's complaining about xserver-xorg-core.
computers are irritating.
Thanks!
-caleb
Unpacking nvidia-glx-173 (from …/nvidia-glx-173_173.14.12-1-0ubuntu4_i386.deb) …
dpkg: error processing /var/cache/apt/archives/nvidia-glx-173_173.14.12-1-0ubuntu4_i386.deb (–unpack):
trying to overwrite `/usr/lib/xorg/modules/extensions/libglx.so', which is also in package xserver-xorg-core
Processing triggers for man-db …
Errors were encountered while processing:
/var/cache/apt/archives/nvidia-glx-173_173.14.12-1-0ubuntu4_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install. Trying to recover:
dpkg: dependency problems prevent configuration of nvidia-glx-173-dev:
nvidia-glx-173-dev depends on nvidia-glx-173 (>= 173.14.12); however:
Package nvidia-glx-173 is not installed.
dpkg: error processing nvidia-glx-173-dev (–configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
nvidia-glx-173-dev
…so now it's complaining about xserver-xorg-core.
computers are irritating.
Thanks!
-caleb
-
- Quick Links