Jump to content

Anyone know how to use 'Houdini Engine Procedural: Point Generate'?


Recommended Posts

Hi all,

I'm trying to get the SHOP procedural called 'Houdini Engine Procedural: Point Generate' to work, but so far I've had no luck. There's no example and the documentation doesn't actually say how to use it. 

There's the obvious docs listed here:

http://www.sidefx.com/docs/houdini/nodes/vop/enginepointgen

But that's all I can find. 

I've also attached the closest I have gotten. If you go to the shop > vm_geo_enginepointgen1 you can see I've told the procedural to call the Scatter SOP, which it seems to try and do so, but it complains that there are not enough sources specified. Which is fair enough, but I see no way of telling the called scatter to use any geometry as input.

So, has anyone got this working? Perhaps calling their own asset?

Point_Procedural.hipnc

Link to comment
Share on other sites

Thanks symek,

That gets me one step closer. Is there any way to feed the HDA that is called a mesh? E.g. If I want to scatter points over a SOP in my scene.

I tried using an object merge in the asset, having that as an asset parameter, as adding a string attribute containing the path to the input points, but it didn't work.

Link to comment
Share on other sites

3 hours ago, Anti-Distinctlyminty said:

Is there any way to feed the HDA that is called a mesh? E.g. If I want to scatter points over a SOP in my scene.

Feed FileSOP inside your HDA with something like op:/`chsop("../mysoppath")` (mysoppath being hda parm). Point attribute should point to mesh you want to scatter onto, with render visibility set to None, but render flag turned on, so that a mesh will be exported to ifd. 

  • Like 1
Link to comment
Share on other sites

Thanks symek, that worked in the end.

Unfortunately, my ultimate goal did not work out. I was trying to use these generated points as a source of points to do instancing on using a Point Instance Procedural Shop. But it just seems to take the original geo, and not the points generated from the HDA.

This is a real bummer as this would've solved a lot of issues for me.

If you know of a way to take a deforming mesh and cover it in instances at render time, do let me know.

Link to comment
Share on other sites

I'm kind of lost here. If you have a deformed mesh you want to instance geometry onto, why not to scatter points on it in SOPs, and send them to mantra for typical instancing with packed primitives? Houdini can easily handle dozens of millions of scatter points in a viewport. Anyway, if I understand you correctly, you can do what you want with HE Procedural Shop, which allows you to generate meshes (also packed prims) at render time. 

So, in the example above:

1) append copyToPointSOP to HDA output (instancing some geometry onto points)

2) replace HE Point Generation with HE Procedural with the same setup

3)  add -e full to mantra command (Rop's driver tab)

 and you will have meshes instanced on a points scattered at rendertime on a mesh, which is awesome all together, but mantra will consume hengine license.

does it make sense?

 

Link to comment
Share on other sites

Hi Symek, 

I've attached an example that shows the kind of situation that I'm faced with all the time. We have a deforming base, upon which I must instance lots of stuff, and sometimes these shots can be very long and quite large in size too (a current shot has 1.7 million points as the point cloud to instance upon). In our previous application (Lightwave) we'd have a simple base mesh, that is displaced and the instances are scattered over it. Setup was simple, file sizes were small and it was easy to setup. 

But because all of this has to be cached out, I'm faced with gigantic file sizes that take an age to bake out. We're not a huge studio so our licenses are limited. 

I was hoping to avoid the HE Procedural Shop due to the licensing issue (it would mean that our render power with these scenes would be cut to about 20% due to licensing limitations). 

It would be good if I could have a similar setup to Lightwave - just displace the geometry points at render time. The ability to run CVEX on geometry would be enough I think (assuming that a point instance procedural sees the points after the CVEX is run).

 

 

Instancing.7z

Edited by Anti-Distinctlyminty
Updating attachment
Link to comment
Share on other sites

Ok...some minor success. I have used displacement in a shader. This allows me to load packed geo and just displace it as I please at render time, so my IFDs will be very small. 

However, I'm unsure if the packed instanced geometry (the microvilli in the example file I have attached) displaces just the point position of the packed primitive, or it displaces all geometry. 

I can't think of a way to get the instances to align themselves correctly to the surface after displacement (see attached diagram).

Is this possible?

Instancing_Displacement.7z

Dsiplacement normals.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...