Должна ли каждая переменная быть установлена ​​для каждой вершины, испускаемой в геометрическом шейдере? - PullRequest
0 голосов
/ 08 февраля 2019

В моем геометрическом шейдере, который я использовал в OpenGL, установка переменной один раз в начале, а затем испускание вершин без сброса, это работает, но в vulkan, если я не пишу в эту переменную между каждыми EmitVertex(), мой код не будетработать правильно.

Я не могу найти ничего об этом в спецификации glsl, есть ли правило для этого, и первый случай просто работает?Что-то изменилось с переходом на spirv?

1 Ответ

0 голосов
/ 08 февраля 2019

Из документов khronos opengl :

GS-код записывает все выходные значения для вершины, затем вызывает EmitVertex ().Это говорит системе записывать эти выходные значения туда, где когда-либо записываются выходные вершины.После вызова этой функции все выходные переменные содержат неопределенные значения.Таким образом, вам нужно будет написать им все снова, прежде чем испустить следующую вершину (если есть следующая вершина).

...