Назрел вопрос: у нас имеются дллки cg.dll и cgGL.dll Спомощью них шейдеры читаются программой. Хотелось бы поместить шейдеры в код клиентской дллки(как это сделано в ксаше - преломления на воде, чёрно-белый экран и т.п.), чтобы не использовать cg. Подскажите плз. есть ли конвертеры для cg в нужный язык, и что ещёнужно делать.
Компилируй их компилятором cgc в профайлы arbvp (вершинные) и arpfp (пиксельные). Получится код, как в ксаше (комментарии, начинающиеся с #, можно вырезать). А дальше грузишь так же, как в ксаше.
Добавлено 19-10-2008 в 18:08:
Забавно читать тему именно в день принятия мной решения отказаться от скомпилированных шейдеров и использовать дллки Cg.
Я конечно этим компилятром никогда не пользовался. Но если перевести с английского, она жалуется, что у тебя не определена программа, которая должна быть откомпилена.
__________________
Сложно обьяснить, проще сделать (C) (_-=Zheka=-_)
Я могу открыть темку на форуме developer.nvidia.com по твоему вопросу. Может быть там ответ у кого-нибудь выудим.
З.Ы.
А там в документации по компилятору ничего не написано, что надо вписывать имя функции, исходя из которой код компилится? А то в HLSL компиляторе была такая фигня...
__________________
Сложно обьяснить, проще сделать (C) (_-=Zheka=-_)
Короче я нашел выход из создавшейся поблемы. пишешь так:
cgc.exe -profile <профиль> -entry <имя основной функции> -o <здесь имя исходного кода и не более!>
ZONER как только я увидел параметр -entry main_fp до меня дошло. Что надо было писать не FragmentProgram(это имя функции просто для примера, а имя функции, шо присутствует в шейдере, т.е. просто main)