Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Эффекты/Шейдеры

Ответ
 
Опции темы
Старый 04.08.2014, 14:12   #16
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 424
Написано 70 полезных сообщений
(для 103 пользователей)
Ответ: Depth water shader

Мне кажется z берется не из Z буфера...
(Offline)
 
Ответить с цитированием
Старый 04.08.2014, 14:17   #17
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Depth water shader

твой шейдер выводит глубину самого объекта, на который он наложен, если что.
возможно ты попутал что-то и хочешь увидеть в нём глубину того что под водой? или я не так понял, что ты хотел им показать?
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 04.08.2014, 14:43   #18
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 424
Написано 70 полезных сообщений
(для 103 пользователей)
Ответ: Depth water shader

Я пытаюсь извлечь глубину из z-buffera что-то вроде: d=Linear01Depth(UNITY_SAMPLE_DEPTH(tex2D(_CameraDe pthTexture,i.uv)));
Но ни как не получается, уже много вариантов перебрал...
Может в indie эта функция заблокирована?(
Для начала я пытаюсь извлечь значение z земли, что под водой из z буфера...
Потом от этого отнять высоту воды
Ну и затемнить воду по этому значению.
Была такая depth water, но в 4 версии Unity она не работает(
(Offline)
 
Ответить с цитированием
Старый 04.08.2014, 18:09   #19
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Depth water shader

Возьми любой шейдер частиц (частицы работают на Free), там все что тебе надо находится вот в таком условии:
#ifdef SOFTPARTICLES_ON
...
#endif 
ну и еще надо sampler2D_float _CameraDepthTexture;
__________________
Blitz3d to Unity Wiki

Последний раз редактировалось pax, 04.08.2014 в 19:39.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Evgen (05.08.2014)
Старый 05.08.2014, 17:35   #20
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 424
Написано 70 полезных сообщений
(для 103 пользователей)
Ответ: Depth water shader

Вот ссылка на что_то подобное:
http://forum.unity3d.com/threads/ble...slider.253270/

В чем разница: sampler2D_float _CameraDepthTexture ?
В Google упоминается всего пару раз.
(Offline)
 
Ответить с цитированием
Старый 05.08.2014, 17:54   #21
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Depth water shader

В шейдере частиц данный самплер задан вне директив препроцессора. Поэтому я его привел.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 20.08.2014, 14:17   #22
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 424
Написано 70 полезных сообщений
(для 103 пользователей)
Ответ: Depth water shader

Оставлю пока этот шейдер до лучших времен
(Offline)
 
Ответить с цитированием
Старый 19.09.2014, 20:43   #23
Izunad
ПроЭктировщик
 
Аватар для Izunad
 
Регистрация: 02.06.2011
Адрес: Набережные Челны
Сообщений: 103
Написано 27 полезных сообщений
(для 91 пользователей)
Ответ: Depth water shader

По идее если учитывать глубину воды то схема будет такая

прячем плоскость воды
срезаем все что выше воды
рендерим сцену высот (низменость светлая/высота темная)-> сохраняем в текстуру N1 КАРТА ВЫСОТ

далее рендерим эту же сцену с нормальными текстурами -> сохраняем в текстуру N2 КАРТА ПРОЗРАЧНОСТИ/ПРЕЛОМЛЕНИЯ

далее срезаем все что ниже воды
опускаем камеру(важно повернуть правильно)
рендерим ->сохраняем в текстуру N3 КАРТА ОТРАЖЕНИЯ

возвращаем камеру плоскость воды
начинаем рендерить смешивая три выше подготовленые текстуры

Естественно в последнем рендере координаты текстур являются проекционными, то есть ориентируемся по экрану

VS
OUT.Position = mul(IN.Position, matrixWorldViewProject);
OUT.TexProj.x = 0.5f*(OUT.Position.w+OUT.Position.x);
OUT.TexProj.y = 0.5f*(OUT.Position.w-OUT.Position.y);
OUT.TexProj.z = OUT.Position.w;


PS
tex2D(TextureSampler,IN.TexProj.xy/IN.TexProj.z)
Важно так же учитывать что карту высот вы будете делать через шейдер на той же модели где лежат нормальные текстуры, отсюда следует что для модели надо подготовить шейдер с двумя эффектами
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Evgen (22.09.2014)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 13:03.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com