My good friend Gustavo (pushing boundaries as always!) recently posted a question about rendering “broken” edges similar to VRay in modo. For the uninitiated, when VRay sees a perfectly sharp edge, it somehow softens the edge ever-so-slighting, adding a tiny highlight and hugely improving the perceived realism of the model.
Modo has no such feature at the moment. The ideal solution would be for 601 to… ahem… add this feature! In the meantime, Gustavo had a clever idea: why not use modo 501′s new Occlusion item in the shader tree to try to fake it? I decided to give it a shot:
01 Nothing Special: As you can see, the edges in this model are rendered “correctly,” i.e. perfectly sharp. Unfortunately, while technically correct, the result looks flat and very CG. Note: in order for this to look nice and sharp, I disabled ‘smoothing’ on the object’s material, and left it disabled for all of the experiments below.
02 Occlusion as Diffuse Amount: Here I’ve added a ‘Concavity & Convexity’ Occlusion map to the surface, and used its output to affect Diffuse Amount. This brightens the edges a bit, which looks fantastic on the edges on the light-side of the object, but a little false on the areas in shadow.
03 Occlusion + Gradient: I used the Occlusion map from number 02 above as a mask for a Gradient layer with Incidence in and Diffuse Amount out. This way I could vary the brightness of the edges according to the viewing angle, which definitely helps the visual believability of the highlights by obfuscating the effect a bit, but it’s obviously even less technically accurate than the Occlusion layer alone.
04 Occlusion as Normal: I have a feeling that somehow I should be able to use a Normal map to achieve the desired effect, but I couldn’t make it work. It seems to have promise, but so far I haven’t figured anything out. Suggestions would be appreciated!
05 Occlusion as Bump: I also tried using the Occlusion output as a bump layer, but the results are slow to render, very grainy, and overall not very convincing. I’m pretty sure this one’s a no-go.
Does anybody have any ideas?
|
Adam O'Hern is an industrial design consultant specializing in visual brand languages, and has designed products ranging from laptops to power tools, classroom toys to bathroom fixtures, and robots to lint rollers. He has published with 3DWorld Magazine, CGTuts+, and Luxology, and works with Josh Mings of SolidSmack.com on EngineerVsDesigner.com. |












That’s correct! I’ll do a video on it sometime soon.
Interesting.. I still haven’t played with the PSubs stuff, just watched the spotlight video. So are you saying that I could have a low poly model (like the example), go into PSubs mode, and just set all the edges to almost-sharp without having to add any additional edge loops to keep the faces flat? If so, that sounds pretty cool.
Thanks
- rdo
Interesting post–I’m a SolidWorks + modo guy, so I don’t have any experience with Vray. If I understand correctly, it seems like you’re basically trying to simulate small rounded bevels/fillets on all the hard edges for the render pass only. It might help to actually add that to the modo model (I think you’d either have to use subd or turn material smoothing back on for it to work properly) in order to create a reference/target image for comparison. (However I do see the benefit to not having to actually change the geometry, in terms of keeping the model simple and making changes easier).
Also, if the model were created using subd geometry in the first place, the edges would end up being rounded (however slightly, depending on your edge loop placement/weighting) and that could be enough.
I got modo 501 but haven’t had a chance to play with the occlusion textures yet. Seems like they have a lot of interesting potential though.
- rdo
Hi Ryan:
You understand correctly! You are correct that the problem could be solved by adding edge bevels and/or using SubD’s. These days the best way would probably be to use PSubs with edge weights. But SubD’s are much heavier than low-poly models, and more importantly, it’s just a lot more work! It would be great to be able to simulate tiny fillets or edge bevels without having to actually build them. VRay already does this, and it’s a huge productivity boost!
Thanks for chiming in. Keep in touch!
Adam