Существуют ли серьезные различия между шейдерными языками? - PullRequest
2 голосов
/ 25 июня 2010

Я сейчас изучаю GLSL. Казалось бы, если вы изучите один из шейдерных языков, изучение одного из других не станет слишком сложным. Это что-то аналогичное изучению набора инструментов виджетов, например, wxWidgets, и переходу на Qt? Как только вы получите представление о том, что происходит в одном наборе инструментов виджетов, другой набор инструментов сделает что-то похожее, поскольку в какой-то момент они в конечном итоге делают почти одно и то же? Каков ваш опыт перехода с одного языка шейдера на другой?

Ответы [ 5 ]

6 голосов
/ 25 июня 2010

Cg и HLSL почти одинаковы (одинаковые имена встроенных функций).GLSL выглядит и чувствует себя немного по-другому (то есть mix вместо lerp, использование функции, подобной main), но общий переход все еще прост.Единственные различия заключаются в деталях и в соответствующих API-интерфейсах (например, такие как порядок хранения матрицы).

Переключение между языками затенения намного проще, чем переключение между наборами GUI…

4 голосов
/ 28 июня 2010

HLSL имеет некоторые отличия от GLSL. Ничего не отличается от того, что я прочитал. Есть несколько инструментов для перевода. Существует проект SourceForge HLSL To GLSL tool . Также я считаю, что инструментарий NVidia Cg может генерировать HLSL или GLSL.

1 голос
/ 01 сентября 2010

Вы правы - языки затенения GLSL / HLSL / Cg являются подмножеством языка программирования C, поэтому они очень похожи.

1 голос
/ 22 июля 2010

В моем немного ограниченном опыте я согласен со всеми здесь, что они очень, очень похожи, и переключаться между ними не проблема. Однако имейте в виду, что, как и в случае большинства столкновений OpenGL / DirectX, я считаю, что в HLSl есть еще несколько удобных вспомогательных функций, которые делают его более увлекательным в использовании. Я говорю маленькие вещи, такие как насыщенный , здесь. Однако, помимо незначительных структурных различий, таких как передача входных данных, основные концепции на сто процентов одинаковы.

Наслаждайтесь! Шейдеры очень веселые.

0 голосов
/ 26 июня 2010

Происхождение DirectX 3D лежит в OpenGL.Microsoft перепрограммировала API OpenGL до определенного момента, поэтому языки должны быть похожими.

...