Bryan Bentley

BryanErvinBenley81

About Me

Bryan Ervin Bentley is a seasoned digital artist and educator with over two decades of experience in visual effects, animation, and technical direction. He has held leadership roles at CG Spectrum College of Digital Art and Animation and Savannah College of Art and Design’s Hong Kong campus. His ...  more
EXPERTISE
Generalist
INDUSTRY
Film/TV

Connect

LOCATION
Wan Chai, Hong Kong
WEBSITE

Houdini Skills

ADVANCED
Procedural Modeling  | Environments  | Character Rigging  | Hair & Fur  | Cloth  | Karma  | Lighting  | Destruction FX  | VEX  | Python
INTERMEDIATE
Digital Assets  | Motion Editing  | Animation  | Muscles  | Solaris
BEGINNER
Mantra  | Pyro FX  | Fluids  | Realtime FX

Availability

I am available for Full Time Work

Recent Forum Posts

Faceting in Displacement Map From Copernicus Dec. 11, 2024, 3:46 a.m.

Greetings,

First off. COPERNICUS IS AMAZING!! I have wanted a system like this for so long. I know it is in beta so there are many kinks but it has massive potential already..... so many crashes. lol.

I have successfully implemented planar projection for decals and subrance style warp projection. Now I am trying to do displacement generation from a high and low poly mesh.

I am currently attempting to replicate the functionality in the mapsBaker node. My logic is that the mapsBaker node works in the old cops system and copernicus can do everything cops can do with geometry.

I am very close. I can get the overall shape but the displaced mesh has visible faceting from the low poly mesh.

here is the vex I am using in a copernicus wrangle
int prim;
vector uv;
vector hitPos;
vector dispDir;
float dispSwtich;
float dispMag;

// origP is the rasterized low poly world positions
//dispMag is the length to the hit
dispMag = xyzdist(1, v@origP, prim, uv);

//get position on high poly mesh
hitPos = primuv(1, "P", prim, uv);

//get the normalised direction to the high polygon mesh
dispDir = normalize(hitPos-v@origP);

// check the direction against the rasterized low polygon normal
dispSwtich = dot(v@N, dispDir);

//if the direction is opposite the normal direction reverse the displacement value
if(dispSwtich<0){
    dispMag *=-1;

}

@disp = dispMag;

I am basing it off of the code form the maps baker:
float incrementX = (1.0/$XRES);
float incrementY = (1.0/$YRES);

float offsetX = incrementX * 0.5;
float offsetY = incrementY * 0.5;

vector udimoffset = detail($LOW, "__udimoffset", 0);

vector WorldN = $vec;
vector MyN = uvsample($LOW, "N", "uv", set((($IX+1)*incrementX - offsetX) + floor(udimoffset.x), (($IY+1)*incrementY - offsetY)+ floor(udimoffset.y), 0));
vector lowpos = uvsample($LOW, "P", "uv", set((($IX+1)*incrementX - offsetX) + floor(udimoffset.x), (($IY+1)*incrementY - offsetY)+ floor(udimoffset.y), 0));

$DISP = distance($pos, lowpos) * $Alpha;
$DISP = ($Alpha == 0.0) ? 0 : $DISP;

if (dot(normalize(lowpos-$pos), MyN) >= 0) {
    $DISP *= -1;
}

if ($RemapHeight == 1)
    $DISP = fit($DISP, $HeightRange.x, $HeightRange.y, 0, 1);

I have attached an image of what I ma getting in lops as well as the example file.



notes:
I have enabled subdivisions on the sop import node. it helps but the faces can still be seen on the resultant rendered mesh.
I have tested the dicing quality from .1 to 1 and the faceting remains
If I send a generic noise from copernicus to lops there is no faceting> I can see the UV seams but I think that is expected as the pattern becomes discontinuous at those locations.

here is a screen grab of the setup:


Any suggestions or help is much appreciated.

Cheers!

Tops rendering not starting/hanging, how to troubleshoot? Nov. 1, 2024, 7:36 p.m.

Greetings all,

I am rendering passes for a project and I am trying to use tops to automate the process. I am a bit new to tops and I have hit a small snag.

I have several ropfetch nodes chained together with waitforall nodes in-between, I just want the next node to start after the first finishes and so on.

One of the ropfetches just hangs forever. If I just run the usdRenderRop node in lops I get a frame out around every two mins, but in tops it just works on the same work items for hours. I let it render overnight and it did not produce any frames.

Some settings:
Frames per batch: 2-5 (tried these numbers and still hangs)
Local Scheduler: 4-5 (did to save some work treads so I can still use my comp if needed. I am unsure if this is the correct setting for this)

I generally like to upload a small example of the problem but this is so integrated into the shot I am working on I am not sure how isolate and recreate the problem.

Does anyone have any tips on troubleshooting what is going in tops or any gotchas.

Any help is much appreciated.

Cheers
B

Content Library Rigs Nov. 14, 2023, 5:53 a.m.

I have also looked at this and it looks amazing there are a few things that are baffling me tho.

1. What is the red "load tools" python node near the top of the rigging stack doing?
2. In the rigging section, were is the raw data for all the stash nodes that are driving the functionality of most of the rig past the fkrig setup component
3. Why doesn't the geom deform with the scene animate at the end of the rigging stage, but deforms in the animation stage, when both are using a scene animate and invoke node.

Sorry if these are obvious, but i am coming from rigging in maya so it'll take some time to get used to the whole deferred calculation paradigm.

This system is both exciting, confusing, and terrifying all at the same time. lol

I look forward to hearing from you.

Cheers,
B