4

在我在 OpenGL 中使用的几何着色器中,在开始时设置一个变量,然后在不重置它的情况下发射顶点,但在 vulkan 中,如果我不在每个代码之间写入该变量,EmitVertex()我的代码将无法正常工作。

我在 glsl 规范中找不到任何关于此的内容,是否有针对此的规则,而第一种情况恰好有效?转向 spirv 有什么改变吗?

4

1 回答 1

5

来自khronos opengl 文档

GS 代码写入一个顶点的所有输出值,然后调用 EmitVertex()。这告诉系统将这些输出值写入输出顶点被写入的位置。调用此函数后,所有输出变量都包含未定义的值。因此,在发射下一个顶点(如果有下一个顶点)之前,您需要再次写入它们。

于 2019-02-08T11:02:46.763 回答