Size: a a a

pro.graphon (and gamedev)

2020 March 04

VK

Vitaliy ◀️TriΔng3l▶️ Kuzmin in pro.graphon (and gamedev)
А, ну да, и на порядок, что сначала — фронтфейсы или бэкфейсы — получается, пофиг?
источник

AM

Aleksey Muravev in pro.graphon (and gamedev)
Vitaliy ◀️TriΔng3l▶️ Kuzmin
А, ну да, и на порядок, что сначала — фронтфейсы или бэкфейсы — получается, пофиг?
Для этого всё и делается
источник

AM

Aleksey Muravev in pro.graphon (and gamedev)
В итоге и depth тест не нужен
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
кароч, тривиальный алгоритм такой:
0. чистим стенсил отключаем backface culling, включаем стенсил тест, отключаем запись в глубину
1. цикл по всем источникам света
1.0. ставим inc wrap для front face, dec wrap для back для zfail если камера внутри объёма или zpass если вне его
1.1. отключаем запись в цвет, отключаем блендинг, включаем тест глубины
1.2. рендерим объём
1.3. включаем запись в цвет, аддитивный блендинг и отключаем тест глубины
1.4. переключаем стенсил в not equal значению которым чистили изначально и replace для stencil pass
1.5. считаем и выставляем scissor rect для объёма
1.6. рендерим fullscreen quad с шейдером шейдинга
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
если очень хочется поиграться с конкретными битами, можно использовать stencil invert, которому тоже пофигу порядок
источник

AM

Aleksey Muravev in pro.graphon (and gamedev)
А не переусложнено?
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
Aleksey Muravev
А не переусложнено?
нет
источник

AM

Aleksey Muravev in pro.graphon (and gamedev)
Хотя да, всё так и должно
источник

k

koren in pro.graphon (and gamedev)
Aleksey Muravev
Render the objects as usual into the G buffer so that the depth buffer will be properly populated.

Disable writing into the depth buffer. From now on we want it to be read-only

Disable back face culling. We want the rasterizer to process all polygons of the sphere.

Set the stencil test to always succeed. What we really care about is the stencil operation.

Configure the stencil operation for the back facing polygons to increment the value in the stencil buffer when the depth test fails but to keep it unchanged when either depth test or stencil test succeed.

Configure the stencil operation for the front facing polygons to decrement the value in the stencil buffer when the depth test fails but to keep it unchanged when either depth test or stencil test succeed.

Render the light sphere.
Последние 2 пункта (перед Render the light sphere) не особо понятны в плане реализации. Сфера должна быть выпукла или вогнута? Тест трафарета должен быть настроен в каком направлении?
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
koren
Последние 2 пункта (перед Render the light sphere) не особо понятны в плане реализации. Сфера должна быть выпукла или вогнута? Тест трафарета должен быть настроен в каком направлении?
там же написано, отключить backface culling
источник

k

koren in pro.graphon (and gamedev)
Timur Gagiev
там же написано, отключить backface culling
Сфера может быть гранями внутрь
источник

k

koren in pro.graphon (and gamedev)
Или она должна быть гранями наружу?
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
>_<
источник

k

koren in pro.graphon (and gamedev)
Вот в чём вопрос
источник

k

koren in pro.graphon (and gamedev)
От этого же многое зависит. Разве нет?
источник

eb

ed braed in pro.graphon (and gamedev)
koren
Или она должна быть гранями наружу?
Я полагаю по умолчанию всегда считается что сфера гранями наружу :)
источник

k

koren in pro.graphon (and gamedev)
ed braed
Я полагаю по умолчанию всегда считается что сфера гранями наружу :)
Оке
источник

k

koren in pro.graphon (and gamedev)
И в итоге у нас что должно получиться?
источник

k

koren in pro.graphon (and gamedev)
Мы настраиваем и рендерим? Так?
источник

AM

Aleksey Muravev in pro.graphon (and gamedev)
koren
И в итоге у нас что должно получиться?
Картинка? Я не понимаю, что ты не понимаешь. В этом трудность
источник