преобразование гибридных шейдеров cg/hlsl в glsl es

Я ищу инструмент, который может конвертировать гибридные шейдеры cg/hlsl в шейдеры glsl es. Я попробовал hlsl2glsl, который не понимает ключевое слово «extern», хотя это и приемлемое ключевое слово hlsl, и обратился к cgc, но не нашел документации о том, как компилировать для glsl es.

Спасибо


person aerlfredith    schedule 10.04.2013    source источник


Ответы (2)


Я знаю, старый вопрос, но я все равно предложу этот ответ.

Я наткнулся на это, когда [на законных основаниях] хотел присвоить какой-нибудь прекрасный код шейдера компьютерной графики, ориентированный на Unity ;-)

Посмотрите на скрипт преобразования CG-шейдера в GLSL-шейдер Python 'cg2glsl.py' на Github (для этого требуется команда cgc из nvidia-cg-toolkit< /a> пакет, поддерживаемый в большинстве операционных систем.

Его использование кратко описано в разделе «преобразование из cg-шейдеров.'

Цитата из сообщения блога Tomaka17, связанного с CG-to-GLSL, 'Превращение Cg в GLSL, а затем использование кода'

Cg — это язык затенения, разработанный nVidia. По сути, вы пишете все свои шейдеры на Cg... Cg фактически скомпилирует ваш код на языке, специфичном для API.

В примере Tomaka17 , он перехватывает вызовы nVidia CG-library, используя C++ для извлечения скомпилированного кода GLSL, что, я бы предположил, концептуально совпадает с тем, что cg2glsl.py (хотя и без необходимости компилировать код с помощью его использования Python).

person Big Rich    schedule 12.11.2013

имя файла cgc -профиль glslv/glslf

Но вы должны добавить presecion для glsl es, компилятор cg этого не делает

person AndreyVK_D3D    schedule 13.06.2013