关于画球一开始真是一点思路都没有,楼主也查了好多资料,比较有代表性的是两篇帖子。
一篇是Jasper Flick的帖子,一个很厉害的人:
http://www.binpress.com/tutorial/creating-an-octahedron-sphere/162#comments
这一篇的思路是根据柏拉图体,正八面体分割成的球。
第二篇是OpenGL或者XNA回答的思路,是根据柏拉图体正二十面体画的
http://gamedev.stackexchange.com/questions/31308/algorithm-for-creating-spheres#
如果你能直接看懂上面两篇中的任何一篇,那么楼主下面写的对于你来说都是废话,你可以直接不用看了。
一、思路
简单的说下,首先是画出一个正八面体,这个我们上一篇文章:Unity Mesh(二) Mesh画立方体和八面体,已经写了怎么画正八面体,然后我们的思路是取每条边的重点,细分三角形,比如那正八面体的一个面来说,我们拆分一次的情况如图所示:
两次的情况如图:
以此类推,根据前面两篇我们可以了解到,Mesh画图形必须知道三角形的顶点和三角形的点顺序,这样的话我们需要知道的参数有三个,三角形的顶点数,三角形的个数,三角形的顶点顺序。
下面我们根据这三个数据的要求,一次进行计算说明。