houdiniJD

houdiniJD

About Me

Connect

LOCATION
Not Specified
WEBSITE

Houdini Skills

Availability

Not Specified

Recent Forum Posts

Lattice for Volumes !!! Sept. 16, 2014, 9:51 a.m.

Another option is to use the VDB from particles to bake the SOP level displacement between the rest and the target (the vector disp in the example above) and turn this into a volume.

The displacement volume (converted back to standard volumes)can be visualised using the volume trail

This can then be sampled directly in a vop sop, removing the need for the point cloud lookup.
I used a VDB smooth to soften the sampled displacement directions.

With a target empty volume as the main input:
VolVOP
—— Sample Volume Gradient (to read the disp volume vector)
—— Add to original P
—— Sample original volume using new position.

hope this is some help

Lattice for Volumes !!! Sept. 16, 2014, 7:18 a.m.

It is possible to roughly replicate the lattice (in points mode) functionality using a VolumeVop with point cloud lookup.
This avoids the conversion to points, but could still be slow with very heavy volumes, although should be nicely threaded.

- You need the rest and deformed geo (identical topology)
- Precalculate the displacement vector from rest –> deformed (subtract P2 - P1)

- Create a new volume that will cover the deformed area (this can be clipped later)

- VolumeVOP with new empty volume as input1
—– Point cloud lookup your rest mesh (with disp attribute)
—– loop over the found points
———-pcimport the disp attrib
———-scale this by some distance function to add falloff to the displacement
————–(this can be done linearly with a fit, or all sorts of ramps / smooths etc)
———-add the scaled displacements together scaled by distance from the source point.
—–add the output displacement to the input position (P)
—–sample your original volume using the new displaced position

The radius and number of searched points can be used to vary quality / performance.
The big controls will be in the way the displacement of each point is faded. The lattice SOP uses various kernel funcitons

I can't upload a sample scene at the moment, but will try later.

Fast Point Instancing - all instances loaded before render Oct. 25, 2012, 10:45 a.m.

Cheers Rob for taking a look.
I am back on to investigating this again. Thank you for your scene.

I have taken a look at your setup and created a bit of a hybrid with what I was working on.
I can get close to the result I want, with mantra only loading crowd geo, as and when it is needed using point instance procedurals on my clusters of points.

What I have done is (in rough ascii diagrammatic form):



||
(12 x 12)
||
(script to generate object / point instance proc, per cluster)
______________________________||______________________________
/ / / / \ \ \ \
…..
…..
\________\ _______\________\_______/________/________/________/
||



- Object Node, Grabbing the subset of the full point cloud corresponding to a particular bit of screen space.
- Point instance procedural node, assigned to a particular object.



This appears to work. Looking at the stdout, I can see Mantra loading geo as and when the buckets need it. However, this is still only happening per cluster and requires a script to generate a lot of nodes (these can be at render time). I don't know if the render-time decreases, but the memory usage appears to.
I could build a Cluster object and PIP shader, per point, but this could get a bit messy.

What would be great is a way of specifying a bounding box, per point on the original point cloud (as part of the fast-instance setup) so the IFD is build

If anyone wants me to attach the script (it has been coded specifically for this particular test), but I can patch it up into a bit of an OTL if I get time.


Rob: I saw the thread you started, and a couple of others. I am trying to collate all the knowledge together to work out the limitations of the instancer.

I currently have characters with local primitive attribs, 1 shader, multiple materials assigned to different parts of the meshes (using prim attrib switches) - lots of colour overrides per point.

At present I only have poses on individual frames, so I was thinking of caching subframes to allow for a finer degree of offsetting. (So everyone doesn't perform an action on exactly the same frame).

Next: cvex testing to see what can be achieved here.

It looks like the clusterThis tool, supports the generation of delayed load assets per point - although I havent tried this.

cheers
JD

I'll try and package up a hip / hipnc if anyone is interested