Size: a a a

pro.graphon (and gamedev)

2020 June 01

TG

Timur Gagiev in pro.graphon (and gamedev)
Vladislav Khudziakov
Привет, у меня такой вопрос: если я рендерю в текстуру какую-то геометрию, и во фрагментом шейдере использую эту же текстуру, то по-идее она же будет обновляться с каждым отрендеренным примитивом?
нельзя
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
можно только read-only depth/stencil, либо на мобилках с цветом, но там тоже в силу специфики рендера не получишь цвет предыдущего отрисованного примитива под текущим
источник

VK

Vladislav Khudziakov in pro.graphon (and gamedev)
Andrei Konshyn
попробуй по-другому вопрос задать, более детально что ли
у меня есть 1 пасс, в котором я считаю смещение для uv и пишу их в текстуру.
Есть 2 пасс, в который я передаю эту текстуру и делаю следующее:
vec2 o = texture2D( tex_warp, var_uv ).xy;
FragColor = texture2D( tex_frame, var_uv + o );

где:
tex_frame - текстура, в которую пишется цвет второго пасса
tex_warp - текстура, в которую я пишу смещение из 1 пасса

при этом начинают появляться артефакты на краях геометрии из второго пасса (такое ощущение, как будто в tex_warp было записано смещение больше, чем нужно). Далее я пытался найти паттерн артефактов с помощью следующего кода:
FragColor = vec4(1.) * step(0.5, length(o * 50.));

если бы мое предположение было верно, то он бы там проявился, однако ничего не было, далее я попытался сделать следующее:
vec2 o = texture2D( tex_warp, var_uv ).xy;
FragColor = texture2D( tex_frame, var_uv + o );
FragColor += vec4(1.) * step(0.5, length(o * 50.));

и обнаружил, что в тех местах, где проявлялись артефакты были записаны белые пиксели
источник

VK

Vladislav Khudziakov in pro.graphon (and gamedev)
источник

TG

Timur Gagiev in pro.graphon (and gamedev)
Vladislav Khudziakov
у меня есть 1 пасс, в котором я считаю смещение для uv и пишу их в текстуру.
Есть 2 пасс, в который я передаю эту текстуру и делаю следующее:
vec2 o = texture2D( tex_warp, var_uv ).xy;
FragColor = texture2D( tex_frame, var_uv + o );

где:
tex_frame - текстура, в которую пишется цвет второго пасса
tex_warp - текстура, в которую я пишу смещение из 1 пасса

при этом начинают появляться артефакты на краях геометрии из второго пасса (такое ощущение, как будто в tex_warp было записано смещение больше, чем нужно). Далее я пытался найти паттерн артефактов с помощью следующего кода:
FragColor = vec4(1.) * step(0.5, length(o * 50.));

если бы мое предположение было верно, то он бы там проявился, однако ничего не было, далее я попытался сделать следующее:
vec2 o = texture2D( tex_warp, var_uv ).xy;
FragColor = texture2D( tex_frame, var_uv + o );
FragColor += vec4(1.) * step(0.5, length(o * 50.));

и обнаружил, что в тех местах, где проявлялись артефакты были записаны белые пиксели
ты читаешь из tex_frame и пишешь в tex_frame одновременно? Нельзя.
источник

VK

Vladislav Khudziakov in pro.graphon (and gamedev)
Понял, спасибо
источник

TG

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

TG

Timur Gagiev in pro.graphon (and gamedev)
ещё для этой текстурки можно мипы посчитать, что позволит делать стёкла разной степени потности (doom 2016)
источник

VK

Vladislav Khudziakov in pro.graphon (and gamedev)
спасибо, попробую
источник

AT

Anatoly Tomilov in pro.graphon (and gamedev)
Timur Gagiev
ещё для этой текстурки можно мипы посчитать, что позволит делать стёкла разной степени потности (doom 2016)
запотевшие стёкла, значит
источник

IK

Igor Kravchenko in pro.graphon (and gamedev)
всем привет, есть чатик для вакансий по 3д ?
источник

A

Andrei Konshyn in pro.graphon (and gamedev)
Igor Kravchenko
всем привет, есть чатик для вакансий по 3д ?
поискать или предложить?
если второе то @AlexFails пиши
источник

IK

Igor Kravchenko in pro.graphon (and gamedev)
Andrei Konshyn
поискать или предложить?
если второе то @AlexFails пиши
Спасибо
источник

U

UsernameAK in pro.graphon (and gamedev)
а если поискать
источник

A

Andrei Konshyn in pro.graphon (and gamedev)
🤷‍♂
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
Ioann_V
А добавили за то, что у меня канал в телеграмм прикольный :)
что за канал то?
источник

I

Ioann_V in pro.graphon (and gamedev)
Alexander Busarov
что за канал то?
источник

AB

Alexander Busarov in pro.graphon (and gamedev)
@Ioann_V оу оу, так IvanKamynin - это ты на хабре?
источник

I

Ioann_V in pro.graphon (and gamedev)
Ну, да.
источник

I

Ioann_V in pro.graphon (and gamedev)
:D
источник