VistaPro
John,
You must be misunderstanding me at a very fundamental level because you're
arguing my half of the argument!
Consider the following surface (I not going to make the surfaces "rough"
because that's to difficult to show in ascii):
.——-.——-.——-.——-.——-.——-.
. = point
– = face
which gets split into two seperate objects with seperate point and face
(enumeration) lists:
Joint
|
.aaaaaaa.aaaaaaa.aaaaaaa.
.bbbbbbb.bbbbbbb.bbbbbbb.
. = point
a = face on object a
b = face on object b
Drawn with vertical separation for clarity.
There may be an obvious shading discontinuity at the joint. But if you overlap
the edge:
Joint
|
.aaaaaaa.aaaaaaa.aaaaaaa.aaaaaaa.
.bbbbbbb.bbbbbbb.bbbbbbb.bbbbbbb.
Each object is seperately shaded, and since they are the same shape in the
overlaped region, the shadings match at that joint. Now you lower the loose
end of each object to be sure it falls below the other object by a very small
amount — enough so that the renderer renders it behind the other object, but
not so much that it affects shading:
Joint
|
.aaaaaaa.aaaaaaa.aaaaaaa.
.bbbbbbb.bbbbbbb.bbbbbbb.
b a
b a
b a (vertically exagerated
b a for clarity)
b a
b .
.
The intersection consists of two points, one in each objects point list. I
don't expect the renderer to smooth across objects, just that it will calculate
the same shading for each object at the point of intersection, yielding a
seamless joint.
This technique breaks, of course, if you view the object from below — the
flaps will be clearly visible. Another area where there might possible
problems is in inaccurate shadows.
John.