使用openGL进行对象重塑

时间:2016-08-03 09:23:30

标签: c++ opengl shader

我正在开发一个显示对象(导入STL文件)并将它们转换为2D切片的应用程序。 例: Work illustration

目前,顶点存储在VBO中,顶点着色器不会变换任何东西,然后我测试三角形和切片高度的交集,并且我发出新的三角形以具有离散化的形状。在片段着色器中完成光计算。

我有3个问题:

  • 我只有垂直部分,物体没有关闭(从顶部看,你只能看到细线)。使用1个三角形识别着色器很难计算出来。

  • 我有硬件限制,GS可以发射的基元数量不是无限的,所以如果我想要一个非常小的切片高度,我就无法发出足够的顶点。

  • 非常慢!!!!

我知道我正在做某种形式的细分,所以你认为在tesselation着色器中移动这项工作会提高性能吗? 更一般的是,你会怎么做?

(我想补充一点,我在200万个物体上工作,所以离心它们并通过变换反馈来存储顶点,例如由于图形卡可以处理的顶点数量可能很难。)

我使用msvc2012编译的Windows 7/10,C ++ 11,使用Qt 5.2.1和openGL(不确定版本,但它至少是3.2,也许是4+。如果需​​要,我仍然可以升级)。

0 个答案:

没有答案