PDA

View Full Version : Some clarification needed about modeling a sphere through sub division



Lee_Jennifer_82
01-15-2016, 01:36 AM
Hello, I am going through some codes regarding generating sphere from continuous sub division. It starts from a simple tetrahedron bounded within a sphere. Next, each face of the tetrahedron is subdivided as follows:

suppose, a, b and c are three coordinates of a face of the tetrahedron.
Next the following three points have been generated as follows:

v1 = normalize(a + b);
v2 = normalize (a + c);
v3 = normalize(b+c).

My question, does v1, v2, v3 lie on the same plane as those of a, b and c. If not , why?

Any clarification will be highly appreciated.

Thank you!

__bob__
01-15-2016, 06:19 AM
A,b and c are in the plane of the face. Assuming that lengh(a)=lengh(b)=lengh(c)=1
V1 is the mid point between a and b, so V1 is in the face plane. And this is the same for V2 and V3...

GClements
01-15-2016, 11:30 AM
My question, does v1, v2, v3 lie on the same plane as those of a, b and c. If not , why?

In Euclidean coordinates, the midpoints (a+b)/2, (b+c)/2 and (c+a)/2 lie in the plane, while the sums (a+b), (b+c) and (c+a) don't, nor do v1, v2 or v3 in general (in particular, if a,b, and c have unit length, v1,v2,v3 can't lie in the plane).

More generally, if three points a,b,c lie in a plane, the point p=r*a+s*b+t*v only lies in the plane if and only if r+s+t=1 (i.e. if the weights sum to one).

As for generating a sphere through subdivision and normalisation, it's more common to start with either a cube, octahedron or icosahedron. A cube or octahedron will result in a mesh which is symmetric about the x=0, y=0 and z=0 planes. An icosahedron will result in a more uniform mesh (the resulting triangles will all be much closer to equilateral than for a shape with fewer faces), and one which is symmetric about one of the planes.

The shape of the triangles (or quads) nearest the original vertices is dictated by the original shape, while those in the middle of the faces will tend toward being equilateral triangles (or squares). For a tetrahedron, the triangles adjacent to the original vertices will have one angle of 120 degrees plus two of 30 degrees. For an octahedron, its one of 90 degrees plus two of 45 degrees. For an icosahedron, it's one of 72 degrees plus two of 54 degrees. For a cube, the quads adjacent to the original vertices will have one angle of 120 degrees.

Lee_Jennifer_82
01-15-2016, 09:57 PM
Thank you so much for the clarification GClements.

Lee_Jennifer_82
01-16-2016, 01:28 PM
Hello, just asking for another clarification. Do I need to always bind the base tetrahedron, hexagon or octahedron in a unit sphere by normalizing the vertices? Why?
Thank you.

GClements
01-16-2016, 07:12 PM
Hello, just asking for another clarification. Do I need to always bind the base tetrahedron, hexagon or octahedron in a unit sphere by normalizing the vertices? Why?

If you're creating a sphere, all of the vertices need to be at the same distance from the centre of the sphere.

When you subdivide, you typically add the new vertices and keep the original vertices. Both sets of vertices need to be normalised to the same size. Also, you should normalize the vertices as they're created (before you use them for the next level of subdivision); that results in a more constant scale factor than normalising all of the vertices afterwards.