Я новичок в кодировании и даже новичок в коде шейдеров. Я создал файл test.frag, чтобы проверить, правильно ли работает моя установка. У меня работают фрагменты кода, но линтинг, похоже, не работает.
Код с ошибками, где ошибки не обнаружены
#ifdef GL_ES
precision mediump float;
#endif
void main(){
gl_FragColor = vec4(1.0 0.3, 0.9, 1.0)
}
Здесь ошибками являются пропущенный символ ;
в конце строки и отсутствующий символ ,
запятая для разделения аргументов vec4
. Хотя линтеры почему-то ошибок не находят.
Я не получаю никаких ошибок от линтеров при запуске, и я почти уверен, что правильно настроил пути валидатора.
settings.json glsl проверяет пути валидатора
"glsl-linter.validatorPath": "D:\\D_Programfiles\\Bonus VSCode stuff\\glslang-master\\bin\\glslangValidator.exe",
"glsllint.glslangValidatorPath":"D:\\D_Programfiles\\Bonus VSCode stuff\\glslang-master\\bin\\glslangValidator.exe",
это потому, что я выбрал отдельный диск? Может быть пробелы в названиях папок? Я не знаю, но расширения не сообщают об ошибках? Я также использую расширениеshadertoy для отображения шейдера.
Согласно этому видеоуроку линтер должен уметь находить ошибку в коде.
Я попробовал удалить и переустановить VSCode, но это не помогло. Я также пробовал запускать линтеры как по отдельности, так и вместе, ни один из них не помог. Я также просмотрел некоторые сообщения stackoverflow и reddit, но не смог найти ни этой конкретной ошибки (не ошибки?), ни чего-либо о ней.
Я пробовал удалить все файлы и папки, кроме папки, в которой я работаю, и файла test.frag. Изображение файла test.frag
Я не пытался настроить ни один линтер, кроме установки пути проверки.
Ох, похоже, сохранение не всегда помогает найти ошибки (хотя часто бывает, просто я до сих пор не пробовал), но закрытие и повторное открытие файла помогает. Что касается редактора WebGL GLSL, я нашел его гораздо более полезным, чем другие линтеры, поэтому я удалил их и переключился на него, полностью решив проблему. Спасибо за ваш комментарий!
Переход на другой линтер решил проблему.
Линтеры, которые я использовал, будут работать должным образом только тогда, когда вы сохраните файл или закроете и снова откроете его.
Переключение на расширение WebGL GLSL Editor решает проблему и обеспечивает обратную связь об ошибках в реальном времени, а также не требует установки пути проверки.
Вы сохранили файл? У меня все работает нормально, но мне нужно сохранить, чтобы обновить ошибки. Кроме того, расширение под названием WebGL GLSL Editor содержит компилятор, поэтому вам не нужно указывать путь к компилятору (он обновляется в зависимости от типа).