Sign in to follow this  
Dmytry

Some non-standard way to tesselate sphere(?)

Recommended Posts

Dmytry    1151
For some need i thought how to divide spherical surface into something that looks like hexagons. I got idea:if we will place many points on spherical surface that summ of inverse distances between point are minimal* then if we will do voronoi-on-sphere for that points,i guess with many enough points we will have mostly hexagonal cells covering the sphere. So i'm wondering if someone knows something about it and algorithms to find that points efficiently. i know it not that much related to games(and can be moved to lougne if needed) but actually result may be used in games too bit - i think such minimization gives best possible tesselation of sphere. *Physical analogy: all points have same charge,how to place points on sphere that energy of the system are minimal? (each point push other points apart)

Share this post


Link to post
Share on other sites
Eelco    301
one way to cover a shpere with quite regular triangles, is to take a 20-sides primitive, an isocahedron or something, and subdivide these triangles. if you do it right, you can get as little as 8% surface area difference between the biggest and smallest triangle (ive tested this extensively, im not pulling this out of my ass [grin])

taking a bunch of point and spreading them across a sphere also crossed my mind, but ive never implemented it. on thing to worry about i think is the number of points. if you have a certain number patterns might appear or unsymmetrical uglyness. i wouldnt try to find a closed-form solution to this btw, but rather a numerical solver.

Share this post


Link to post
Share on other sites
Timkin    864
Quote:
Original post by Dmytry
I got idea:if we will place many points on spherical surface that summ of inverse distances between point are minimal*


This is simply the notion of a regular equilateral grid in spherically-curved 2-space. Nothing new here, sorry.

Timkin

Share this post


Link to post
Share on other sites
Dmytry    1151
Eelco-
Yes,i wanted to use icosohedron...i'll have only 12 special points where i'll have pentagons instead of hexagons.
(i haven't knew about 8% ,it's interesting.
It's possible to use icosohedron as starting point,and must be possible to then use results to alter points of icosohedral subdivision....

Timkin-

wow.
i anyway haven't expected it's new,was just hard to find something in google w/o right words.


Thanks to all:)

Share this post


Link to post
Share on other sites
Eelco    301
Quote:

Eelco-
Yes,i wanted to use icosohedron...i'll have only 12 special points where i'll have pentagons instead of hexagons.
(i haven't knew about 8% ,it's interesting.
It's possible to use icosohedron as starting point,and must be possible to then use results to alter points of icosohedral subdivision....

you are sure you have to go with pentagons? regularly subdividing them is harder i think... the higher tesselated you start out with a completely regular polygon, the more regularly tesselated the result. if you start with a cube, results are much worse than with an icosohedron. and results of a four sided regular primitives are worse again.

if you want i can provide you with the algorith to generate the points for an icosohedral. btw a 20 sided primitive has 12 vertices, wheras the 12sided dodecahedron with the pentagonal faces has 20 vertices.

mathworld is your friend: http://mathworld.wolfram.com/topics/PlatonicSolids.html

Share this post


Link to post
Share on other sites
Dmytry    1151
Quote:
Original post by Eelco
Quote:

Eelco-
Yes,i wanted to use icosohedron...i'll have only 12 special points where i'll have pentagons instead of hexagons.
(i haven't knew about 8% ,it's interesting.
It's possible to use icosohedron as starting point,and must be possible to then use results to alter points of icosohedral subdivision....

you are sure you have to go with pentagons? regularly subdividing them is harder i think... the higher tesselated you start out with a completely regular polygon, the more regularly tesselated the result. if you start with a cube, results are much worse than with an icosohedron. and results of a four sided regular primitives are worse again.

if you want i can provide you with the algorith to generate the points for an icosohedral. btw a 20 sided primitive has 12 vertices, wheras the 12sided dodecahedron with the pentagonal faces has 20 vertices.

mathworld is your friend: http://mathworld.wolfram.com/topics/PlatonicSolids.html


Actually i don't want to subdivide pentagons... i meant that,if i subdivide each face of icosohedron into triangles and then will draw something like voronoi around vertices of faces,i will have mostly hexagons and 12 pentagons at the vertices of icosohedron...it's generalization of this

but with lot more small hexagons and 12 small pentagons.
edit: images....

Share this post


Link to post
Share on other sites
Etnu    880
I start with an 8 sided tetrahedron, and then, depending on the tesselation level, divide each triangle of the tetrahedron up into 4 triangles.

Once everything's subdivided, I simply push all points out to the desired radius.

It works well, looks good, and is fast to calculate.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this