Войти
ПрограммированиеФорумГрафика

Попытка перевести Quake 3 Arena Shader на GLSL. (2 стр)

Страницы: 1 2 3 Следующая »
#15
18:28, 21 ноя. 2019

mingw
Есть вжо quake 3 arena переписеный на d3d11 c HLSL,
можешь взять его за основу и переписить на GL,
а лучше на Пукан.


#16
22:32, 21 ноя. 2019

а да... забыл поправить немного, в ку3 шейдером называется материал.....

#17
23:12, 21 ноя. 2019

mono1337
> Хотя непонятно, почему нельзя было с arb_texture_combine
дык делали в 98-99 - тогда было много карт которые только 2 могли делать за проход

#18
23:43, 21 ноя. 2019


Я не вкуриваю в тему, которую вы обсуждаете...

Вот делаю все по такому псевдокоду:

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. Говорится, что этот тип данных интерполируется в пиксельном шэйдере, но ничего не сказано как залить массив нового набора текстурных координат в эту переменную. Хотя бы один пример, блин =(.

#19
23:54, 21 ноя. 2019

mingw
> Говорится, что этот тип данных интерполируется в пиксельном шэйдере, но ничего
> не сказано как залить массив нового набора текстурных координат в эту
> переменную. Хотя бы один пример, блин

у тебя каша в голове - найди старые sdk

#20
0:11, 22 ноя. 2019

mingw
В аттрибуты передаешь все наборы UV, хотя даже в FFP gl_MultiTexCoord есть до 8 координат на вершину.

#21
14:09, 23 ноя. 2019

mingw
> псевдокод из Quake 3 shader system:

Для своего времени это была идеальная система, в моем первом движке 2000-го года, который был чуть ли не клоном q3 :) Потом пришлось от нее отказаться. Мой совет, не пытайся ее переделывать под glsl в том виде, в котором она есть, посмотри в сторону более гибкой нодовой организации материалов + кодогенерация (ноды легко преобразовать в glsl и hlsl).

#22
14:15, 23 ноя. 2019

0xc0de
> посмотри в сторону более гибкой нодовой организации материалов + кодогенерация

ооооо, это ты новичку советуешь ?

#23
(Правка: 14:47) 14:41, 23 ноя. 2019

0xc0de
> ноды легко преобразовать в glsl и hlsl
cg тоже

Иннуендо прав, если ТС толком не разбирается в пайплайне, о какой кодогенерации может быть речь?

#24
14:49, 23 ноя. 2019

innuendo
> ооооо, это ты новичку советуешь ?
mono1337
> ТС толком не разбирается в пайплайне

Я просто обозначил цель :) Конечно, перед этим ему нужно разобраться в шейдерах и gapi.

#25
14:50, 23 ноя. 2019

0xc0de
> Я просто обозначил цель

ну лет так через пять цель будет достигнута

#26
(Правка: 21:06) 21:01, 23 ноя. 2019

0xc0de
> Для своего времени это была идеальная система, в моем первом движке 2000-го
> года, который был чуть ли не клоном q3

Тут как раз дело в том, что я сторонник FFP-графики. =) Так вышло. Не привлекает меня фотореализм. Ничего с этим поделать не могу. А в шейдеры я полез только за тем, что бы : 1) убрать множественный рендер одних и тех же полигонов. 2) Вершинное освещение по Гуро выглядит убого. Хочу попиксельное по Фонгу. Ограничение в восемь источников, которое накладывает OpenGL - вполне хватит. Вот собственно и все. Никаких Deffered, SSAO и тому подобного хлама.

На мой вопрос так никто и не ответил. А ответ оказался жутко простым : glVertexAttribPointer(). Причем, ни в одном туториале, которые я прочел за последние 3 дня, об этой функции не сказано ни слова. На этом форуме видимо принято вместо помощи обсуждать личность человека. - ну это так... к слову.

innuendo
> у тебя каша в голове - найди старые sdk
innuendo
> ооооо, это ты новичку советуешь ?
innuendo
> ну лет так через пять цель будет достигнута

Спасибо, конечно, за ободряющие комплименты. Но, в твоих постах инфы чуть более, чем - 0%.

#27
(Правка: 21:07) 21:06, 23 ноя. 2019

mingw
> Но, в твоих постах инфы чуть более, чем - 0%.
  а ты хотел чтобы я код выложил ? сам сам сам

mingw
> Хочу попиксельное по Фонгу. Ограничение в восемь источников, которое
> накладывает OpenGL - вполне хватит.

оно вертексное же

#28
21:17, 23 ноя. 2019

innuendo
> оно вертексное же

Их можно переопределить в шейдере.

#29
21:23, 23 ноя. 2019

mingw
> Их можно переопределить в шейдере.

будешь по каждой строчке задавать вопросы ? или найдёшь рабочий пример?

Страницы: 1 2 3 Следующая »
ПрограммированиеФорумГрафика