I wonder if it might be a rounding bug in Houdini? Sometimes it miscalculates the TY for some points (see image), and works fine if you do the following: ($TY >= $CEY-.0001) && ($TZ >= $ZMAX)
Greg
Found 122 posts.
Search results Show results as topic list.
Technical Discussion » Expression in Group SOP, strange results
- aiworks
- 130 posts
- Offline
Houdini Indie and Apprentice » Individual particle color
- aiworks
- 130 posts
- Offline
Hi,
It might be weird idea, but - since you are doing quite looong trails, if they are longer than a lifetime of individual particle, then when particles die, the numbering might chanage for those that are still alive.
This might be responsible for sudden changes of colour?
Greg
It might be weird idea, but - since you are doing quite looong trails, if they are longer than a lifetime of individual particle, then when particles die, the numbering might chanage for those that are still alive.
This might be responsible for sudden changes of colour?
Greg
Technical Discussion » Expression in Group SOP, strange results
- aiworks
- 130 posts
- Offline
Hmmm…. I wonder… seems to be working fine for me - see attached, is this the setup you used?
Cheers,
Greg
Cheers,
Greg
Houdini Indie and Apprentice » Individual particle color
- aiworks
- 130 posts
- Offline
Houdini Indie and Apprentice » Trails from particles
- aiworks
- 130 posts
- Offline
Hi,
Digital Tutors has a free videotutorial showing how to achieve the particle trails effect.
Cheers,
Greg
Digital Tutors has a free videotutorial showing how to achieve the particle trails effect.
Cheers,
Greg
Houdini Indie and Apprentice » Some resources for newbies: walkthroughs and links
- aiworks
- 130 posts
- Offline
Houdini Indie and Apprentice » modeling
- aiworks
- 130 posts
- Offline
Hi,
Lesson #32 of “Introduction to Mantra” at Digital Tutors (not free, unfortunately) shows how to make the clouds.
SideFX Stingray Model Animation tutorial (http://www.sidefx.com/index.php?option=com_content&task=view&id=950&Itemid=305) [sidefx.com] shows how to use magnets to displace geometry.
Maybe some of this will help.
Greg
Lesson #32 of “Introduction to Mantra” at Digital Tutors (not free, unfortunately) shows how to make the clouds.
SideFX Stingray Model Animation tutorial (http://www.sidefx.com/index.php?option=com_content&task=view&id=950&Itemid=305) [sidefx.com] shows how to use magnets to displace geometry.
Maybe some of this will help.
Greg
Houdini Indie and Apprentice » Wavy movement of a tube-shaped geometry
- aiworks
- 130 posts
- Offline
I've just tried the technique explained in the “Stingray” example from the SESI tutorials section: use metaballs + magnet - it seems to work reasonably well.
Houdini Indie and Apprentice » Wavy movement of a tube-shaped geometry
- aiworks
- 130 posts
- Offline
Hi Arctor,
I thought about it, but I can't figure out how to use it properly - the help says it should be used with nurbs surfaces/curves, and I have a poly thing, so i gave up this path rather quickly.
But thanks for suggesting it, I'll give it another try.
Greg
I thought about it, but I can't figure out how to use it properly - the help says it should be used with nurbs surfaces/curves, and I have a poly thing, so i gave up this path rather quickly.
But thanks for suggesting it, I'll give it another try.
Greg
Houdini Indie and Apprentice » Wavy movement of a tube-shaped geometry
- aiworks
- 130 posts
- Offline
Hi Guys,
I've been struggling with a wavy movement problem for almost a week now. This post:
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=16693 [sidefx.com]
suggests that I could use “ $BBX*sin($BBX*720-$F*2)” kind of formula in the point sop to achieve it. This this works fine for a flat surface, while I'd need to wave a long cylinder-like polygonal structure, with minimum inside deformation.
I will be most grateful for any suggestions how to approach the problem.
Greg
I've been struggling with a wavy movement problem for almost a week now. This post:
http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=16693 [sidefx.com]
suggests that I could use “ $BBX*sin($BBX*720-$F*2)” kind of formula in the point sop to achieve it. This this works fine for a flat surface, while I'd need to wave a long cylinder-like polygonal structure, with minimum inside deformation.
I will be most grateful for any suggestions how to approach the problem.
Greg
Technical Discussion » Mplay issue
- aiworks
- 130 posts
- Offline
Hi,
Same here, Win 7 x64, 4GBRAM, 10.0.376.
Not mplay related, though - I'm rendering directly to files, and this happens on average every 100 - 400 frames. Seems to me like a memory-related bug in the recent build ;-(
Greg
Same here, Win 7 x64, 4GBRAM, 10.0.376.
Not mplay related, though - I'm rendering directly to files, and this happens on average every 100 - 400 frames. Seems to me like a memory-related bug in the recent build ;-(
Greg
Houdini Indie and Apprentice » Mantra Rendering ...
- aiworks
- 130 posts
- Offline
Hi,
I've been following recent builds, and I recall having seen the same problem very recently (last 1 - 2 weeks) on Win x64.
Maybe try installing the newest build?
Cheers
I've been following recent builds, and I recall having seen the same problem very recently (last 1 - 2 weeks) on Win x64.
Maybe try installing the newest build?
Cheers
Houdini Indie and Apprentice » Some resources for newbies: walkthroughs and links
- aiworks
- 130 posts
- Offline
Hi Guys,
I've been learning and using Houdini for almost a year now. I have seen that so many people here come with the same problems I've been through, like just a post or two below, re: render resolution stuck to 640x480.
So a couple of months ago I've started to record walkthroughs to the most basic, but also - for me - difficult issues, at the early stage of learning Houdini. They are surely not perfect, but they helped me, maybe the'll be of some use to others.
At http://www.aiworks.eu [aiworks.eu] you can find a dozen step-by-step walkthroughs for tasks like: setting the render resolution, getting wireframe renders, using background images, etc. There is also a collection of links to up-to-date Houdini resources - it's a fresh compilation, so there should be no dead links.
I'll be looking forward to your comments.
Thanks,
Greg
I've been learning and using Houdini for almost a year now. I have seen that so many people here come with the same problems I've been through, like just a post or two below, re: render resolution stuck to 640x480.
So a couple of months ago I've started to record walkthroughs to the most basic, but also - for me - difficult issues, at the early stage of learning Houdini. They are surely not perfect, but they helped me, maybe the'll be of some use to others.
At http://www.aiworks.eu [aiworks.eu] you can find a dozen step-by-step walkthroughs for tasks like: setting the render resolution, getting wireframe renders, using background images, etc. There is also a collection of links to up-to-date Houdini resources - it's a fresh compilation, so there should be no dead links.
I'll be looking forward to your comments.
Thanks,
Greg
Houdini Lounge » procedural modeling
- aiworks
- 130 posts
- Offline
Since the guy took the PDFs down, I'm not sure about the copyrights, therefore the followup goes via PM.
G.
G.
Houdini Lounge » procedural modeling
- aiworks
- 130 posts
- Offline
Hi,
Take a look at the following link:
http://sweb.cityu.edu.hk/sm4123/ [sweb.cityu.edu.hk]
One of the tutorials (might be no. 8 or 9) deals with creating fractal geometry in Houdini.
Cheers,
Grzegorz
Take a look at the following link:
http://sweb.cityu.edu.hk/sm4123/ [sweb.cityu.edu.hk]
One of the tutorials (might be no. 8 or 9) deals with creating fractal geometry in Houdini.
Cheers,
Grzegorz
Technical Discussion » Position of an object translated via path
- aiworks
- 130 posts
- Offline
Technical Discussion » Position of an object translated via path
- aiworks
- 130 posts
- Offline
Hi Evbody,
No matter how I try, I can't figure out how to read a position of a camera which is moving a long a path object, and looking at another object, for a given frame.
My aim is to use the end-frame of one scene as a start-frame of another scene, in another file, but with some objects (including camera) being in exactly the same position.
Yet, I just can't figure out how to read the position and rotation of the camera at the end of the path.
Looking forward to your help,
Greg
No matter how I try, I can't figure out how to read a position of a camera which is moving a long a path object, and looking at another object, for a given frame.
My aim is to use the end-frame of one scene as a start-frame of another scene, in another file, but with some objects (including camera) being in exactly the same position.
Yet, I just can't figure out how to read the position and rotation of the camera at the end of the path.
Looking forward to your help,
Greg
Technical Discussion » Can't figure out cause of pixelation in reflection?
- aiworks
- 130 posts
- Offline
Hi Rdane1010,
Have you tried increasing the “pixel samples” (if using micropoly) or min/max ray samples (if using raytrace) in the mantra output node?
Greg
Have you tried increasing the “pixel samples” (if using micropoly) or min/max ray samples (if using raytrace) in the mantra output node?
Greg
Technical Discussion » menu script fail to work. please help
- aiworks
- 130 posts
- Offline
Hi again,
Here is the second script (to be appended below the first one in the Python Module), corrected as well:
“”“##################################################################################################
#
# DEF: accumulate()
#
# ARGUEMENTS:
# RETURNS:
# DESCRIPTION: Accumulates user-specified point or primitive geometry groups into a new group
#
#
##################################################################################################”“”
def accumulate():
# Import library for checking list length
import shlex
import __main__
# Set the accumNode for a quick path back to the accumulator node; Likewise for the outGroup node
accumNode = hou.node('..')
outGrpNode = hou.node('../outGrpNode')
# Set the output parameter shortcut
patternParm = hou.parm(“../outGrpNode/pattern”)
pEntity = hou.Node.evalParm(accumNode, “pEntity”)
# Create hasAccumulated to hold the final values. Make it global so it can be appended to
global hasAccumulated
# Reset vars on start frame
pStartFrame = hou.Node.evalParm(accumNode, “pStartFrame”)
if hou.frame() <= pStartFrame:
hasAccumulated =
# SETUP
# Gather the names of the groups through an hscript expression
inGroups = hou.Node.evalParm(accumNode, “pInGroup”)
# If hasAccumulated isn't initialized do so, otherwise leave its value the same
try: hasAccumulated
except NameError:
hasAccumulated =
try: splitGroups
except NameError:
splitGroups =
names = “”
# For each group name found, use shlex.split to break them into a list
for names in inGroups:
splitGroups = shlex.split(inGroups)
# Find the number of groups in the list by checking its length
numGroups = len(splitGroups)
# Set the number of scripts the number of groups requiring calculation
scriptNum = hou.parm('../script1/numscripts')
scriptNum.set(numGroups + 1)
# Set the values of those scripts to the appropriate hscriptExpression
scriptNum = 2
groupNum = 0
# This setup loop actually only needs to run once - at the start of the sim
while scriptNum <= numGroups + 1:
# Set the script language to hscript
scriptLang = hou.parm(“../script1/scriptlang%d” % scriptNum)
scriptLang.set(“hscript”)
# Set the script value to the primitive list per group
scriptValue = hou.parm(“../script1/script%d” % scriptNum)
if pEntity == 1:
scriptValue.set('echo `pointlist(opinputpath(“.”, 0), “%s”)`' % splitGroups)
if hou.hscriptExpression(“pointgrouplist(opinputpath(\”.\“, 0))”) == “”:
print “No point groups found”
break
else:
scriptValue.set('echo `primlist(opinputpath(“.”, 0), “%s”)`' % splitGroups)
if hou.hscriptExpression(“primgrouplist(opinputpath(\”.\“, 0))”) == “”:
print “No prim groups found”
break
scriptNum = scriptNum + 1
groupNum = groupNum + 1
# Reset script number to 2, offsetting for the accumulate() call in the script node
scriptNum = 2
# DO ACCUMULATE
while scriptNum <= numGroups + 1:
scriptValue = hou.parm(“../script1/script%d” % scriptNum)
accumVal = scriptValue.eval()
accumVal = shlex.split(accumVal)
if accumVal not in hasAccumulated:
hasAccumulated.append(accumVal)
scriptNum = scriptNum + 1
# Update the pattern in the output group node
patternParm.set(`hasAccumulated`)
Here is the second script (to be appended below the first one in the Python Module), corrected as well:
“”“##################################################################################################
#
# DEF: accumulate()
#
# ARGUEMENTS:
# RETURNS:
# DESCRIPTION: Accumulates user-specified point or primitive geometry groups into a new group
#
#
##################################################################################################”“”
def accumulate():
# Import library for checking list length
import shlex
import __main__
# Set the accumNode for a quick path back to the accumulator node; Likewise for the outGroup node
accumNode = hou.node('..')
outGrpNode = hou.node('../outGrpNode')
# Set the output parameter shortcut
patternParm = hou.parm(“../outGrpNode/pattern”)
pEntity = hou.Node.evalParm(accumNode, “pEntity”)
# Create hasAccumulated to hold the final values. Make it global so it can be appended to
global hasAccumulated
# Reset vars on start frame
pStartFrame = hou.Node.evalParm(accumNode, “pStartFrame”)
if hou.frame() <= pStartFrame:
hasAccumulated =
# SETUP
# Gather the names of the groups through an hscript expression
inGroups = hou.Node.evalParm(accumNode, “pInGroup”)
# If hasAccumulated isn't initialized do so, otherwise leave its value the same
try: hasAccumulated
except NameError:
hasAccumulated =
try: splitGroups
except NameError:
splitGroups =
names = “”
# For each group name found, use shlex.split to break them into a list
for names in inGroups:
splitGroups = shlex.split(inGroups)
# Find the number of groups in the list by checking its length
numGroups = len(splitGroups)
# Set the number of scripts the number of groups requiring calculation
scriptNum = hou.parm('../script1/numscripts')
scriptNum.set(numGroups + 1)
# Set the values of those scripts to the appropriate hscriptExpression
scriptNum = 2
groupNum = 0
# This setup loop actually only needs to run once - at the start of the sim
while scriptNum <= numGroups + 1:
# Set the script language to hscript
scriptLang = hou.parm(“../script1/scriptlang%d” % scriptNum)
scriptLang.set(“hscript”)
# Set the script value to the primitive list per group
scriptValue = hou.parm(“../script1/script%d” % scriptNum)
if pEntity == 1:
scriptValue.set('echo `pointlist(opinputpath(“.”, 0), “%s”)`' % splitGroups)
if hou.hscriptExpression(“pointgrouplist(opinputpath(\”.\“, 0))”) == “”:
print “No point groups found”
break
else:
scriptValue.set('echo `primlist(opinputpath(“.”, 0), “%s”)`' % splitGroups)
if hou.hscriptExpression(“primgrouplist(opinputpath(\”.\“, 0))”) == “”:
print “No prim groups found”
break
scriptNum = scriptNum + 1
groupNum = groupNum + 1
# Reset script number to 2, offsetting for the accumulate() call in the script node
scriptNum = 2
# DO ACCUMULATE
while scriptNum <= numGroups + 1:
scriptValue = hou.parm(“../script1/script%d” % scriptNum)
accumVal = scriptValue.eval()
accumVal = shlex.split(accumVal)
if accumVal not in hasAccumulated:
hasAccumulated.append(accumVal)
scriptNum = scriptNum + 1
# Update the pattern in the output group node
patternParm.set(`hasAccumulated`)
Technical Discussion » menu script fail to work. please help
- aiworks
- 130 posts
- Offline
Hi,
The problem is caused not by the line you quoted, but by the actual python module. The PDF you used breaks the script across two pages, resulting in incorrect indentation. Here is the corrected code:
“”“##################################################################################################
#
# DEF: buildMenu()
#
# ARGUEMENTS:
# RETURNS: String of null character seperated values
# DESCRIPTION: Provides a method for a dynamically built menu to be echoed back to a
# parameter's menu script.
#
##################################################################################################”“”
def buildMenu():
# This function is called from the hscript menu generation script.
# Import library for checking list length
import shlex
# Set the accumNode for a quick path back to the accumulator node
accumNode = hou.node('.')
pEntity = hou.Node.evalParm(accumNode, “pEntity”)
# There are currently no clean ways to gather geometry group information using strictly python
# Gather the names of the groups through an hscript expression
if pEntity == 1:
groupsList = hou.hscriptExpression(“pointgrouplist(opinputpath(\”.\“, 0))”)
if hou.hscriptExpression(“pointgrouplist(opinputpath(\”.\“, 0))”) == “”:
groupsList = “”
else:
groupsList = hou.hscriptExpression(“primgrouplist(opinputpath(\”.\“, 0))”)
if hou.hscriptExpression(“primgrouplist(opinputpath(\”.\“, 0))”) == “”:
groupsList = “”
names = “”
if groupsList != “”:
# For each group name found, use shlex.split to break them into a list
for names in groupsList:
check = shlex.split(groupsList)
# Find the number of groups in the list by checking its length
numGroups = len(check)
i=0
final = “”
# The menu requires two parameters per line: The label and the value separated by spaces
# This while loop iterates through and formats our list correctly - With label and value equal
while i < numGroups:
final = final + check + “ ” + check + “ ”
i=i+1
# Spit the final string out for the menu generation
try: final
except NameError:
final = “ ”
return final
Cheers,
Greg
The problem is caused not by the line you quoted, but by the actual python module. The PDF you used breaks the script across two pages, resulting in incorrect indentation. Here is the corrected code:
“”“##################################################################################################
#
# DEF: buildMenu()
#
# ARGUEMENTS:
# RETURNS: String of null character seperated values
# DESCRIPTION: Provides a method for a dynamically built menu to be echoed back to a
# parameter's menu script.
#
##################################################################################################”“”
def buildMenu():
# This function is called from the hscript menu generation script.
# Import library for checking list length
import shlex
# Set the accumNode for a quick path back to the accumulator node
accumNode = hou.node('.')
pEntity = hou.Node.evalParm(accumNode, “pEntity”)
# There are currently no clean ways to gather geometry group information using strictly python
# Gather the names of the groups through an hscript expression
if pEntity == 1:
groupsList = hou.hscriptExpression(“pointgrouplist(opinputpath(\”.\“, 0))”)
if hou.hscriptExpression(“pointgrouplist(opinputpath(\”.\“, 0))”) == “”:
groupsList = “”
else:
groupsList = hou.hscriptExpression(“primgrouplist(opinputpath(\”.\“, 0))”)
if hou.hscriptExpression(“primgrouplist(opinputpath(\”.\“, 0))”) == “”:
groupsList = “”
names = “”
if groupsList != “”:
# For each group name found, use shlex.split to break them into a list
for names in groupsList:
check = shlex.split(groupsList)
# Find the number of groups in the list by checking its length
numGroups = len(check)
i=0
final = “”
# The menu requires two parameters per line: The label and the value separated by spaces
# This while loop iterates through and formats our list correctly - With label and value equal
while i < numGroups:
final = final + check + “ ” + check + “ ”
i=i+1
# Spit the final string out for the menu generation
try: final
except NameError:
final = “ ”
return final
Cheers,
Greg
-
- Quick Links