在 OpenGL 中绘制形状的标准(常用)方法是啥?
Posted
技术标签:
【中文标题】在 OpenGL 中绘制形状的标准(常用)方法是啥?【英文标题】:What are standard (common) ways to draw shapes in OpenGL?在 OpenGL 中绘制形状的标准(常用)方法是什么? 【发布时间】:2014-04-03 11:15:04 【问题描述】:由于 GLU 被认为与现代 OpenGL (3.1+) 一起使用已过时,在使用 C/C++ 的 OpenGL 中绘制基本形状(例如椭圆或弧/饼)的方法是什么?在 OpenGL 中绘制圆弧/椭圆没有简单的标准或通用解决方案,而是在“for”循环中逐像素绘制,这似乎令人难以置信。是否有使用着色器的 GLU 实现?
【问题讨论】:
将它们分成三角形并绘制它们 @ratchet - 在某些头文件中没有标准的解决方案来通过调用 Windows GDI 中的一个函数在缓冲区中绘制圆弧/椭圆,这对我来说似乎很奇怪,而且每个人都在不断地绘制每一个用直线或三角形做圆和圆弧。 因为 opengl 所利用的硬件(通过设计)最适合绘制三角形 @ratchet - 是的,但是以前版本的 OpenGL 有 GLU,这是一种非常常见的绘制弧线和椭圆的方法。 在幕后将圆弧转化为三角形进行绘制 【参考方案1】:受 link 启发的 Go 中更快(更少三角函数)的解决方案(可以轻松转换为 c++)
【讨论】:
如今三角函数运算并没有那么昂贵。在您发布的链接中,使用立即模式(glBegin、glVertex、glEnd)比调用 sin 和 cos 是一个更大的瓶颈。以上是关于在 OpenGL 中绘制形状的标准(常用)方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章