Not sure what's going on here

Hi all, I have this screenshot of a cycles viewport. It’s showing weird tessellation on the mesh. There is a subdiv modifier on at level 4 on viewport and on render. Object is set to smooth shading. I’m not sure what I’m missing here.

Hello. Are you in orthographic mode? That can some times give strange artifacts.

Couple of questions: did you set smooth in Object mode or Edit mode? Not sure about 2.80, but I think that if you set smooth in Edit mode in previous versions of Blender, it would only apply smooth to the selected faces. If you set smooth in Object mode, it would apply to all faces in the mesh.

Secondly, your subdivision modifier - is it set to Simple are Catmull-Clark?

I can see from your screenshot that you are in Perspective view, so I’m guessing it isn’t related to orthographic view.

Smooth was done in Object mode and it is set as Catmull-Clark. I should mention that this only occurs in Cycles and not in Eevee.

Does it only happen when rendering in the viewport?

Unfortunately not. This is with Subdivision modifier level 4 on render as well.

This is called the terminator problem. Smooth shading is a trick to make it look like there’s more geometry than there is, but path-traced light can only work with the geometry that is actually there. The only workaround is a denser mesh (or just avoiding harsh shadows with bigger/softer lights, extra fill lights etc.)

1 Like

Yes…I learned this as I posted this. I was hoping that there’s been a fix. Does this exist in other software packages?

Do you have same problem when you remove normal map? I had similar problem once

share the file so we can analyse your scene

I’ve already accepted this to be an innate issue embedded in how Cycles works. Terminator problem seems to be an unsolvable issue.

Adequate geometry takes care of the terminator problem, which subdiv lvl 4 should do. It has to be something else. Does it happen without the texture? Does it change when reducing the bump effect? Also try increasing the size of the lamp somewhat, what kind of lamp is it anyway?

Share, and someone should investigate properly - not me though as I don’t have proper PC yet.

Enable Experimental Cycles features, add a Subdivision Surface modifier if you don’t already have one (perhaps with display set to zero because life is too short to wait for 2.80 unaccelerated opensubdiv right now), check the Adaptive box in the modifier, then hit F12 and that should fix it right up.

Thank you for your input, but unfortunately, nothing has changed.

Share the scene if you can.

Tried it on my crappy laptop. Jpg format is used for textures, but not the source of the problem. I changed to metric and everything seemed to scale (forgot to check if scale was applied, which is one of the usual suspects for pretty much anything).

Replacing material with simple diffuse and changed HDRI to use a single 0.005m sized sun lamp, I had to up the subdiv to 6 for the terminator issue to become small enough to be considered acceptable. That is horrendous.

if you really need to keep it low/mid poly you might want to bake the normals from a high poly one, that should correct the shading

Adaptive subdivision seems to do a good job of solving the problem, but currently it does not work right in 2.80 Cycles preview mode. You need to do a real render through a camera and then it should work fine. I bugged the issues with preview a while back but they haven’t been fixed yet. Beware of working in preview mode with adaptive subdivs, as it may go berserk (allocating memory without limit) and require you to kill blender, so save early, save often.