#shader #cg
#шейдер #cg
Вопрос:
Опытные разработчики шейдеров говорили мне, что, хотя Cg отлично подходит для простых шейдеров, рекомендуется использовать GLSL / HLSL непосредственно для продвинутых шейдеров из-за ошибок в результирующем коде шейдера.
Каковы конкретно ограничения и / или известные проблемы с использованием Cg … есть ли определенные вещи, которые он просто не может сделать, или это тот случай, когда нужно попробовать и посмотреть… работайте с Cg, пока не возникнут проблемы?
Комментарии:
1. Я думаю, это скорее из-за того, что Cg не поддерживает некоторые из новейших функций OpenGL и Direct3D, поддерживаемых их соответствующими «внутренними» языками затенения, но у меня самого нет никакого опыта работы с Cg, так что это тоже просто услышанное.
2. Я никогда не работал с новинками, превышающими SM3, поэтому не думаю, что это (единственный) фактор.
3. На самом деле не имеет значения, работали ли вы когда-либо с шейдерами новее SM3, но работали ли «опытные разработчики шейдеров» (которые сказали вам не использовать Cg), поскольку не вы были тем, кто выдвинул это утверждение, а тот, кто услышал его и хочет знать о его истинности.
4. @ChristianRau если я ориентируюсь на SM3, новые функции для меня не важны. Если вы на самом деле не можете перечислить ни одной из проблем / недостатков, то вы действительно не в состоянии предложить полезный совет. Мне нужны достоверные факты, не здесь -скажите.
5. Вот почему я опубликовал комментарий, а не ответ, в правильности которого я сам не уверен. Я ни в коем случае не хотел нападать на тебя. Я просто хотел прояснить, что тот факт, что вы хотите использовать только SM3, не является причиной полагать, что отсутствующие функции SM3 были не тем, что имели в виду другие разработчики, когда говорили вам не использовать Cg, за исключением случаев, когда они также использовали только SM3 и ссылались только на SM3. Но это не было выведено из вашего комментария. Кто-то сказал мне, что вождение в нетрезвом виде незаконно, но поскольку я не вожу машину пьяным, я думаю, что он ошибается.
Ответ №1:
Cg хорош в рамках своего возраста, как описано ранее. Он не подвергался капитальному ремонту со времен SM3. Я бы попросил этих «опытных разработчиков шейдеров» указать конкретные ошибки.
Мне нравится HLSL в DirectX, потому что компилятор кажется немного чище, а предустановщики — отличная вещь.
GLSL теперь в любом случае требуется для таких контекстов, как iPad и WebGL.
Но Cg все еще имеет важные применения. Например, я использую его в Maya почти ежедневно. Его тесная связь с HLSL делает CgFX очень полезным для совместного использования между OpenGL / DirectX в нашей собственной цепочке инструментов.