Страница 1 из 1

Пост эффекты и depth buffer.

СообщениеДобавлено: 07 авг 2016, 01:53
kripto289
У меня есть есть постэффект, на подобии этой темы https://habrahabr.ru/post/282604/

Я создаю отдельный слой "Distort", в него помещаю частицы с текстурками нормалей.
Создаю камеру которая видит только этот слой и заливаю всё синим цветом.
Постэффектом искажаю экран на основе этой текстуры.
Теперь суть проблемы. Этот постэффект не учитывая z сортировку, поэтому искажение видно даже сквозь стены. Игрался с буфером глубины, но не смог разобраться почему буфер чёрный.

Re: Пост эффекты и depth buffer.

СообщениеДобавлено: 08 авг 2016, 00:35
kripto289
kripto289 писал(а):У меня есть есть постэффект, на подобии этой темы https://habrahabr.ru/post/282604/

Я создаю отдельный слой "Distort", в него помещаю частицы с текстурками нормалей.
Создаю камеру которая видит только этот слой и заливаю всё синим цветом.
Постэффектом искажаю экран на основе этой текстуры.
Теперь суть проблемы. Этот постэффект не учитывая z сортировку, поэтому искажение видно даже сквозь стены. Игрался с буфером глубины, но не смог разобраться почему буфер чёрный.

Сам спросил, сам нашёл.

float sceneZ = LinearEyeDepth (SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos)));
float partZ = i.projPos.z;
float zalpha = saturate((sceneZ - partZ + 1e-2f)*10000);
...
return float4(color.rgb, color.a * zalpha);