Jump to content


Popular Content

Showing most liked content on 02/08/2019 in all areas

  1. 3 points
    sup bb I'm not sure how you could do this without a solver, since it's accumulating rotation over time based on the speed and direction of motion each frame. I could be all kinds of wrong, though. Here's my method... I'm using the distance traveled and a vector orthogonal to the direction of travel to build an angle/axis quaternion, and adding (qmultiplying) that quaternion to the existing orient for each timestep. It's not perfect but it seems to work pretty well. Since it's basing the rotation angle on cross(dir, up), it might freak out if the ball rolls straight down. Curious if any smart people have a better answer for that. AutoRoll01_toadstorm.hip
  2. 2 points
    Here is another test using a last iteration of my tools to do small scale stuff. This time, now is possible to art direct how much do you want to break a sheet into drops and tendrils, and there are some Micro Ripples on the sheets that are relative to the fluid speed and curvature at some portions of the main fluid body! oil_details_shading_cam01_v001.mp4 Thank you! Alejandro
  3. 2 points
    Many of the gotchas, I experienced when I first started using Redshift have been ironed out with the continued development of the plug-in. Mainly an object that does not have the ObjParms applied to it can cause some problems. If they are not present, attributes will not be automatically forwarded to the material section. This can happen if you open old files and try to adapt them to Redshift. However, newly created objects do have ObjParms added by default, so just double check that if things seem like they are not working correctly. Another gotcha that I still run into is not experiencing glow from material emission on surrounding objects. This is because GI is turned off by default. You need to turn on one of the methods (typically Brute Force) to get some kind of emission bounce. But this is often the case with other render systems as well. Balancing density and temperature values in the volume shader can take some time too. I have adopted the workflow where I don't push density at all in the guides, and this helps get a better 1:1 match from viewport to render. Push your density values at the attribute or scale level, instead of guides. There is the 16 bounce limit on reflections as well. If you need more than that, you have to leverage the sprite cutout node instead of just relying on the standard material. Meshlights don't inherit v@Cd from points so you have to bake maps for multi-colored meshlights, but single colored meshlights work fine.
  4. 1 point
    From what I can see in that screengrab it looks like you've got an output called pntList, in which case your line should read : $pntList = set(1,1,1); if you put 'vector' before it you are declaring it, and it's already declared. [Anything you put in your list of outputs is declared automatically]. Just like in a wrangle in SOPs if you write : float value = 1; float value = 2; you'll get an error, that should be float value = 1; value = 2; By the way, if you're setting a vector with constants you don't need to use set(). You can just write $pntList = {1,1,1}; Use set() if you need to set it with other variables, eg: float valueA = 1; float valueB = 2; vector values = set(valueA, valueB, 0);
  5. 1 point
    Is it creating the 1 because another instance of that same OTL exists in the same scene path? If something else is causing this, you can always just go to the Type Properties > Scripts window, and enter the following in the OnCreated event: me = kwargs['node'] me.setName('MyNameWithoutA1AtTheEnd', True)
  6. 1 point
    The "Leave playbar at last frame" toggle in the Flipbook options will avoid jumping to the frame you were on before you started the flipbook (Houdini 16.5+).
  7. 1 point
    Hello! In case you haven't seen, a new HDA was posted on the Think Procedural Discord server to procedurally grow and art direct ivies, it looks pretty cool! Ivy Taming 1.0 for Houdini Documentation
  8. 1 point
    Keep in mind that everything in your example DOPnet is a single Vellum object, not multiple objects. You can emit more points and constraints into the simulation if you like, but it's all data that's being added to a single Vellum object, "vellumobject1". There's a couple things that will make Houdini very angry when deleting geometry from a Vellum object. First, from my testing it seems that you don't want to delete individual points/prims from a Vellum patch... you want to delete the whole patch at once if you're going to take that route mid-simulation. Second, you absolutely need to delete the associated constraints as well. In DOPs, the actual Vellum mesh is "Geometry" data, but the constraints are "ConstraintGeometry". This means that you need a SOP Solver (or Geometry wrangle, depending on what you like to work with) for both of these data names to delete both the Geometry and the ConstraintGeometry so that you don't end up with constraints that no longer have anything to constrain. I'm attaching an example here... I modified the Vellum Source to change the Patch Name so that each generated sphere has a unique name (based on the frame number when they're emitted), then in the Solver SOPs I run a for/each over each patch, get the minimum P.y position, and delete entire patches at once when their minimum P.y is less than zero. vellum_culling_toadstorm.hip
  9. 1 point
    Hey guys I interviewed Manuel Tausch (FX TD/co founder of Stormborn Studios) for FX World. The interview went live today. Here's the link! http://fxworld.tv/interview-with-manuel-tausch-pt-1/
  10. 1 point
    Hi roberttt! I did that specific fracture before the Houdini 16+ booleans were available, using a custom voronoi cutters technique. Basically, I used boolean-style cutter geometry to guide a voronoi fracture. 1) Scattered lots of points on the cutter geo, point-jitter them for width, and create cluster attributes on those points to create small clumps 2) Create a band of voronoi points a bit further from the cutter geometry, to define the large chunks. These points all get the same cluster value, and make sure that cluster value isn't used in the small-chunks clusters. 3) Run the fracture with clustering.... although the new H17 voronoi fracture doesn't seem to have clustering built in. So I believe you need to do the clustering post-fracture in H17, which unfortunately doesn't have an option to remove the unnecessary internal faces, so the geom can be a bit heavy with the new workflow. (Unless I'm missing something obvious!) I don't think I've used this voronoi fracture workflow at all since the H16+ booleans were released, and I've removed that technique from my CGMA destruction class. Nowadays I would handle this in one of these ways: - Running a primary boolean fracture to define the main chunks, and then running a secondary pass where I generate additional fragments on the edges of the main pieces. There are various ways to generate those secondary boolean edge cuts, and it's always a bit experimental. - Fracture everything at once into lots of small pieces, and use noise or geometry-grouping to define the larger shapes from the smaller fracture. Then once those large chunks are defined, use constraints or the name attribute or double-packing to get them to behave as individual large pieces. Hope this helps! :-)
  11. 1 point
    Vilandiris posted a nice carving material for Mantra on Discord. I went ahead and converted it to Redshift. ap_rs_carving_layers.hiplc
  12. 1 point
    Mike! Alembics store their orientation on a hidden intrinsic attribute on the prim; you can see this in the geo spreadsheet if you go to primitives, and use the 'instrinsics' dropdown to display 'packedfulltransform' or any of the other similarly named transformy attribs. Anyway, to convert that to @orient means pulling out that 4x4 matrix, converting it to a orient quaternion, then promoting it dom from prim to point so you can drive a copy with it. This wrangle will do the first bit: matrix m = primintrinsic(0,'packedfulltransform',@ptnum); @orient = quaternion(matrix3(m)); And an attribpromote will do the second bit. I've attached a maya scene, houdini hip, alembic. alembic_transform.zip
  13. 1 point
    You can do this inside of Houdini by using a spotlight with a gobo (i.e. COP texture supplied to the project map) then shine that light through a lit fog volume. Render time is slow as molasses but if you enjoy watching paint dry give this technique a try. You can animate the pattern in COPs and the render should reflect this like moving waves from above. The recipe is this... Add an Atmosphere node at OBJ level. Set it's material to a fog light (v_foglight) Add a light to the scene and point it at some geometry. On the Atmosphere node under the Render tab set the light mask to the light you added. Tweak the volume fog material to match your scene, as the help states, this is dependent upon your scene scale. ap_volumetric_light.hipnc