Found 2526 posts.
Search results Show results as topic list.
Technical Discussion » parameter based on time in vex.
- Enivob
- 2539 posts
- Online
I think you might need to store the time when the particles started moving too fast as an attribute on the particle. Then the code would be easier. Just subtract current time from saved time to determine your slowdown.
Houdini Indie and Apprentice » houdini apprentice - import not working & can I test redshift with it?
- Enivob
- 2539 posts
- Online
No, you can not use Redshift with Apprentice.
Yes, you can use Redshift with Indie.
Yes, Redshift works fine with 1070GTX.
Yes, you can use Redshift with Indie.
Yes, Redshift works fine with 1070GTX.
Houdini Indie and Apprentice » SImple Cornell Box with area light and noise
- Enivob
- 2539 posts
- Online
To debug with Mantra you often need to export extra image planes and look at each planes contribution. This will help you determine where the noise is actually coming from. Try raising the secondary ray counts for Diffuse Quality, Reflection Quality and Refraction Quality. Drop your pixel samples back down to 4 or 5 then raise diffuse to 3. Also what are your limits set to? You may want to increase the Diffuse Limit, it defaults to 0. I often set limits all to3 or all to 5 bounces only. Generally leave Volume Limit set to 0 unless you do have volumes in your scene.
Houdini Indie and Apprentice » Animate Copy and Chop.
- Enivob
- 2539 posts
- Online
You may not have included the new variable under the Attributes Stamp field of the Copy node. When you add a new variable you must let the Copy node know it exists by adding it to that field under the Stamp TAB.
Houdini Indie and Apprentice » Animate Copy and Chop.
- Enivob
- 2539 posts
- Online
You can construct a full chop(..) statement as a string and store it as an attribute on the point. Then turn on Stamping for the copy. Type in the name of the attribute which holds the string in the Attribute Stamps field. Then you can stamp the chop statement wherever you like. I am not sure of the exact goal but I have an example of the stamp working in the Bend3 field. Edit the string generated to reference another CHOP.
Edited by Enivob - Oct. 11, 2016 00:35:28
Technical Discussion » Change Particle Color based on Life (VEX)
- Enivob
- 2539 posts
- Online
Nice example file and thanks for the tip on @nage. Where did you find this information? When I middle click on the particle source I don't see @nage present in the list of point attributes? Are there other normalized variables available as well?
Technical Discussion » Change Particle Color based on Life (VEX)
- Enivob
- 2539 posts
- Online
Well @life and @age are both just floats so the best you can hope for is a greyscale color, or a brightness adjustment. It makes a little more sense to adjust by @age not @life. Life is a fixed value which is the length of the life in seconds. While @age changes per frame and is the current age up till the end of @life.
Simple VEX variations in a wrangle should set the color for you.
Simple VEX variations in a wrangle should set the color for you.
float life_as_percent = @age/@life; / Really just 0-1 not a percent. // Set color by age. v@Cd = set(life_as_percent,life_as_percent,life_as_percent); // Set color by life. v@Cd = set(@life,@life,@life); // Age only red channel. v@Cd = set(life_as_percent,@life,@life); // Age red, random green. v@Cd = set(life_as_percent,random(@ptnum),@life);
Edited by Enivob - Oct. 9, 2016 20:31:26
Technical Discussion » Soft spheres in copy SOP
- Enivob
- 2539 posts
- Online
Technical Discussion » velocity overriding forces in particles?
- Enivob
- 2539 posts
- Online
On thing to remember is to not assign a value to velocity. Instead modify the existing value by an amount. Also the placement of the Wrangle in the network does matter so you may want to do your final velocity manipulations after forces are applied, or before…
AVIOD THIS:DO THIS:
AVIOD THIS:
v@v = 0.1;
v@v *= 0.9;
Edited by Enivob - Oct. 9, 2016 12:02:42
Technical Discussion » Reload FBX
- Enivob
- 2539 posts
- Online
I typically just copy the material node to the clipboard to save any changes I may have made in there. Then I head up to the top level and throw the entire FBX subnet away. Then I import it again, dive inside and delete the new material node and paste in the material node on the clipboard. as long as you don't rename the materials or do extensive fixup on individual mesh items this can work.
Here is a script that you can place in a toolshelf button. You will have to manually type in the path to your imported FBX subnet. Click the button and it will search the subnet for geo files. Then it will look inside each geo nodes for File based nodes. When a File based node is located it will turn off the lock flag. At this point you should be able to save the HIP file and reopen it. Because the geometry is no longer locked the next reload would come from the revised local file. I also noticed there are locked Capture nodes as well. I am not sure how unlocking the File will affect the Capture.
Here is a script that you can place in a toolshelf button. You will have to manually type in the path to your imported FBX subnet. Click the button and it will search the subnet for geo files. Then it will look inside each geo nodes for File based nodes. When a File based node is located it will turn off the lock flag. At this point you should be able to save the HIP file and reopen it. Because the geometry is no longer locked the next reload would come from the revised local file. I also noticed there are locked Capture nodes as well. I am not sure how unlocking the File will affect the Capture.
# Scan a subnet looking for geo type nodes. # Then scan inside each geo type node for a File type node. # When File type nodes are located, turn off their Lock flag. USER_DATA_DELIMITER = "~" def childrenOfNode(node, filter): # Return child nodes of type matching the filter (i.e. geo etc...). result = [] if node != None: for n in node.children(): t = str(n.type()) if t != None: for filter_item in filter: if (t.find(filter_item) != -1): # Filter nodes based upon passed list of strings. result.append('%s%s%s' % (n.name(), USER_DATA_DELIMITER, t)) # name~type. result += childrenOfNode(n, filter) return result # Path to the root of the FBX subnet. subnet_root = "/obj/name_of_FBX_subnet" #CHANGE THIS LINE OF CODE! root_node = hou.node(subnet_root) if root_node != None: # Scan subnet for geo type nodes. nodes = childrenOfNode(hou.node(subnet_root),["Object geo"]) for (i,node) in enumerate(nodes): ary = node.split(USER_DATA_DELIMITER) if len(ary) > 0: node_candidate = "%s/%s" % (subnet_root, ary[0]) n = hou.node(node_candidate) if n != None: more_nodes = childrenOfNode(hou.node(node_candidate),["Sop file"]) for (j,node_item) in enumerate(more_nodes): ary = node_item.split(USER_DATA_DELIMITER) if len(ary) > 0: node_item_candidate = "%s/%s" % (node_candidate, ary[0]) m = hou.node(node_item_candidate) if m != None: m.setHardLocked(0) # Use this line of code to unlock the File node. #m.evalParm("reload") # Or use this line of code to simply click the Reload Geometry button instead.
Edited by Enivob - Oct. 9, 2016 11:57:30
Technical Discussion » Tetrahedralizing animation for FEM solver
- Enivob
- 2539 posts
- Online
Your scene did not attach.
Have you reviewed Sam's work on this subject?
Here is a link to earthworm locomotion using FEM.
http://ihoudini.blogspot.com/2013/12/worm-locomotion-with-fem.html [ihoudini.blogspot.com]
Have you reviewed Sam's work on this subject?
Here is a link to earthworm locomotion using FEM.
http://ihoudini.blogspot.com/2013/12/worm-locomotion-with-fem.html [ihoudini.blogspot.com]
Technical Discussion » Soft spheres in copy SOP
- Enivob
- 2539 posts
- Online
You can use a magnetic force with a metaball field to attract FEM objects to a point.
Edited by Enivob - Oct. 8, 2016 10:11:00
Technical Discussion » Polywire UV coords
- Enivob
- 2539 posts
- Online
You could try UVTexture in Uniform Spline mode. Then adjust the individual axis scale to best match the curve length.
Edited by Enivob - Oct. 7, 2016 20:53:56
Technical Discussion » How to speed up a smoke sim,
- Enivob
- 2539 posts
- Online
It depends upon how you are generating your smoke. If you have a SourceVolume node try increasing the Scale Temperature by 10. It should really take off. If you are still using Buoyancy increase the lift in the Pyro Solver node.
You could always just drop down a wrangle and multiply the velocity too.
You could always just drop down a wrangle and multiply the velocity too.
v@v *= 2.0;
Edited by Enivob - Oct. 7, 2016 13:11:01
Technical Discussion » airship vortex simulation
- Enivob
- 2539 posts
- Online
I don't think I would use the cloud tools. Try more of a simulation based approach.
Check out Matt's galaxy.
http://forums.odforce.net/topic/24999-galaxy/?do=findComment&comment=145840 [forums.odforce.net]
And Diego's Vortex.
http://forums.odforce.net/topic/22547-how-can-creat-vortex-cloud/?do=findComment&comment=133799 [forums.odforce.net]
Check out Matt's galaxy.
http://forums.odforce.net/topic/24999-galaxy/?do=findComment&comment=145840 [forums.odforce.net]
And Diego's Vortex.
http://forums.odforce.net/topic/22547-how-can-creat-vortex-cloud/?do=findComment&comment=133799 [forums.odforce.net]
Houdini Indie and Apprentice » Running a script when you release a parameter slider?
- Enivob
- 2539 posts
- Online
As far as I can tell, the Houdini event system only has one event. Refresh. So you can't target any other events as of H15.5.
You can pass the value in a callback to a def in a python node.
However, that does not prevent the entire script from running as well.
This is not really a problem on a few controls but if you decide to make a full blown rig controller using Python you will notice the performance decrease. I guess if you head down the route of implementing a callback for one control you might as well do it for them all. Then, at least, you could pretend like there was a real event system in place. Essentially leaving the main body blank for fastest exit from the Refresh event.
As you can see from the console output the entire python code body is executed on every slider change. When all I really wanted was refreshValue to run.
You can pass the value in a callback to a def in a python node.
exec(kwargs['node'].parm('python').eval());refreshValue(kwargs['node'].parm('my_slider').eval())
However, that does not prevent the entire script from running as well.
node = hou.pwd() # Add code to modify contained geometries. # Use drop down menu to select examples. def refreshValue(newValue): print newValue pass print "c"
This is not really a problem on a few controls but if you decide to make a full blown rig controller using Python you will notice the performance decrease. I guess if you head down the route of implementing a callback for one control you might as well do it for them all. Then, at least, you could pretend like there was a real event system in place. Essentially leaving the main body blank for fastest exit from the Refresh event.
As you can see from the console output the entire python code body is executed on every slider change. When all I really wanted was refreshValue to run.
Edited by Enivob - Oct. 7, 2016 09:20:48
Technical Discussion » Rendering object-passes in Houdini
- Enivob
- 2539 posts
- Online
Check out the term “Extra Image Planes”. That is what Mantra calls passes.
There are some default check boxes for common passes you might want but you can also click the + icon and add a new pass. Click the Vex Variable dropdown for the complete list. I believe you can also route attributes to image planes as well.
There are some default check boxes for common passes you might want but you can also click the + icon and add a new pass. Click the Vex Variable dropdown for the complete list. I believe you can also route attributes to image planes as well.
Technical Discussion » Shader reading pointcloud/bgeo from file but need a transform
- Enivob
- 2539 posts
- Online
If you are reading the xyz coordinate, from the pointcloud, in your shader, simply discard the y or set it to zero.
Technical Discussion » Render OBJ nodes inside other contexts
- Enivob
- 2539 posts
- Online
It works for me. Just pick the subnet, not the sphere. Type subnet/*
Try putting a light in your subnet as well (that is what I did in my test, oh yeah I also added a camera to the subnet and looked through the camera). Maybe it is working but you are just not seeing anything?
Try putting a light in your subnet as well (that is what I did in my test, oh yeah I also added a camera to the subnet and looked through the camera). Maybe it is working but you are just not seeing anything?
Houdini Indie and Apprentice » Achieving proper scale and timing with Flip Fluid simulations
- Enivob
- 2539 posts
- Online
There is more to it than that. Fluid actually behaves differently at different scales. The problem I have run into is that when you set your collision objects to real size then you need an enormous fluid container to surround them. This leads to much more particle density needed which means more memory and longer sim times.
It all comes back to solving for the shot. Look at your storyboard, your budget and your deadline and create a compromised shot that will fit within those requirements.
So when you see those example fluid sims posted online, those are more than likely people without story, budget or deadlines. They are simply playing with the tool and obtaining results that will run on their computer. In large productions there are often more requirements to meet.
It all comes back to solving for the shot. Look at your storyboard, your budget and your deadline and create a compromised shot that will fit within those requirements.
So when you see those example fluid sims posted online, those are more than likely people without story, budget or deadlines. They are simply playing with the tool and obtaining results that will run on their computer. In large productions there are often more requirements to meet.
Edited by Enivob - Oct. 3, 2016 11:23:30
-
- Quick Links