33] Phong edges, By Charles Blaquiere.the surface normal between the current face and the neighbouring face, if the connecting edge is not flagged "sharp". An example:Remember that Phong shading interpolates
| 0
| 1
| 2
| 3
__| 4
5
When modelling a wine glass, You'd typically have
long faces on the sides of the glass, leading to tiny faces representing the
top surface of the rim (obviously, my diagram is upside-down. Mmmm, let's
make our object a glass cover that fits over the cheese tray. Yeah, that's it).
The numbers represent some abstract
kind of angle, with 0 representing surface normals that point to the right,
and 5 those that point downwards. You see how the surface normal changes
all over the large face, from 0 to 5, all because of the tiny rim.
This causes the "flat areas seem to bulge like pillows" problem familiar to new
3-D users.
The standard ways to get around this are:
- define the connecting edges as sharp. This is fine, if You
want a sharp look to the corner.
- create intermediate faces between the vertical and horizontal
faces.
The second strategy will soften the
effect, but the long vertical face's surface normal will *still* vary
towards the normal of the next, almost-vertical, face.
In my modelling bag of tricks I have a solution that
allows me to have my cake and eat it too: perfectly flat-looking areas
where I want them, soft corners where I want them, all with a minimum of
faces to keep object complexity down.
I just model the large, flat area in two
parts, and make the edge part really skinny. I can then leave all edges
soft, so there won't be any discontinuities, yet the large flat area will look
perfectly flat.
|0
|0 | = large flat area (one set of faces)
|0
|0
|0 I = another set of faces, parallel to the large
I0 set. Should be very narrow, just running
____I2.5 along the Edge that connects to the horizontal
5 3.7 face.
In this case, both "|" and "I" faces have a
surface normal of zero, and "_" faces have a surface normal of 5.
The "_" and "I" normals vary from 5
to zero as expected. The big difference, however, is that the "|" edges have
normals that vary FROM ZERO TO ZERO. Badabing, badaboom.
------------------------------
... Please Return to News ...
... Please Return to Index ...
------------------------------