Jump to content

trzanko

Members
  • Content count

    58
  • Donations

    0.00 CAD 
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by trzanko

  1. Link to tutoial -> https://gum.co/imSYS In this comprehensive stand alone tutorial we will go over how to set up scene-scale clustered pyro simulations and blend them together post-simulation to make it appear as if it is one large simulation. This process will lower simulation time, allow for higher resolutions, and be more efficient when saving to disk because there are fewer voxels. This process will also optimize large scale pyro scenes, so that simulations are only calculated where absolutely necessary and blend them together so that it appears as if it is the same volume. This tutorial comes with all digital assets, a documented and fully set up file as well as a starter file for following the tutorials along the same as I work through them. An intermediate tutorial for those looking to speed up their pyro workflow, learn some VEX and create massive sims. Includes a documented scene file and all digital assets! Hope to see everyone leveraging these optimizations in the future to create massive simulations and squeeze in those extra few iterations before deadlines! You can reach me at trzankofx@gmail.com for questions or comments.
  2. Controlling Focus Distance

    ye all good, thanks for responding! was testing the expression in the 'tz' channel lol
  3. Controlling Focus Distance

    Is this supposed to work still? It errors out due to infinite recursion in 16.5.378 The chop expression way also does not evaluate.
  4. Great thread, the unpacking method is viable though a bit weird to work with because of the bones and capturing. I recently wrote my own wrangle for normalizing, coloring for visualization, and creating densities per a set of different attributes of an incremental name(basically paint capture weights for a set of attribs). So for example you can display the hda and up stream you can paint in multiple paint nodes overriding the color paint attrib to your own attrib but make sure the names goes like attrib0, attrib1, attrib2, ... attribn. Of course you can make the name anything you want, for my purposes I named it fgroup, simply replace fgroup to your desired prefix, display the wrangle and paint upstream attribs! Happy painting! The multi-parm allows you to vary a density attrib by the amount specified in the channel per painted region, so fgroup0 corresponds to density0 and so on. Just make sure you have as many multiparms as you do painted attribs. Play around with it a bit and let me know if you have any questions, Link to HDA -> https://gum.co/TKCTM
  5. Creating VEX libraries

    I've found that clicking in the network pane recompiles wrangles
  6. Group By Range VEX

    if(@ptnum < chi("max") && @ptnum > chi("min")){ i@group_groupA = 1; }
  7. Bird rig

    Posted a response on the sidefx forum that may help. https://www.sidefx.com/forum/topic/49780/ Tighe
  8. if you hover over the name to the left of the text box for inputting values you will see that the names are uniqued. in a multiparm it would be something like attrib0, attrib1, attrib2 To access this data by groups you can do some string manipulation in vex. you don't necessarily need python for this. for example you can do something like this: @pointAttrib = ch("attrib"+itoa(@ptnum)); if you want unique attribs on the points such that each point has attrib0, attrib1, .... attribN you'll have to do a bit of python but what's nice is that you can create a python script to populate a wrangle with code. To start you'll have to set up a script that cooks every time you click on the multiparm add/subtract, you can do this in the edit parm interface area and set up the multiparm with a callback script. You can write scripts in the script tab of the interface. Your script can look something like this: node = hou.node("/obj/geo1/attribwrangle1/") numAttribs = node.parm("numMultiParms").eval() snippetCode = "" for i in range(0,numAttribs,1): snippetCode += "\n" + "float attribName" + str(i) + " = " + 'ch("attrib"' + str(i) + ");" node.parm("snippet").set(snippetCode) That'll work but you'll definitely want to make it so that you just add to the existing code that's in the snippet or else you'll overwrite it every time unless you set it in python lol it's easy to do just read what's already there into a string, save the code you want to save and then add this stuff. Will probably also want to add some logic to only put a new line when the iteration is > 1 but I'll leave that to you! Hope this helps Tighe
  9. Melting plastic approach

    For the shrinking, I'd try advecting the particles along the gradient of the surface volume towards the center before surfacing. This step could be done on the particle updates input of the flip solver.
  10. Smoke/Pyro | Cluster Simulation

    Nice! Yea, polvy has the right idea, oriented clusters could definitely save you some space/sim time on your sim! You can check out the tut's here: Part 1 -> https://gum.co/TqUNR Part 2 -> https://gum.co/lAcVQ
  11. Point deform would work but if you want it to dynamically dent as it gets closer/further away from the object you'll need to do something else. So long as the topology of the deforming mesh is consistent you need only look back to the same point of the animated geometry from the last frame, get the attrib and apply the deformation ( assuming it's @P += -@N * attrib;). Then after or in the same step you can do a new additive deformation on the animated geo. This ensures that you're retaining the info from the last frame of the deforming object. Things get lossy if the topo is not the same so if you can keep the topo the same then do as it'll make it a lot easier to solve. Hope this helps, Tighe
  12. FEM DOPEmbedded geo issue

    Make sure the tet cage completely encompasses the embedded mesh. Check out the example file at the bottom of the solid embed node for how to get a nice embedded mesh going.
  13. Pyro Clustering Tutorial

    In this tutorial we will go over how to set up optimized pyro clustering with oriented DOP containers in Houdini given a piece of geometry moving through a scene. This process will lower simulation time and be more efficient when saving to disk because there are fewer voxels. Link to Tutorial -> https://gum.co/TqUNR We first go over how to get things set up quick and easy and in the second half of the tutorial we make further optimizations using VEX. We'll look at how to rewrite cluster points to do exactly what we need it to, which includes rewriting the resample sop using VEX. An intermediate tutorial for those looking to speed up their pyro workflow and learn some VEX. Includes the scene file! Hope to see everyone leveraging these optimizations in the future and squeezing in those extra few iterations before deadline! You can reach me at trzankofx@gmail.com for questions or comments.
  14. Pyro Clustering Tutorial

    Happy to announce part 2 of my pyro clustering tutorial! Link to tutorial -> gum.co/lAcVQ In this tutorial we will go over how to set up oriented forces on an oriented cluster simulation, this will ensure that initial, internal and external forces work as expected. We'll create a simulation that uses animated initial forces, external particle forces and internal microsolvers to influence a rotated cluster simulation. Learn how to create temporary fields in DOPs, apply transformations to a field and integrate them with a simulation. Make sure to watch part 1 or download the digital asset as we'll need the digital asset we created in that tutorial in this one. An intermediate tutorial for those looking to optimize their pyro simulations and learn some VEX. Includes the scene file! Hope to see everyone using rotated cluster simulations in the future! Link to Part 1 tutorial and digital asset -> gum.co/TqUNR You can reach me at trzankofx@gmail.com for questions or comments.
  15. Pyro Clustering Tutorial

    Are you asking how to flatten all the containers into a singular container/field? They're already just density and vel fields, but you're right there is a vel and density per container. I don't see the benefit of flattening all the volumes into a singular container or field as this field would have to encompass all the clusters and itself be very large. If it's because you want to avoid the doubling up of overlapping velocities/densities when rendering or using this sim as a vel source for another sim, you can create a volume that represents the amount of containers overlapping a given position and multiply the densities/velocities by the reciprocal of the amount of containers overlapping that location. Hope that answers your question!
  16. Copy to points with rotations

    The copy to points node accepts an orient quaternion and also a vector "matrix" as @N for z-axis, v@up for y-axis, v@side for x-axis. if these are packed objects you can set the transform primintrinsic to a matrix3 comprised of the v@side,v@up,@N matrix
  17. use a sop solver to accumulate an attribute over time, it's not just age or time it comes in handy for a lot of things like rotating particles based on how far it's traveled
  18. motion vector pass

    you're also able to change the space the motion blur happens in using the transform vop. so if you want 3d moblur you should use world space and if you want 2d moblut transform to NDC space
  19. Attaching wires to surface

    No matter the orient or resolution of the wires you can determine the point nearest the surface. You can use the vertex prim index function to determine which points are the 0 point on the primitive. http://www.sidefx.com/docs/houdini/vex/functions/vertexprimindex Then if the points that equal vertex zero are actually the furthest from the surface you can determine how many points are on the primitive by the prim vertex count function and then the point that has that corresponding vert number is the nearest point. http://www.sidefx.com/docs/houdini/vex/functions/primvertexcount Furthermore if you have varying wires where the nearest point is sometimes the zero point and sometimes the end point then you can determine which one is closest to the skin by measuring the length to the nearest point on the nearest primitive. Hope this helps, -Tighe
  20. Draw lines while player jumps?

    Nice! Let me know when it's finished, excited to see the final result!
  21. Draw lines while player jumps?

    You can use an add sop and connect by attribute and enter "id". as long as there are proper id's they'll connect
  22. Draw lines while player jumps?

    connect the floor points to the foot points by an id and then manipulate those curves?
  23. This tutorial goes over from start to finish the creation of a rudimentary fence asset that can easily be expanded upon. This is an introductory lecture on procedural modeling in Houdini I gave at Drexel University's SIGGRAPH chapter as a Junior Animation & FX major. Let me know if you have any questions, enjoy! Link To Demo File: drive.google.com/open?id=0B--RBrg9u--oWkNDU2ZUYnFpUjQ Link to Documented File: drive.google.com/open?id=0B--RBrg9u--odEhVYnluaFRGeGs
  24. Intro To Procedural Modeling: Fence Asset Tutorial

    Yea absolutely! Excited to see how much attention it got, seems like procedural modeling is a hot topic!
×