mingw
Есть вжо quake 3 arena переписеный на d3d11 c HLSL,
можешь взять его за основу и переписить на GL,
а лучше на Пукан.
а да... забыл поправить немного, в ку3 шейдером называется материал.....
mono1337
> Хотя непонятно, почему нельзя было с arb_texture_combine
дык делали в 98-99 - тогда было много карт которые только 2 могли делать за проход
Я не вкуриваю в тему, которую вы обсуждаете...
Вот делаю все по такому псевдокоду:
glBindBufferARB(GL_ARRAY_BUFFER_ARB, surf.vbo_id[0]) \\ загоняем координаты вершин
glVertexPointer(3, GL_FLOAT, 0, Null)
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, surf.vbo_id[5]) \\ загоняем описание геометрии (индексы вершин)
glBindBufferARB(GL_ARRAY_BUFFER_ARB, surf.vbo_id[3]) \\ нормали
glNormalPointer(GL_FLOAT,0,Null)
glBindBufferARB(GL_ARRAY_BUFFER_ARB,surf.vbo_id[4]) \\ цвета вершин
glColorPointer(4,GL_FLOAT,0,Null)
glBindBufferARB(GL_ARRAY_BUFFER_ARB,surf.vbo_id[1]) \\ текстурные координаты
glTexCoordPointer(2,GL_FLOAT,0,Null)
myShader.Enable() \\ включаем шейдер
glDrawElements(GL_TRIANGLES,surf.no_tris*3,GL_UNSIGNED_SHORT,Null) \\ рисуем
myShader.Disable()я так понимаю, дополнительную инфу для вершины я должен передать как-то отдельно? Через шэйдер? Тут в уроке прочитал, что для таких целей годится тип данных varying. Говорится, что этот тип данных интерполируется в пиксельном шэйдере, но ничего не сказано как залить массив нового набора текстурных координат в эту переменную. Хотя бы один пример, блин =(.
mingw
> Говорится, что этот тип данных интерполируется в пиксельном шэйдере, но ничего
> не сказано как залить массив нового набора текстурных координат в эту
> переменную. Хотя бы один пример, блин
у тебя каша в голове - найди старые sdk
mingw
В аттрибуты передаешь все наборы UV, хотя даже в FFP gl_MultiTexCoord есть до 8 координат на вершину.
mingw
> псевдокод из Quake 3 shader system:
Для своего времени это была идеальная система, в моем первом движке 2000-го года, который был чуть ли не клоном q3 :) Потом пришлось от нее отказаться. Мой совет, не пытайся ее переделывать под glsl в том виде, в котором она есть, посмотри в сторону более гибкой нодовой организации материалов + кодогенерация (ноды легко преобразовать в glsl и hlsl).
0xc0de
> посмотри в сторону более гибкой нодовой организации материалов + кодогенерация
ооооо, это ты новичку советуешь ?
0xc0de
> ноды легко преобразовать в glsl и hlsl
cg тоже
Иннуендо прав, если ТС толком не разбирается в пайплайне, о какой кодогенерации может быть речь?
innuendo
> ооооо, это ты новичку советуешь ?
mono1337
> ТС толком не разбирается в пайплайне
Я просто обозначил цель :) Конечно, перед этим ему нужно разобраться в шейдерах и gapi.
0xc0de
> Я просто обозначил цель
ну лет так через пять цель будет достигнута
0xc0de
> Для своего времени это была идеальная система, в моем первом движке 2000-го
> года, который был чуть ли не клоном q3
Тут как раз дело в том, что я сторонник FFP-графики. =) Так вышло. Не привлекает меня фотореализм. Ничего с этим поделать не могу. А в шейдеры я полез только за тем, что бы : 1) убрать множественный рендер одних и тех же полигонов. 2) Вершинное освещение по Гуро выглядит убого. Хочу попиксельное по Фонгу. Ограничение в восемь источников, которое накладывает OpenGL - вполне хватит. Вот собственно и все. Никаких Deffered, SSAO и тому подобного хлама.
На мой вопрос так никто и не ответил. А ответ оказался жутко простым : glVertexAttribPointer(). Причем, ни в одном туториале, которые я прочел за последние 3 дня, об этой функции не сказано ни слова. На этом форуме видимо принято вместо помощи обсуждать личность человека. - ну это так... к слову.
innuendo
> у тебя каша в голове - найди старые sdk
innuendo
> ооооо, это ты новичку советуешь ?
innuendo
> ну лет так через пять цель будет достигнута
Спасибо, конечно, за ободряющие комплименты. Но, в твоих постах инфы чуть более, чем - 0%.
mingw
> Но, в твоих постах инфы чуть более, чем - 0%.
а ты хотел чтобы я код выложил ? сам сам сам
mingw
> Хочу попиксельное по Фонгу. Ограничение в восемь источников, которое
> накладывает OpenGL - вполне хватит.
оно вертексное же
innuendo
> оно вертексное же
Их можно переопределить в шейдере.
mingw
> Их можно переопределить в шейдере.
будешь по каждой строчке задавать вопросы ? или найдёшь рабочий пример?
Тема в архиве.