Found 53 posts.
Search results Show results as topic list.
Technical Discussion » Selecting invisible primitives from a point
- Robbert
- 53 posts
- Offline
You can use the VDB SOP to define a camera frustum which you can then use to for example group primitives by bounding volume. The ones not in that group could be deleted. Work that work for your case?
Technical Discussion » Vellum Balloon return to original shape / size
- Robbert
- 53 posts
- Offline
I have not opened your .hip file but just sharing my two cents; You would probably want to animate the restlength on the contraints and simultaneously the thickness on the points (so that they won't collide and go crazy when the constraints pull them close together). To do that, you could either use a vellum rest blend inside a DOP network, or use a geometry wrangle / VOP to handle it all explicitly. You can set the inputs in the input tab of the wrangle/VOP. Point those to the appropriate fields; Geometry (the vellum points) and ConstraintGeometry (the constraints). At some point you can even turn point collisions off so you can make your balloons infinitely small. You can use the s@collisionignore attribute for that; https://www.sidefx.com/docs/houdini/vellum/vellumattributes.html [www.sidefx.com]
Hope this helps, cheers
Hope this helps, cheers
Houdini Indie and Apprentice » skeleton emerging from the ground effect.
- Robbert
- 53 posts
- Offline
Sounds like a job for Vellum grains. You could make an extruded rectangle above the grave and fill it with vellum grains. Then with a vellum constraints node (set to glue) you can glue everything together with a certain strength and break threshold. You can then wire it into another vellum glue that glues individual clusters together which can be generated with the cluster node. This way, you get a nice mixture of bigger clumps of dirt and small particles falling off. Of course you can add a lot more to this, but i'd say this is the right direction for what you want. Once that is set up correctly, you can go all out with your personal vision for the shot. RBD is not really the way to go unless the skeleton is breaking out of a stone grave and thereby breaking it.
There are loads of tutorials on vellum grains on Youtube, so I suggest you start by watching some of those
There are loads of tutorials on vellum grains on Youtube, so I suggest you start by watching some of those
Technical Discussion » Melting object
- Robbert
- 53 posts
- Offline
What you could do is to group the particles that have a higher value of your melting attribute (likely temperature). So you end up with a group that is actively melting. Pipe those into a split note, and split by group. The particles that are not actively melting come out of the other output. You can then use a VDB from particles node to make an approximate mesh and use that as a staticobject in your sim. For collisions you can actually use the generates SDF directly by putting the collision method on volume sample, and referencing it in the proxy volume parameter. Hope this helps
Edited by Robbert - Aug. 23, 2022 08:26:30
Technical Discussion » Python code in node tree
- Robbert
- 53 posts
- Offline
TheCrisis
Hi,
How can I run the python node inside the graph after I press the export fbx button linked
to the Subnetwork one step lower in the hierarchy?
Is there any way to do this automatically?
I see that only when I change display flag then this code is executed.
You can make a button (or link to another button) in the parameter window by adding some python script to the callback function field. the hou.Node class has a .cook() function which you would then want to call.
https://www.sidefx.com/docs/houdini/hom/hou/Node.html [www.sidefx.com]
Technical Discussion » Calculating eigen vectors for a given matrix with VEX
- Robbert
- 53 posts
- Offline
Not really a VEX solution, but a solution anyway; if you have python modules configured and numpy installed you could store 3x3 matrices on points and feed those into a python SOP. Then iterate over those points and use the numpy / linear algebra functions to convert into eigenvalues and eigenvectors that you then write back to those points.
I basically just implemented the explanation on this page [web.physics.utah.edu] in a python SOP. The matrix here is a 3x3 matrix stored in the 'covariance' attribute.
Here are two other sources that helped me out;
https://www.visiondummy.com/2014/04/geometric-interpretation-covariance-matrix/ [www.visiondummy.com]
https://houdinigubbins.wordpress.com/2017/06/07/covariance-matrix/ [houdinigubbins.wordpress.com]
I basically just implemented the explanation on this page [web.physics.utah.edu] in a python SOP. The matrix here is a 3x3 matrix stored in the 'covariance' attribute.
import numpy as np from numpy import linalg as LA node = hou.pwd() geo = node.geometry() points = geo.points() for point in points: m = point.attribValue("covariance") arr = np.asarray(m) mm = arr.reshape(3,3) w, v = LA.eig(mm) point.setAttribValue("eigenvalues",w) point.setAttribValue("xeigenvector",v[:,0]) point.setAttribValue("yeigenvector",v[:,1]) point.setAttribValue("zeigenvector",v[:,2])
Here are two other sources that helped me out;
https://www.visiondummy.com/2014/04/geometric-interpretation-covariance-matrix/ [www.visiondummy.com]
https://houdinigubbins.wordpress.com/2017/06/07/covariance-matrix/ [houdinigubbins.wordpress.com]
Technical Discussion » ROP fetch weirdness
- Robbert
- 53 posts
- Offline
I think what you want is not possible like this (at least I haven't been able to get it to work). If you use the 'use ROP configuration' you basically do not get any progress insights. If you want to get those anyway you could also just fetch the rop with the settings that you want, then set that ROP to 'single frame' mode, and input the frame range you need into the TOPS fetch. This becomes more complicated when you need to set the ROP fetch programmatically, but still doable. Hope this helps.
Technical Discussion » System variable check for package .json files
- Robbert
- 53 posts
- Offline
Hi there,
I have an HDA that I am trying to configure as a Houdini package so I can include executables for OpenImageIO and OpenColorIO with it. However, users might already have OCIO configured as their system variable. I can ofcourse set OCIO in the packages .json configuration, but I would like to skip that option is $OCIO is already configured by the user. How do I check in the package .json if a system variable already exists? As far as I understand the 'recommends' and 'required' keywords do not handle this case.
Cheers!
I have an HDA that I am trying to configure as a Houdini package so I can include executables for OpenImageIO and OpenColorIO with it. However, users might already have OCIO configured as their system variable. I can ofcourse set OCIO in the packages .json configuration, but I would like to skip that option is $OCIO is already configured by the user. How do I check in the package .json if a system variable already exists? As far as I understand the 'recommends' and 'required' keywords do not handle this case.
Cheers!
Technical Discussion » Flip fluids - controlling collision field
- Robbert
- 53 posts
- Offline
Hi there,
I have a variable viscosity flip sim of a liquid being poured in a glass. The 'glass' in which is is poured should appear as the liquid (of particular viscosity) touches it, and therefore that liquid should collide with it. So basically water-like particles can still splash out, while the viscous liquid is trapped. (I have attached a flipbook to illustrate).
For testing I just 'unveiled' the glass in SOPs and brought it in, the problem with this is that particles can get stuck on the floating surface that is transformed upwards. I'd like to find a solution where I can check within DOPs if the collider is close to the viscous liquid and then activate that collision voxel. I have tried to do it in a gas wrangle and VOP but cannot figure it out. It mostly seems to keep the particles in, but is not correctly handling the volume step (I might be wrong here).
Could anyone give me a pointer on how to handle this correctly?
Cheers!
I have a variable viscosity flip sim of a liquid being poured in a glass. The 'glass' in which is is poured should appear as the liquid (of particular viscosity) touches it, and therefore that liquid should collide with it. So basically water-like particles can still splash out, while the viscous liquid is trapped. (I have attached a flipbook to illustrate).
For testing I just 'unveiled' the glass in SOPs and brought it in, the problem with this is that particles can get stuck on the floating surface that is transformed upwards. I'd like to find a solution where I can check within DOPs if the collider is close to the viscous liquid and then activate that collision voxel. I have tried to do it in a gas wrangle and VOP but cannot figure it out. It mostly seems to keep the particles in, but is not correctly handling the volume step (I might be wrong here).
Could anyone give me a pointer on how to handle this correctly?
Cheers!
Technical Discussion » Sweep - best way to handle intersection?
- Robbert
- 53 posts
- Offline
How about using a boolean set to union? Think you do have to endcap them so they are properly closed geometry. That could be done on the sweep node itself or by using polycap node. Your geometry also looks inside-out at the moment. So maybe use a reverse node first to get the correct winding. Cheers
Technical Discussion » Freezing & self-colliding FLIP sim
- Robbert
- 53 posts
- Offline
CYTE
Hey Robbert,
have you tried to do the freezing with a high viscosity value? Like they do with lava setups.
Cheers
CYTE
Wow that was such a simple solution for something that I tried to solve so complicated. Never tried any lava-things so I guess never really thought of this. Initially, the viscosity gives a bit, like really though slime but I just additionally ramped in some pop drag based on the frozen attribute, and then used i@stopped to lock them in place when they are fully frozen.
Oh well, i'll leave this here in case someone else searches for something similar.
Technical Discussion » Freezing & self-colliding FLIP sim
- Robbert
- 53 posts
- Offline
Hi there,
I am trying to make a sim in which a glass is filled with liquid, when about half full the liquid has to start freezing from the bottom up. This freezing should stop the liquid from moving, and additionally any newly poured liquid should collide with the already frozen liquid. This frozen state should then spread based on distance.
The filling is working, and I can also spread the frozen attribute over the sim while running. By using i@stopped, I can freeze the particles, but this does not stop the new flip particles from penetrating the liquid.
I have tried using a gasparticletofield dop node, to copy the frozen attribute into the collision field. While this shows up correctly when visualizing the collision field on the flipobject, the liquid still collides with it. Can anyone give any pointers on how to correctly, dynamically add parts of the flipsim to the collision field. So that other particles do not merge with those particles any more.
Note;
I figured it would be easier to do this freezing effect with pop fluids or vellum fluids, since each particle there actually represents volume. However, I feel those options do not give the nice swirlyness I get from flip, which would be quite essential in this project.
I am trying to make a sim in which a glass is filled with liquid, when about half full the liquid has to start freezing from the bottom up. This freezing should stop the liquid from moving, and additionally any newly poured liquid should collide with the already frozen liquid. This frozen state should then spread based on distance.
The filling is working, and I can also spread the frozen attribute over the sim while running. By using i@stopped, I can freeze the particles, but this does not stop the new flip particles from penetrating the liquid.
I have tried using a gasparticletofield dop node, to copy the frozen attribute into the collision field. While this shows up correctly when visualizing the collision field on the flipobject, the liquid still collides with it. Can anyone give any pointers on how to correctly, dynamically add parts of the flipsim to the collision field. So that other particles do not merge with those particles any more.
Note;
I figured it would be easier to do this freezing effect with pop fluids or vellum fluids, since each particle there actually represents volume. However, I feel those options do not give the nice swirlyness I get from flip, which would be quite essential in this project.
Technical Discussion » Megascans asset drasticly increase rendertimes (Mantra)
- Robbert
- 53 posts
- Offline
Hi there,
I am building a layout with a bunch of Megascans assets. Iterating the general layout went smooth, and preview render times were fast. However, as soon as I started scattering rocks render times increased drastically. I also noticed that some particular assets take way longer and the renderer really seems to focus a lot of resources on them. I have a feeling is has to do with the memory as problems occur when the scene consists of many assets.
Therefore I upped the mantra memory cache to 0.75 (75% of my 64GB of ram). But this did not seem to change anything. Then polycapped all open geometry so that would not be an issue. But nothing seems to work. Does anyone have an idea what might cause this?
I have attached some images to illustrate
- Image 1 - rendertime; 1:03
- Image 2 - rendertime; 1;56 (added one rock in the riverbed)
- Image 3 - rendertime; 14;16 (added scattered rocks, some materials are not loading correctly but that wouldn't be an issue for render times I guess).
- All assets use 4K - 8K textures
- Displacement is disabled
- Open geometry has been polycapped to close them
- Geometry can be intersecting.
- All scattered geometry has either been packed, or loaded as packed disk primitive.
Rendering-related computer specs;
- Ryzen 5950x
- 64GB ram
- RTX3080ti
- Reading data from an M2 ssd
I am building a layout with a bunch of Megascans assets. Iterating the general layout went smooth, and preview render times were fast. However, as soon as I started scattering rocks render times increased drastically. I also noticed that some particular assets take way longer and the renderer really seems to focus a lot of resources on them. I have a feeling is has to do with the memory as problems occur when the scene consists of many assets.
Therefore I upped the mantra memory cache to 0.75 (75% of my 64GB of ram). But this did not seem to change anything. Then polycapped all open geometry so that would not be an issue. But nothing seems to work. Does anyone have an idea what might cause this?
I have attached some images to illustrate
- Image 1 - rendertime; 1:03
- Image 2 - rendertime; 1;56 (added one rock in the riverbed)
- Image 3 - rendertime; 14;16 (added scattered rocks, some materials are not loading correctly but that wouldn't be an issue for render times I guess).
- All assets use 4K - 8K textures
- Displacement is disabled
- Open geometry has been polycapped to close them
- Geometry can be intersecting.
- All scattered geometry has either been packed, or loaded as packed disk primitive.
Rendering-related computer specs;
- Ryzen 5950x
- 64GB ram
- RTX3080ti
- Reading data from an M2 ssd
-
- Quick Links