Depth water shader
Уважаемые, кто-нибудь может рассказать на каком принципе работает этот шейдер?
Как рассчитывается, затемнение в зависимости от глубины воды? Можно ли написать подобный шейдер для бесплатной версии Unity? Вот пример работы данного шейдера: http://approject.comxa.com И тема на форуме Unity, за 2009 год: http://forum.unity3d.com/threads/wat...y-indie.25294/ |
Ответ: Depth water shader
На сколько я понимаю, в шейдере можно использовать текстуру глубины с камеры
PHP код:
В примере для отражений видимо используется скайбокс, поэтому, скорее всего, такую же воду можно сделать на бесплатной версии Unity. В unity есть два пакаджа для воды, для бесплатной версии и для Pro. |
Ответ: Depth water shader
Вложений: 2
Андрей а сложно ли написать такой шейдер?
Нужно чтобы чем больше было расстояние между водой и песком, тем темнее была бы вода. Я собрал сцену с водой и песком (картинка ниже), сцену прикладываю к сообщению. Не мог бы ты мне помочь с написанием такого шейдера? С чего начать? Может еще кому-нибудь пригодиться. |
Ответ: Depth water shader
К сожалению у меня не хватает опыта написания подобных шейдеров
|
Ответ: Depth water shader
Ну ладно, буду искать решение. Можно конечно еще сделать маску проскандировав дно, и в зависимости от глубины заполнить карту прозрачности...
|
Ответ: Depth water shader
а)
1. читаешь _CameraDepthTexture 2. берёшь аналогичную глубину фрагмента воды 3. находишь разницу между ними 4. юзаешь как коэф для альфы б) 1. читаешь карту высот террейна 2. берёшь высоту воды в такой же системе координат 3. находишь разницу между ними 4. юзаешь как коэф для альфы |
Ответ: Depth water shader
Решение нашлось... нужно просто не шейдер воды менять, а шйедер земли.
http://jakobknudsen.com/?p=224 Учитывая позицию по высоте IN.pos.y Меняем яркость текстуры |
Ответ: Depth water shader
Код:
а) Но это наверное в будущем. Так как сам я вряд ли такой шейдер напишу, квалификация в этом деле у меня тоже недостаточная) Плюс там еще какие-то команды в коде вроде нужно использовать в чем их таинственный смысл мне вообще не понятно. http://docs.unity3d.com/Manual/SL-Ca...thTexture.html |
Ответ: Depth water shader
Цитата:
а высота воды пойдёт, если ты с картой высот террейна сравниваешь. |
Ответ: Depth water shader
Вообще нужно попробовать написать этот шейдер. Интересно, а андроид его потянет?
p.s. Mr_F_ , полистал твой блог, судя по темам, у тебя опыт работы с шейдерами приличный) |
Ответ: Depth water shader
Вложений: 2
Что-то получается да не то...
Что делает Linear01Depth ? |
Ответ: Depth water shader
Цитата:
Цитата:
|
Ответ: Depth water shader
Вложений: 1
Получилось извлечь линейную глубину изображения.
Как я понял поверхность дна должна отрисовываться в z-buffer, после чего шейдер воды должен считывать показания z буфера и на основе этого уже определять затемненность воды. Но как сделать чтобы шейдер воды не вносил изменения в z буффер? Вставил ZWrite OFF не работает... Код:
Shader "Render Depth" { |
Ответ: Depth water shader
Цитата:
|
Ответ: Depth water shader
Вложений: 1
"Queue" - как я понял определяет положение в очереди прорисовки.
"RenderType"="Transparent" - Transparent не может влиять на Z buffer? Прикладываю проект. Может кто сможет помочь... |
Часовой пояс GMT +4, время: 16:17. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot