Jump to content

Atom

Members
  • Content count

    3,079
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    94

Everything posted by Atom

  1. Making tidal wave

    That is a modified version of Hernan's source file here,
  2. Some of the pyro clusters aren't even visible

    Here is the final HIP from the video tutorial. Maybe you can swap the rubber toy with your comet? ap_pyro_cluster_for_keyframed_geo_072617.hipnc
  3. Making tidal wave

    You can have the boolean seam result hang out in space. Animate the grid to track the bottom of the wave and animate the particle activation when you need to spray more particles. ap_WaveDeformerTestQuickMask_edit2.hiplc
  4. Some of the pyro clusters aren't even visible

    There are a few problems. One is that you need to Object Merge Into This Object or your fuel supply may be generated outside of a cluster bounds. You are currently basing your fuel supply on the cluster points. You should be basing your fuel supply on a single point that is moving along the cluster line. Consider using a carve followed by a delete all but point zero to achieve this or extract the centroid from the moving geometry to generate the fuel. Drop down a bounds node around all the cluster points and expand it on the Z axis in both directions. Supply this bounding geometry to the fluid resize node. This will make sure the master domain that the cluster's reside within, are indeed inside the possible simulation box. Make sure your (10,10,10) cluster scale value is actually big enough to contain your initial fuel supply.
  5. The basic concept is to use a RaySwitch. Plug the Incandescent into the giColor of the switch. This way you can still use the emission color on the rsMaterial and then another emission color from the rsIncandescent. In this mode, you can really over crank the rsIncandesent Intensity. Think of the Alpha value as a noise fall off. As Intensity goes up, try turning alpha down to tame fringe noise.
  6. Motion Blur on Switcher Cameras

    Shift one frame before you need to then discard that frame during the compositing process. Maybe render the first frame of the camera switch with motion blur turned off..?
  7. Thanks, for the tip, I'll give that a try next time.
  8. Does anyone know how to install fonts on Ubuntu 18.04? I used the standard right-click Open With Fonts, and the INSTALL button. After a reboot, Gimp can see my new font, but Houdini can't?
  9. Raining Fuel (No Clustering)

    Now with synchronized large chunk fracture. I've activated Impact records on the PopSolver and use that to generate all the impact points. There is no constraint network, only managing the i@active attribute for the pre-fractured pieces. Trying to keep the scene as light weight as possible. Timed metaballs appear, hold in place, and disappear at the impact points to introduce force on the newly activated pieces. ap_raining_fuel_trails_fracture_111919.hiplc
  10. A simple exercise to deposit fuel at impact points that are generated from a particle system. No clustering used. ap_raining_fuel_111719.hiplc
  11. Raining Fuel (No Clustering)

    Here is a modification where the impact particle is set to slide. A trail sop is used to generate a line length, for the sliding particle, which is turned into a tapered polywire. The sliding polywire becomes the fuel source. ap_raining_fuel_trails_111819.hiplc
  12. Raining Fuel (No Clustering)

    Here is an update with obstacles, sliding fuel sources, randomized fuel shape and strong prevailing winds. ap_raining_fuel_111819.hiplc
  13. Timeline markers?

    Yes, if you only put a single set of keyframes on the NULL. When you select the NULL, keyframes from other objects are no longer displayed in the timeline, but the NULL keyframes will be displayed instead. You can use CTRL-RIGHT/LEFT arrow to jump to them. It does introduce the selection dance to your workflow, but is an existing way to emulate that feature. I personally don't miss timeline markers at all.
  14. Timeline markers?

    You can always key frame a null, those values will show up in the time line. You can think of those as markers. Select the null and use the jump to next keyframe button.
  15. That is a fun one to play around with.
  16. Selection To Object Merge

    This has come up quite often for me when working with imported static FBX files. Often you will get every little piece of a model inside it's own geo object but you really just want to work with them all as a single mesh. This script will examine your node selection and create a new /obj level object that will object merge in all the nodes selected into a single merge. Then you can just use that single node to represent your model. (i.e fix up normals, detail materials, prepare for simulation, export etc...) import hou THRESHOLD = 0.015 def luminance(pixel): return (0.299 * pixel[0] + 0.587 * pixel[1] + 0.114 * pixel[2]) def is_similar(pixel_a, pixel_b, threshold): return abs(luminance(pixel_a) - luminance(pixel_b)) < threshold lst_user_selection = hou.selectedNodes() if len(lst_user_selection): # Make a geo node that will ObjectMerge in all the nodes in the selection. node_geo = hou.node('/obj').createNode("geo","geo_merge_result") if node_geo: node_geo.moveToGoodPosition() #node_geo.node('file1').destroy() node_merge = node_geo.createNode('merge') node_merge.moveToGoodPosition() # Create a normal to fix up everything after the merge. node_normal = node_geo.createNode("normal","normal1") node_normal.setInput(0, node_merge) # Create a NULL for our output placeholder. node_normal.setDisplayFlag(True) node_normal.setRenderFlag(True) node_normal.moveToGoodPosition() # Create a NULL for our output placeholder. node_null = node_geo.createNode("null","OUT") node_null.setInput(0, node_normal) # Create a NULL for our output placeholder. node_null.setDisplayFlag(True) node_null.setRenderFlag(True) node_null.moveToGoodPosition() for (n,node) in enumerate(lst_user_selection): print node.name() node_temp = node_geo.createNode("object_merge",node.name()) node_temp.parm('objpath1').set(node.path()) node_temp.parm('xformtype').set(1) node_temp.moveToGoodPosition() assign_by_node_color = True if assign_by_node_color: # Use the color of nodes to inherit the same @shop_materialpath. s = "rs_DEFAULT" if is_similar(node.color().rgb(), (0.584,0.776,1.0), THRESHOLD): s = "rs_blue3" if is_similar(node.color().rgb(), (0.6,0.6,0.6), THRESHOLD): s = "rs_grey5" if is_similar(node.color().rgb(), (0.145,0.667,0.557), THRESHOLD): s = "rs_green5" if is_similar(node.color().rgb(), (1.0,0.725,0.0), THRESHOLD): s = "rs_yellow6" if is_similar(node.color().rgb(), (0.996,0.933,0.0), THRESHOLD): s = "rs_yellow5" # Create a wrangle to define our shop_materialpath. node_wrangle = node_geo.createNode("attribwrangle","attribwrangle1") node_wrangle.parm('snippet').set('s@shop_materialpath = "/shop/%s";' % s) node_wrangle.parm('class').set(1) node_wrangle.moveToGoodPosition() node_wrangle.setInput(0, node_temp) # Create a color to match the node color. node_color = node_geo.createNode("color","color1") node_color.parm('colorr').set(node.color().rgb()[0]) node_color.parm('colorg').set(node.color().rgb()[1]) node_color.parm('colorb').set(node.color().rgb()[2]) node_color.moveToGoodPosition() node_color.setInput(0, node_wrangle) node_merge.setInput(n,node_color) else: node_merge.setInput(n,node_temp) In this image the white areas were not part of the selection. The color of the nodes in the selection is forwarded into the object merge as an additional color node. There is also an attribute wrangle added inline to assign the @shop_materialpath based upon the color detected. This can convert objects with same exact material referencing multiple copies of the same material into a single /shop path material. You can adjust to /mat if needed.
  17. viscosity problem

    Try setting Particle Motion/ Reseeding/ Surface Oversampling = 36.
  18. Implement Kernel (maths) in Vex

    I guess basic velocity damping, in a GeometryWrangle can stop the expansion process, but it produces a strange dissolve effect, as an artifact. I couldn't seem to get the GasDamp node to have any effect.
  19. Implement Kernel (maths) in Vex

    Thanks for the file. Do you have any Solver configuration tips, that will limit expansion? It seems to expand forever...
  20. Volume - Outline Not Visible?

    Have you added any density to your empty volume? Volumes also don't show up, if you are in wireframe mode.
  21. You can also try using a pointreplicate, around your original large chunk points. When many points are around a single area, the fracture will surround them with smaller pieces. Another way is to leverage the debris, system, which releases particles around the seams of the larger chunks. You can copy smaller random rocks shapes to those generated points.
  22. FLIP SIM- Collision and Sticking Problem

    Thanks for the additional information. I can see the exterior band voxel bounding box change, when alter the value. I never really played around with that. Getting closer, though.
  23. FLIP SIM- Collision and Sticking Problem

    That is a nice example file. Do you have any tips on keeping some of the fluid "stuck" to the collision object. I would like the strawberry to be coated in chocolate, even after it spins around and throws some of the fluid off to the sides. I tried increasing Surface Tension and Viscosity, but the fluid still won't stick? Are exterior bands the same as narrow bands? I'm not really sure where that setting is located? I noticed the solver is unlocked in your example. Did you make changes to the solver itself?
  24. Uhg, that is the problem with redshift. There is always another override you have to do. I mean why do we need a special override for "UserData" when we are already extracting the attribute, automatically?
  25. I would agree that is a 100% Redshift bug. You might want to report it. The only other thing to try, is to override both materials on the tree. I don't know what the trunk material name is, so I can't test that theory. It might be that on a multiple material object, if you override one, you have to override them all. Try dropping down a material in /shop that matches the name of the trunk.
×