KiQ не так всё просто
При форвард рендере всё рисуется сразу на экран в дефолтный фреймбуфер? Поэтому формат пикселя нужно задавать при создании контекста, а контекст создаётся движком, а не модом?
в opengl.cfg смотри чтобы gl_texture_float 1 было.
Добавлено 16-09-2020 в 10:45:
Ну и да, в имидж надо добавлять флаги IMAGE_HAS_COLOR|IMAGE_HAS_ALPHA.
Добавлено 16-09-2020 в 10:46:
Цитата:
ncuxonaT писал: Поэтому формат пикселя нужно задавать при создании контекста
дефолтное окно не меняется.
Добавлено 16-09-2020 в 13:22:
Вообще, если я не путаю, создать WGL-контекст с флоатами невозможно, мы создаём FBO, ставим его в качестве основного буффера и просто рендерим в него, вместо дефолтного. А FBO уже создаём флоатный, как нам потребно.
Сами флоатные текстуры точно работают, т.к. я в них храню BSP-дерево и планесы для трассировки теней. Очевидно этот рейтрейсинг бы не работал, если бы не создавались флоатные текстуры.
Добавлено 16-09-2020 в 13:23:
ЗЫ. Да у Нвидии даже была демка как создать Z-Buffer с 32-х битной точностью. И там был рендеринг именно в кастомный FBO. а контекст оставался прежним.
Дядя Миша писал: мы создаём FBO, ставим его в качестве основного буффера и просто рендерим в него, вместо дефолтного. А FBO уже создаём флоатный, как нам потребно.
Сейчас рендер идет в дефолтный буфер, промежуточный мне нужно самому сделать, верно?
Дядя Миша благодарю, всё получилось. TF_ARB_FLOAT - это же GL_RGBA32F? Текстуру GL_RGBA16 или GL_RGBA16F стандартными средствами не сделать?
И еще вопрос, все спрайты и частицы рендерятся без шейдеров?
Смотрю, как работает запеченное вершинное освещение. У моделей без нормалмапы в делюксмапе (attr_LightVecs) нули. Так и должно быть? Это можно отключить?
А, ну тада смотри client\render\gl_studiovbo.cpp
он там выбирает подходящий вертекс-формат в зависимости от типа отрисовки. Если нет нормалмапы, то он не запишет делюкс.
В NT эта система еще более усовершенствована, ну я писал уже. Она смотрит, используется ли атрибут реально в шейдере и налету формирует уникальный вертекс-формат.