位置: 编程技术 - 正文
推荐整理分享OpenGL二十面体及多次细分成球体(正二十面体怎么建模),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:二十面体画法,二十面体平面展开图,二十面体平面图,正二十面体建模,二十面体展开图粘贴面,二十面体展开图,二十面体展开图,二十面体展开图粘贴面,内容如对您有帮助,希望把文章链接给更多的朋友!
绘制一个规则的二十面体,通过多边形近模拟法来构建表面。
在绘制前,我们需要初始化一些数据:
然后再进行绘制:
但是光光是这样,是看不出它是个什么。
但是可以通过调用glPolygonMode函数,来设置多边形的显示模式。现在把它设置为GL_LINE模式:
然后我们看下效果:
现在能看出点什么了把?
现在,我想让这货看起来更加有立体感,我要给它添加一个光照(先取消GL_LINE模式)。在添加光照前,需要计算一下它的一些法线向量。计算方法,我参照了OpenGL编程指南上的代码:
法线弄好了,那么就来添加一下光照,首先,需要一些初始化数据:
参数可以根据自己需求设定,上面是白光。
然后进行光源的设置:
OK,这些设置好后,把上面绘制那部分修改一下就可以看到一个比较不错的二十面体了。修改如下:
看下效果:
有时候,我们需要绘制一个球体,那么就可以通过这个二十面体进行绘制,只不过需要做一些额外的事情。
我们可以想象,这个二十面体,我可以在一个球体上进行切割得到,同样,如果我切的多一点,细一点,那是不是很接近球体,那么,也就是说,我们可以通过这个二十面体进行多次细分,这样,就可以得到一个球体。
下面是细分的代码:
在上面代码中,看到了drawtriangle的函数,其代码如下:
然后,再修改绘制那一部分代码即可。修改如下:
OK,我们现在来看一下1次细分,2次细分。。。的一些效果:
可以看到,细分的次数越多,则越趋向于一个球体。
最后,我贴一下整个程序的源代码:
To be continued~
opengl光照 Blinn-Phone模型与实现 这里介绍的方法,考察从光源发出的光线,这些光线与物体表面相互作用进行建模,这个方法和光线追踪类似,但是只考虑光源与表面之间的一次相互
深入理解OpenGL拾取模式(OpenGL Picking) 深入理解OpenGL拾取模式(OpenGLPicking)转自
如何使用Android中的OpenGL ES媒体效果 Android的媒体效果框架允许开发者可以很容易的应用多种令人印象深刻的视觉效果到照片或视频之上。作为这个媒体效果的框架,它使用GPU来处理图片处
标签: 正二十面体怎么建模
本文链接地址:https://www.jiuchutong.com/biancheng/369456.html 转载请保留说明!上一篇:5.2光源
友情链接: 武汉网站建设