I am trying to create a fire extinguisher.
When I use Set Smooth on the model and render black streaks appear that are not there when it is not Set Smooth.
I tried Control-n to recalculate the normals but that did not work.
Thanks!
Attachments
fire.blend (152 KB)
Spectre-7
(Spectre-7)
December 4, 2009, 10:35pm
2
The short answer: You need to use Auto-Smooth, add an EdgeSplit Modifier, or manually set which edges are sharp/smooth.
The long answer:
When you Set Smooth, it tells Blender to average normals across faces, resulting in a smooth gradient instead of the faceted surface you would get otherwise. It’s a nice technique, but runs into some problems when there are sharp angle between faces; it really works best when the faces its operating on have a shallow angle between them.
EdgeSplit operates as its name implies. It looks at the angle of every edge, and if it’s steep enough, disconnects them. This prevents smoothed shading across those faces, which is highly desirable on virtually any non-organic shape.
For a clearer understanding of how EdgeSplit works, take one of your example cylinders and Apply the EdgeSplit modifier, then Tab into Edit Mode and move some faces around. You’ll find that the caps of the cylinder are no longer connected to the rest of the mesh.
Thanks!
More of a techinal curiosity…
Why do only some of the edges have streaks if all of the faces are at the same angle?
Spectre-7
(Spectre-7)
December 4, 2009, 11:41pm
4
The streaks are caused by an interaction between the smooth shading and the placement of your lamps. If you rotate the lamps around the fire-extinguisher, you’ll notice that the streaks follow them. Why does that come out as a streak? Not completely sure… I’d have to know the shading algorithm a lot more intimately than I do.
ccherrett
(ccherrett)
December 5, 2009, 1:54am
5
You need to recalculate normals outside.
Ctrl+N in 2.49 in edit mode. But select all verts first.
jezzabetz
(jezzabetz)
December 5, 2009, 2:08am
6
if you read the first post, it says he already tried CTRL+N