Anti-Distinctlyminty Posted August 1, 2017 Share Posted August 1, 2017 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 Quote Link to comment Share on other sites More sharing options...
symek Posted August 1, 2017 Share Posted August 1, 2017 Haven't looked into your example, but this one works here. You need hda which generates only points, and procedural applied on a geometry to instance your hda on. Point's attributes overwrites asset parameters. Haven't used it in production yet though. hth. HEPointReplicate.zip 1 Quote Link to comment Share on other sites More sharing options...
Anti-Distinctlyminty Posted August 2, 2017 Author Share Posted August 2, 2017 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. Quote Link to comment Share on other sites More sharing options...
symek Posted August 2, 2017 Share Posted August 2, 2017 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. 1 Quote Link to comment Share on other sites More sharing options...
Anti-Distinctlyminty Posted August 2, 2017 Author Share Posted August 2, 2017 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. Quote Link to comment Share on other sites More sharing options...
symek Posted August 3, 2017 Share Posted August 3, 2017 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? Quote Link to comment Share on other sites More sharing options...
Anti-Distinctlyminty Posted August 4, 2017 Author Share Posted August 4, 2017 (edited) 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 August 4, 2017 by Anti-Distinctlyminty Updating attachment Quote Link to comment Share on other sites More sharing options...
Anti-Distinctlyminty Posted August 4, 2017 Author Share Posted August 4, 2017 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.