Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 用openGL实现对象整形_C++_Opengl_Shader - Fatal编程技术网

C++ 用openGL实现对象整形

C++ 用openGL实现对象整形,c++,opengl,shader,C++,Opengl,Shader,我正在开发一个显示对象(导入STL文件)并将其转换为2D切片的应用程序。 例子: 当前,顶点存储在VBO中,顶点着色器不变换任何内容,然后我测试三角形和切片高度的交点,并发射新三角形以具有离散化的形状。在片段着色器中完成灯光计算 我有三个问题: 我只有垂直部分,对象没有闭合(从顶部看,你只看到细线)。使用1个三角形感知着色器很难计算 我有硬件限制,GS可以发射的基本体的数量不是无限的,所以如果我想要一个非常小的切片高度,我不能发射足够的顶点 非常慢 我知道我正在进行某种细分,因此您认为在细

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

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

我有三个问题:

  • 我只有垂直部分,对象没有闭合(从顶部看,你只看到细线)。使用1个三角形感知着色器很难计算

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

  • 非常慢

我知道我正在进行某种细分,因此您认为在细分着色器中移动此工作是否会提高性能? 更一般地说,您将如何做到这一点?

(我想补充一点,我处理了200多万个对象,因此通过变换反馈对它们进行离散化并存储顶点。例如,由于图形卡可以处理的顶点数量太多,因此可能很难存储顶点。)


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

事实上,你应该在tesselation着色器中移动这项工作。如果尚未完成,请阅读并告知我们您是否需要更多信息