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

OpenGL Вопросы (80 стр)

Страницы: 179 80 81 8285 Следующая »
#1185
21:18, 4 окт 2023

Dmitry_Milk
Тут не правильно:

gl.texImage2D(gl.TEXTURE_2D, 0, gl.DEPTH_COMPONENT32, gl.canvas.width, gl.canvas.height, 0, gl.DEPTH_COMPONENT32, gl.UNSIGNED_INT, null)

DEPTH_COMPONENT32  - internal format (третий с начала)
DEPTH_COMPONENT    - format (третий с конца)(должно быть без 32 в конце)

#1186
21:36, 4 окт 2023

iw4nna.rock
> DEPTH_COMPONENT32 - internal format (третий с начала)
> DEPTH_COMPONENT - format (третий с конца)(должно быть без 32 в конце)

Не, все равно WebGL warning: texSubImage: The specified TexImage has not yet been specified.

MrShoor
> gl.DEPTH_COMPONENT32F, OES_texture_float

О, вот так сработало, спасибо!

Кстати, могу ли я теперь с этим OES_texture_float  использовать также текстуры с FLOAT для каждой цветовой компоненты в COLOR_ATTACHMENT? А то мне на самом деле надо не просто результат этого рендеринга натянуть на грань, а надо выполнить кое-какие вычисления, причем не хочется, чтоб исходные данные округлялись Uint8

#1187
21:43, 4 окт 2023

MrShoor
> Ах, да, еще OES_texture_float не забудь включить. К моему предыдущему посту.

Провел эксперимент - работает и без  OES_texture_float. Посмотрел в документации - действительно, в WebGL2 контексте это расширение включено по-умолчанию.

#1188
22:04, 4 окт 2023

Dmitry_Milk
> использовать также текстуры с FLOAT для каждой цветовой компоненты в
> COLOR_ATTACHMENT?
Да, насколько помню.

#1189
11:07, 12 окт 2023

Как сегодня побеждают peter panning? Делают двойные стенки мешей в 3D редакторе или используют геометрический шейдер для этого?

#1190
17:18, 12 окт 2023

iw4nna.rock
> Как сегодня побеждают peter panning? Делают двойные стенки мешей в 3D редакторе
> или используют геометрический шейдер для этого?
Так же как и раньше. Бросают тени только от бекфейсов, и делают отрицательное смещение.

#1191
19:45, 12 окт 2023

MrShoor
> Так же как и раньше. Бросают тени только от бекфейсов, и делают отрицательное
> смещение.
Это для устранения Shadow acne.
Peter panning - это просветы возле рёбер.

#1192
20:14, 12 окт 2023

iw4nna.rock
> Peter panning - это просветы возле рёбер.
Peter panning - это когда объект должен был бы лежать на плоскости, но из-за тени он как бы парит. Парение возникает если сделать положительное смещение. Если же сделать отрицательное смещение - то все фронтфейсы уйдут в тень. Поэтому при рендере в шедоумапу рендерят только бекфейсы.
А акне возникает - если смещение вообще не делать, либо если смещение сильно маленькое.

#1193
20:23, 12 окт 2023

iw4nna.rock
> Как сегодня побеждают peter panning?
В новых играх используют contact shadows для мелких деталей, бонусом это устраняет(маскирует) peter panning. Но это дорого.

#1194
21:06, 14 окт 2023

Записываю в текстуру свойства материала, чтобы затем использовать эту текстуру в другом проходе.
И получаю артефакты, когда 4-й канал, то есть канал прозрачности, меньше единицы, то R, G и B каналы искажаются.
Есть ли способ сказать OpenGL'у не использовать блендинг для одного color_attachment?

#1195
0:05, 15 окт 2023

iw4nna.rock
> Есть ли способ сказать OpenGL'у не использовать блендинг для одного
> color_attachment?
Оказалось, что есть способ указать блендинг для конкретной текстуры фреймбуфера:

glBlendFuncSeparatei(0, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,  GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
#1196
8:44, 15 окт 2023

iw4nna.rock
> > Есть ли способ сказать OpenGL'у не использовать блендинг для одного
> > color_attachment?
Можно же через glDisablei(GL_BLEND, /*номер буфера цвета*/).

#1197
11:09, 15 окт 2023

prowkan
> glDisablei(GL_BLEND, /*номер буфера цвета*/)
О, даже такое есть! Теперь я буду как буриданов осёл.

#1198
11:11, 15 окт 2023

iw4nna.rock
> Теперь я буду как буриданов осёл
Режим блендинга и включение-выключение

#1199
11:32, 15 окт 2023

1Man1
остановлюсь на этом:

glEnablei(GL_BLEND, 0);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

ведь блендинг больше нигде не нужен, кроме цветового канала. И тогда не придётся включать и выключать, достаточно один раз включить для 0-го буфера фреймбуфера.

Страницы: 179 80 81 8285 Следующая »
ПрограммированиеФорумГрафика