【问题标题】: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,这是一种非常常见的绘制弧线和椭圆的方法。
  • 在幕后将圆弧转化为三角形进行绘制

标签: c++ c opengl graphics


【解决方案1】:

link 启发的 Go 中更快(更少三角函数)的解决方案(可以轻松转换为 c++)

【讨论】:

  • 如今三角函数运算并没有那么昂贵。在您发布的链接中,使用立即模式(glBegin、glVertex、glEnd)比调用 sin 和 cos 是一个更大的瓶颈。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多