是否必须为几何着色器中发出的每个顶点设置每个变量?

Rhu*_*age 4 opengl glsl vulkan spir-v

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

我在glsl规范中找不到任何相关内容,是否有规则,第一种情况恰好起作用?有什么变化转移到spirv?

pea*_*iac 5

来自khron的opengl文档:

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