OpenGL管线

66bbxpm5  于 2022-11-23  发布在  其他
关注(0)|答案(1)|浏览(121)

几何着色器是否会影响CPU端最初指定的顶点和索引(GPU内存中的VBO和EBO数据)的缓冲区?
例如,假设我有一个包含三个顶点的顶点缓冲区,每个顶点都附加了一些属性。假设这三个顶点被作为输入提供给几何着色器,几何着色器基于它开始时的前三个顶点输出一个大的顶点集,这样就生成了一个由3个以上顶点组成的新多边形。2这个过程会改变元素数组和顶点缓冲区的内容吗?
我唯一知道的是,它当然不会被改变。因为否则下一个渲染调用将生成更多的顶点,那将是一团糟。那么OpenGL将新生成的顶点存储在哪里呢?

wwwo4jvm

wwwo4jvm1#

假设将这三个顶点作为输入提供给几何着色器
这是不可能的。GS是由顶点着色器的输出提供的。GS从来没有与初始顶点数据有任何直接的联系。
那么OpenGL将新生成的顶点存储在哪里呢?
在任何需要实现的地方。光栅化硬件通常会有一个小的缓冲区来存储要光栅化的图元数据。这就是GS输出的地方。
但这是一个实现细节,没有暴露给OpenGL。

相关问题