位置: 编程技术 - 正文
推荐整理分享OpenGL--图元(OpenGL图元管理),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:OpenGL图元类型,OpenGL图元管理,OpenGL图元管理,opengl图元的种类,opengl图元是什么概念,opengl图元装配,OpenGL图元管理,OpenGL图元管理,内容如对您有帮助,希望把文章链接给更多的朋友!
基础概念 1,图元:组成3D物体最小的单位,包括:点,直线,多边形。就和化学里所有物体都是由原子组成的一样。 2,点:数学上的点,只有位置,没有大小。但在计算机中,无论计算精度如何提高,始终不能表示一个无穷小的点。另一方面,无论图形输出设备(例如,显示器)如何精确,始终不能输出一个无穷小的点。默认情况下,OpenGL中的点将被画成单个的像素,虽然它可能足够小,但并不会是无穷小。同一像素上,OpenGL可以绘制许多坐标只有稍微不同的点,但该像素的具体颜色将取决于OpenGL的实现。当然,过度的注意细节就是钻牛角尖,我们大可不必花费过多的精力去研究“多个点如何画到同一像素上”。 3,直线:数学上的直线没有宽度,但OpenGL的直线则是有宽度的。同时,OpenGL的直线必须是有限长度,而不是像数学概念那样是无限的。可以认为,OpenGL的“直线”概念与数学上的“线段”接近,它可以由两个端点来确定。 4,多边形:是由多条线段首尾相连而形成的闭合区域。OpenGL规定,一个多边形必须是一个“凸多边形”(其定义为:多边形内任意两点所确定的线段都在多边形内,由此也可以推导出,凸多边形不能是空心的)。多边形可以由其边的端点(这里可称为顶点)来确定。(注意:如果使用的多边形不是凸多边形,则最后输出的效果是未定义的——OpenGL为了效率,放宽了检查,这可能导致显示错误。要避免这个错误,尽量使用三角形,因为三角形都是凸多边形) 5,多边形细节:一,多边形可以通过glPolygonMode来指定绘制的模式,包括填充,线框,点三种模式。二,相邻的填充多边形如果共享一条边或一个顶点,共享部分像素只绘制一次,它们只包含在其中一个多边形中。三,多边形具有正面与背面之分,默认逆时针连接的顶点所围成的面是正面,可以通过glFrontFace改变。四,可以通过glCullFace剔除不需要绘制的面,提高效率。五,opengl只能渲染凸多边形,而为了绘制非凸多边形,一般把他们分解为几个凸多边形,然后再分别绘制。然而这种做法我们就不能使用glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)来绘制它的真正轮廓了(即内部的边也会绘制),这时我们可以通过glEdgeFlag来标志顶点是否是边界边,默认顶点都是边界边。(默认逆时针连接时,对于非边界边就不会绘制) 6,可以想象,通过点、直线和多边形,就可以组合成各种几何图形。甚至于,你可以把一段弧看成是很多短的直线段相连,这些直线段足够短,以至于其长度小于一个像素的宽度。这样一来弧和圆也可以表示出来了。通过位于不同平面的相连的小多边形,我们还可以组成一个“曲面”。 注:它们的实际渲染其实还受是否开启了抗锯齿处理和多重采样功能的影响,如果没有开启,像一些尺寸大小会进行四舍五入取邻近的整数值,而开启了就允许使用非整数的宽度,这样位于边界处的像素一般会画得淡一些。 7,OpenGL的图元总共有种:如下图,
实例程序 示例1:画出正玄函数的图形
示例2:直线点画模式(其实就是画虚线)
示例3:多边形的点画模式
GLSL经典入门教程汇总 权威官方文档:
OpenGL纹理映射 学习texturemap纹理映射(贴图)有很多好处。比方说您想让一颗导弹飞过屏幕。根据前几课的知识,我们最可行的办法可能是很多个多边形来构建导弹的轮
OpenGL 资源汇编 本文收集和汇总了OpenGL的文档、教程和在线书籍,供学习和开发人员参考。OPENGL开发教程:
标签: OpenGL图元管理
本文链接地址:https://www.jiuchutong.com/biancheng/373068.html 转载请保留说明!上一篇:简析OpenGL的2D、3D切换(opengl 2)
友情链接: 武汉网站建设