Я создаю проект с three.js и импортирую файлы glsl извне (с помощью glsl-ify-loader) для использования в Three ShaderMaterial
.
При использовании ShaderMaterial
, Three предварительно добавляет глобальные переменные, такие как projectionMatrix
, modelViewMatrix
, к моей предварительной компиляции кода шейдера, когда он объединяет шейдер. Поэтому, когда я пишу свой шейдер, все, что мне нужно, это (в качестве простого примера):
varying vec3 vNormal;
void main () {
vNormal = normal;
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
}
... или аналогичный.
Моя проблема в том, что я использую валидатор glsl в моих файлах шейдеров, который впоследствии считает, что предварительно объявленные три переменные не объявлены.
В JS с eslint вы можете поставить /* global aGlobalVariableHere */
, чтобы успокоить богов линта.
Есть ли способ сделать это с помощью валидатора glsl? Я не могу найти никаких ресурсов, которые бы подсказывали, как я могу это сделать.