strange subdivide + smooth artifacts

greetings, I’m new to blender. When I add an uvsphere to the scene and start subdividing it with the subdivide button, and after that I set smooth and render, I get ugly artifacts. I really don’t know what’s happening, because for me the more subdivided a mesh is the more it should look smooth?

Here is the uvsphere without subdivide and with set smooth
http://img229.imageshack.us/img229/3204/10297110.png

here is the uvsphere after clicking subdivide 2 times and with set smooth. note the shading artifacts
http://img691.imageshack.us/img691/7009/56846161.png

blender version is 2.49b, platform is vista 64 bit (but blender 32 bit version)

If you want it smoothing use a subsurf modifier.
With just a subdivide you are creating flat surfaces between the original edges so smooth will have no effect in these areas, enhancing the original edges.



On the left the original, on the right subdivided two times.

but why it does not have artifacts when I click subdivide only one time in the uvsphere? Subdiving all its faces more than one time makes those artifacts appear, I really want to understand why this happen after the second subdivide

Smoothing affects adjacent faces. I’ve simuted the effect with a bezier circle. Switching between vector and bezier handles simulates this flat/smoothing effect. With no subdivision it smooths across the whole face, with subdivision it cannot do this because you have a flat plane between each angular face. The more subdivisions, the greater the effect. With one division it still shows this but to a less noticeable degree.
http://www.screencast.com/users/blenderwho/folders/Jing/media/90574ba8-276c-4a93-afc5-047609cf11ab

I noticed the same thing happen with a cube. Without any subdivision, if I set smooth, it renders like if it was per pixel lighting? When I subdivide the cube 2 times or more, ugly artifacts appear. Is it that set smooth in blender 2.49b works as a phong shading (per pixel lighting), different from gouraud (per vertex lighting)? if it was gouraud, I think rendering a cube without any subdivide applied would not give this result?
http://img63.imageshack.us/img63/9202/66018699.jpg

Try activating Auto Smooth under Mesh tab for cube.

tried autosmooth, if it is set then the cube is rendered like with flat shading. In the case of the uvsphere, it has no effect.

I’ll try to re-explain what Richard has already explained:

The issue is that there is a difference between subdividing, and subsurfing. Subdividing takes each face, and finds the mid-point of the edges, and then cuts the face into four pieces. To do this it creates five new vertices, one on each of the old edges, and one in the middle. It places each of these new points ON THE ORIGINAL FACE. Thus, although you have extra geometry, your face is as flat as it was.

Subsurfing, however, creates the new points, but places them on a curved surface, dependent on the normal at that location, so that they all follow the theoretical curve that the original face was mimicking.

The rendering of a face, regardless of gouraud, or any other method, takes the normal at each corner of the face, and smooths the apparent normal across the face. However, if you have subdivided the original face, the faces in the middle of the original face are all parallel to the original face, and have all of their normals pointing in the same direction, so they will look flat. Only those faces that are immediately adjacent to the original edge will have their normals pointing in different directions, and thus only those faces will be shaded as ‘curved’. The more you subdivide the faces, the narrower a band around the original facet will be ‘curved’, and thus the edges will become more and more noticeable.

Subsurfing not only interpolates the points onto a curve, but also interpolates the normals onto the curve as well, so the surface becomes smoother, the more you subsurf.

You can see this if you apply a subsurf to a cube. It will become a sort of sphere, but as you subdivide the cube, it will more and more closely resemble a round edged cube again.

The smoothing is dependent on the angle between the faces. Angles sharper than the autosmooth setting will not be smoothed. Also, to apply smooth, you have to be in edit mode and have the faces/edges selected.

HTH
Matt

I perfectly understand the difference between subsurf with catmullclark algorithm and subdivide, but like you said, if I subdivide a face I will get faces in the middle that are all parallel to the original face and have all of their normals pointing in the same direction, so they will look flat. So why is it that if I subdivide all faces of a cube 3 times, I get this?
http://img713.imageshack.us/img713/1192/13839540.jpg

smooth is on, and all the faces have their normals recalculated outside. Despite being parallel, I get those strange results. If it is not a problem, I want to understande what is happening and why I’m getting those blackened areas.

The scene is the default new scene in blender 2.49b, with a simple cube and a lamp. I just subdivided all the cube faces 3 times and set smooth before rendering

Just did the same thing and everything was fine. Post your blend so I can check for wierdnesses.

Matt

here it is, maybe a problem in my blender installation?

http://www.easy-share.com/1911064098/cubeweird.blend

tried the yafaray direct light and photon maping renderers but the problem is there too. Seems to me it happens when you have 3 or more connected flat faces parallel to each other and set “set smooth” for them. For example, a cube with all faces subdivided one time does not present this problem, if I subdivide one more time (the cube now have 4 connected flat faces parallel to each other in each face) the problem starts (with set smooth in all faces).

Just tried the same thing with both your file and another. Setting a 90 degree edge to smooth leads to artifacts. Making the edge more obtuse resolves the issues. Obviously, normally you would not try to smooth an edge so sharp. Bevelling it makes the artifacts go away.

Matt

I do not yet understand why this is happening, guess I will have to take a 3d graphics book to verify if the blender smooth function is correct or has an issue. But thanks for the help