Roger Ridley
RogerRidley
About Me
Connect
LOCATION
Not Specified
WEBSITE
Houdini Skills
Availability
Not Specified
Recent Forum Posts
Ambient occlusion on my Groom? Nov. 14, 2024, 1:09 p.m.
Hi all,
Is there a quick and easy way to get an ambient occlusion pass for a groom? I see there’s the Labs "physical_ambient_occlusion" node, but it just turns my groom black, while my mesh (at the same scale) gets a nice occlusion pass. I suspect occlusion on groom curves isn’t supported yet, or maybe I need to set one of the parameters differently? Do you know if there’s a workaround?
Ultimately, I’d like to add the occlusion pass into a vector attribute (for RGB packing).
Thanks!
EDIT: I was able to get some AO on my groom by setting "Ray Offset" to .1 with the Labs physical_ambient_occlusion node. Must be something with how the occlusion is calculated on high detailed objects? Per SideFx doc.
Is there a quick and easy way to get an ambient occlusion pass for a groom? I see there’s the Labs "physical_ambient_occlusion" node, but it just turns my groom black, while my mesh (at the same scale) gets a nice occlusion pass. I suspect occlusion on groom curves isn’t supported yet, or maybe I need to set one of the parameters differently? Do you know if there’s a workaround?
Ultimately, I’d like to add the occlusion pass into a vector attribute (for RGB packing).
Thanks!
EDIT: I was able to get some AO on my groom by setting "Ray Offset" to .1 with the Labs physical_ambient_occlusion node. Must be something with how the occlusion is calculated on high detailed objects? Per SideFx doc.
export groom_root_uv to unreal Oct. 8, 2024, 8:45 p.m.
To anyone else looking for a solution besides the Labs Unreal Groom Exporter.
1) Before the ROP Alembic export make an attribute wrangle with this code:
float u = f@groom_root_uv;
float v = f@groom_root_uv;
v@uv = set(u,v,0);
2) Then delete the groom_root_uv attribute with an attribute delete or some other way.
3) Import the saved-out cache into Unreal..
I honestly have no idea why this works, but it does.
1) Before the ROP Alembic export make an attribute wrangle with this code:
float u = f@groom_root_uv;
float v = f@groom_root_uv;
v@uv = set(u,v,0);
2) Then delete the groom_root_uv attribute with an attribute delete or some other way.
3) Import the saved-out cache into Unreal..
I honestly have no idea why this works, but it does.