Есть ли в Lint инструмент для OpenGL Shading Language? - PullRequest
9 голосов
/ 24 октября 2010

Я начал работать с OpenGL и писать шейдеры.Мое приложение проверяет ошибки после загрузки и компиляции шейдерных программ, и, если есть проблема, оно печатает информационный журнал.Это отлично подходит для отлова ошибок (и я новичок, поэтому я делаю много), но что бы я действительно хотел бы, это отлавливать эти ошибки во время сборки.

Если бы у меня был инструмент lint, который мог бы просто проверить вершинный или фрагментный шейдер на наличие синтаксических ошибок, я мог бы добавить его в свой процесс сборки и заставить его остановить сборку.

Я не смог найтитакой инструмент.Я начал пытаться написать один, но я работаю над OpenGL ES, и у меня возникли проблемы при попытке написать настольную программу, которая связывается с библиотеками ES .

Возможно, я где-то пропустил.Существует ли такой инструмент?

Ответы [ 3 ]

5 голосов
/ 25 октября 2010

Вы можете создавать шейдеры в командной строке, так же, как вы компилируете свою программу на c или c ++ или что вы используете. Если вы используете Makefile, просто добавьте компиляцию шейдеров.

Вы можете использовать компилятор Cg для компиляции шейдеров Cg и GLGL. Он должен быть доступен на всех платформах.

1 голос
/ 25 сентября 2014

Также есть эталонный компилятор GLSL (работает с OpenGL и OpenGL ES)

http://www.khronos.org/opengles/sdk/tools/Reference-Compiler/

1 голос
/ 25 октября 2010

Вы можете адаптировать Shader Toy для этого использования. Он компилирует код шейдера для WebGL (который основан на OpenGL ES) и сообщает об ошибках (а также запускает шейдер, чтобы вы могли проверить вывод).

Вам понадобится предварительная версия Firefox (Minefield) или Chrome (Canary) для запуска.

Я не уверен, как вы могли бы использовать результат статуса компиляции, чтобы остановить процесс сборки ... Есть способов записать результаты в локальный файл из javascript , но они несколько волосатые. ..

Тем не менее, процесс разработки может быть улучшен, если тестировать изменения кода шейдера в Shader Toy в интерактивном режиме перед компиляцией приложения для настольного компьютера. Поскольку вы говорите так, будто разрабатываете для настольных компьютеров мобильные устройства (верно?), Это будет победой.

С другой стороны, если вам удалось заставить ваше настольное приложение работать с ссылками на библиотеки ES, это, казалось бы, инструмент, от которого выиграют многие разработчики.

...