Point instance procedural

   61976   69   12
User Avatar
Member
25 posts
Joined: June 2008
Offline
Hey guys, Is it possible to use single scatter sss with the point instance procedural? I could have sworn I had it working earlier but recently all I get is black renders.

Mike
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
Hi Peter,
it would seem its not possible as materials are applied to prim selections and fast point instancing changes points. Maybe you could create an attribute that looks up a colour value after the material has been applied ( not had time to look into that sort of thing.But it did find some other cool stuff. switch between the 2 different material sops.

rob
Edited by - May 30, 2012 08:22:45

Attachments:
rse_sop_randomcolours_v001.otl (24.1 KB)
pointinstanceComplex.hip (325.6 KB)

Gone fishing
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
Hey guys, Is it possible to use single scatter sss with the point instance procedural? I could have sworn I had it working earlier but recently all I get is black renders.

Mike

Cannot say Ive looked into that. do you have a file ?

Rob
Gone fishing
User Avatar
Member
7046 posts
Joined: July 2005
Offline
Hi Rob,

OK thanks for checking, I guess I'm not doing anything wrong

IMO it's critical that an attribute applied to the point overrides the corresponding shader parameter at render time…. otherwise we can only apply single materials to whole objects which isn't especially useful. Again, if I'm missing something (Halfdan??) please let me know

I really hope SESI invest some time thoroughly documenting the various ways of instancing including the special attributes you can use etc.

Cheers,

Peter B
Cheers,

Peter Bowmar
____________
Houdini 20.5.262 Win 10 Py 3.11
User Avatar
Member
599 posts
Joined: May 2011
Offline
pbowmar
IMO it's critical that an attribute applied to the point overrides the corresponding shader parameter at render time…. otherwise we can only apply single materials to whole objects which isn't especially useful. Again, if I'm missing something (Halfdan??) please let me know

The pickle here is that you can only have *one* material override per point, hence only set one material on the target instance. This can't be resolved unless you wrap multiple materials into one and switch between them using a primitive attribute on the instance. It might get quite unwieldy, however. Maybe string tuples in H12 (supported in GA, but not exposed in a SOP, so far) could save the day, but you'd still need some sort of mapping from tuple index to the target primitive material.

One idea I came up with to solve this would be to add a new set of object-level Mantra properties, which at render time would act similar to detail attributes (but with a different priority, probably higher). Then the point instancer could copy any desired point attribute as a corresponding object-level property, with the same name and type.

This would only require a small change to the materials (basically an extra parameter on the material that would tell it to, for example, pick up the base color from attribute X) but still work quite nicely with both in-memory and file procedural geometry. This might also solve the “pscale” conundrum, again, without having to modify a copy of the geometry, through some hypothetical CVEX file procedural.
Halfdan Ingvarsson
Senior Developer
Side Effects Software Inc
User Avatar
Member
25 posts
Joined: June 2008
Offline
circusmonkey
Hey guys, Is it possible to use single scatter sss with the point instance procedural? I could have sworn I had it working earlier but recently all I get is black renders.

Mike

Cannot say Ive looked into that. do you have a file ?

Rob

Sorry for the delay. Here's an example of what I'm talking about. Single scatter sss doesn't calculate from what I can tell with fast point instancing.

Attachments:
point_instance_procedural_v01.hipnc (930.0 KB)

User Avatar
Member
183 posts
Joined: Nov. 2008
Offline
Hi guys! Could you tell me is it possible to use fast point instancing with delayed load procedural on instantiated object?
It works fine with full point instancing, but not with new point_instance_procedural.Is it limitation or bug?
Ok, i know i can load bgeos right in point_instance_procedural with instancefile attribute, but in this case i need to assign materials somehow ( which is nicely done with delayed load and separate material.ifd file).

Thanks.
Aleksei Rusev
Sr. Graphics Tools Engineer @ Nvidia
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
The docs do not mention it as something that's supported. Did support say anything ?

Sorry wywait I just don't have the time right now to dig into your file. If it did work and now does not you should be contacting support.

Rob
Gone fishing
User Avatar
Member
25 posts
Joined: June 2008
Offline
We've been in contact with support. It's a know bug. I believe they're looking into it.
User Avatar
Member
1390 posts
Joined: July 2005
Offline
Stalkerx777
Hi guys! Could you tell me is it possible to use fast point instancing with delayed load procedural on instantiated object?
It works fine with full point instancing, but not with new point_instance_procedural.Is it limitation or bug?
Ok, i know i can load bgeos right in point_instance_procedural with instancefile attribute, but in this case i need to assign materials somehow ( which is nicely done with delayed load and separate material.ifd file).
Thanks.

I don't think that's possible, because these two are both procedurals, and Mantra can't stack procedural geometry shaders (which would be awesome btw).
User Avatar
Member
599 posts
Joined: May 2011
Offline
wywait
Hey guys, Is it possible to use single scatter sss with the point instance procedural? I could have sworn I had it working earlier but recently all I get is black renders.

Don't think this ever worked. The problem is with how the SSS does the point cloud generation and the way Mantra's named scopes work. Scopes only work on top-level named objects, not named objects generated by procedurals.

We've introduced a new automatic scope, “scope:self”, which can be used as an argument to the “scope” parameter of the VEX raytracing functions to restrict them to the currently shading object only.

This allows fast point instanced objects to work with both single- and multiple-scattering.

Will be in tomorrow's build (H12.0.663).
Halfdan Ingvarsson
Senior Developer
Side Effects Software Inc
User Avatar
Member
691 posts
Joined: June 2006
Offline
:shock: Niceeee!!!
Feel The Knowledge, Kiss The Goat!!!
http://www.linkedin.com/in/alejandroecheverry [linkedin.com]
http://vimeo.com/lordpazuzu/videos [vimeo.com]
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
Half dan , can we get a working example of this ? . On a side has anyone be able to get a looped geometry animation coupled with a random offset per instance to work ? when using a file sop.



Rob
Gone fishing
User Avatar
Member
599 posts
Joined: May 2011
Offline
circusmonkey
can we get a working example of this ? . On a side has anyone be able to get a looped geometry animation coupled with a random offset per instance to work ? when using a file sop.

Attached is a scene that does both, except that instead of using the file sop, it uses the “instancefile” attribute to point to a bgeo at render time.

Attachments:
ptinst_sss.png (1.0 MB)
sss_anim.hip (1.2 MB)

Halfdan Ingvarsson
Senior Developer
Side Effects Software Inc
User Avatar
Member
25 posts
Joined: June 2008
Offline
That's awesome! Thanks guys. And it works with caustics. Score.

From what I can tell there's no extra setup either. Is that correct? Can you think of an example where one might want to pass custom arguments to the scope parameter?

Mike
User Avatar
Member
279 posts
Joined: Dec. 2009
Offline
Just another exemple.
92 614 instanced points
46 different characters (5000 polys each)
46 different textures
Edited by - July 2, 2012 12:21:31

Attachments:
cam4_daylit_rezise.png (682.6 KB)

User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
Hi fsimerey,nice work any chance you can make the image smaller currently it fills my browser . Feel free to show an example of how you did it or any hip files for others.
Gone fishing
User Avatar
Member
383 posts
Joined:
Offline
very nice work, fsimerey
I woud love to check an .hip file if possible : I am trying to make the same kind of stuff so …
http://vimeo.com/vbkstudio [vimeo.com]
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
instancefile >
I have created an instancefile attribute. the string reads $HIP/geometry/horse_v01.`padzero(4,$RANDOFFSET)`.bgeo . This is coupled with a looping attribute called RANDOFFSET . This way each frame in the sequences has a random start value and loops when I scrub the time line.

See image from details view. I scrub the time line and it works as expected. I render any frame below 80 which is when the loop resets and the objects render but with no offset per point in the animation. If I render over frame 80 which is past the original frame range and I get a blank render. Yet the attribute is correct and works.

This make me question just how does the instancefile work per point. Is it not able to read a sequence of bgeo files ? per frame with an offset. Even though as you can see from the image attached each point should get a different start frame and loop.

Rob

Attachments:
test.gif (28.1 KB)

Gone fishing
User Avatar
Staff
138 posts
Joined: Dec. 2010
Offline
Not sure exactly how you're using the looping variable in conjunction with the already randomly offset looping index value inherent in the file name. Seems redundant to carry around the extra RANDOFFSET point attribute, unless you're using it somewhere else.

This works for me:
grid->scatter->attribcreate
AttribCreate:
Name = instancefile
String = $HIP/horse_dir/horse.`padzero(4, wrap($PT + $F, 1, 100))`.bgeo
john mariella
Senior Technical Director
SideFX
www.sidefx.com
  • Quick Links