Вода с отражением и переменной прозрачностью.

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Вода с отражением и переменной прозрачностью.

Сообщение Mikle » 11.06.2007 (Пн) 13:56

Реализована зависимость прозрачности от угла зрения, проективное отражение, двукратный рендер в текстуру - для того, что под водой, и для того, что отражается. Демка и исходник.
http://tuapse-mikle.narod.ru/Water.rar
http://tuapse-mikle.narod.ru/WaterSrc.rar
Управление - стрелки, мышь, I - инверсия мыши.

Naked
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 207
Зарегистрирован: 27.10.2004 (Ср) 3:16
Откуда: Дальнегорск столица мира

Сообщение Naked » 11.06.2007 (Пн) 14:26

Mikle а чего с картинкой?
У вас нет доступа для просмотра вложений в этом сообщении.

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 11.06.2007 (Пн) 14:47

Naked
Все нормально, просто дальше ландшафта нет. Ты походи по карте.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 11.06.2007 (Пн) 17:31

Бросается в глаза, что текстура под водой значительно менее детализована, чем над водой. В остальном - прекрасно!

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 11.06.2007 (Пн) 18:46

Mikle
Водичка супер... С тебе скажу что намного лучше сделана чем в современных играх... Остаеться прикрутить эффект пены там где вода пересекает ландшафт и CryTeK будет завидовать :D ВОобщем респект...
ЗЫ. Смотри личку...
#define ROFL 0xDDDD

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 11.06.2007 (Пн) 18:50

Наглухо подвесила ноут :-(
Изображение

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 11.06.2007 (Пн) 18:58

keks-n
Думаю это шейдеры его подвесили... Видимо он не захотел матюкатся, хотя хз... Вообще скажи конфиг ноута...
Последний раз редактировалось DirectXManiac 11.06.2007 (Пн) 19:04, всего редактировалось 1 раз.
#define ROFL 0xDDDD

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 11.06.2007 (Пн) 20:33

Очень красивая водичка! Не нравится только когда двигаешся вода мерцает

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 11.06.2007 (Пн) 20:44

очень! причём как вблизи, так и издалека... ещё бы хорошо затемнять ландшафт под водой в зависимости от глубины. И края воды отрисовывать, но это сложно мне кажется.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 11.06.2007 (Пн) 21:23

nekeda
ты про прилив? затемнять сложно... объемный туман думаю пойдет...
По поводу мерцания - у мя все ок))
#define ROFL 0xDDDD

nekeda
Постоялец
Постоялец
 
Сообщения: 710
Зарегистрирован: 10.04.2005 (Вс) 23:20

Сообщение nekeda » 11.06.2007 (Пн) 22:28

затемнить как раз не сложно) паралельные чёрные (лучше коричнивые) однополигонные плоскости, почти полностью прозрачные, на некотором расстоянии друго от друга. Чем больше глубина, тем больше их будет видно - и тем меньше будет просвечивать дно.

Изображение

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 12.06.2007 (Вт) 8:48

DirectXManiac
Переменная прозрачность реализована в шейдере. Меняется oD0.w - альфаканал Diffuse.
nekeda
Никаких дополнительных плоскостей, затемнение с глубиной сделаю на шейдере без лишней геометрии.
Вот сделать береговую пену посложнее.
Я забыл отфильтровать третью стадию текстурирования, в результате под водой текстура не отфильтрована и кажется менее детализированной.
В отражениях присутствует лишняя геометрия, туда, при некоторых условиях, попадают подводные объекты, нужно
вводить дополнительную плоскость отсечения.
FPS сравнительно невысок, так как отсутствует оптимизация, добавлю плоскость отсечения, переведу в полноэкранный режим
(это было окно, развернутое на весь экран), заменю DIPUp на DIP - глядишь и ускорится. А для отладки так проще.

Исправлю замеченные баги, выложу обновление.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 12.06.2007 (Вт) 13:01

Mikle
Спасибо, буду разбираться... Решил сделать свою воду. Приду с моря - займусь. Появилась идея как сделать мелкие бамповые искажение без VolumeTexture и вообще без анимации карты нормалей. На идею натолкнул пример из DX SDK. Возможно что то и выйдет.Думаю береговую линию тоже не так и сложно сделать. Надо делать проверку на высоту воды и ландшафта. Там где она есть проверять угол между точкой воды и ландшафтом и накладывать плоскость с анимированой текстурой прилива... ВОт так по алгоритму не сложно а вообщем надо думать... :)
ЗЫ. Я снова вернулся!
#define ROFL 0xDDDD

StimorolD3DX
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 293
Зарегистрирован: 03.04.2007 (Вт) 18:19
Откуда: Kiev city

Сообщение StimorolD3DX » 12.06.2007 (Вт) 15:04

А у меня чтото не получается сделать отражение рендерингом в текстуру, посмотрите пожалуйста. Или может у кого есть примитивный пример с рендерингом в текстуру.
У вас нет доступа для просмотра вложений в этом сообщении.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 12.06.2007 (Вт) 18:09

StimorolD3DX
Смотри исходники... Так есть такой класс
Добавлено спустя 12 часов :) :
Почти всю ночь парился с водой. Что то да и получилось. Пытался сделать воду без шейдеров... Анимацию воду можно сделать как через VolumeTexture так и через обычное бамповое искажение. Так я видел сделали Microsoft в примере из DX SDK 8 :D Спроектировать текстурку мне удалось почти правильно без шейдеров. Осталось только выспаться, набраться сил и сесть делать класс(так сказать лепить из изменений чужого) :) Вообщем как сделаю что-то менее позорное что выходило - покажу скрин....
#define ROFL 0xDDDD

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.06.2007 (Ср) 9:52

DirectXManiac
А почему обязательно без шейдеров, все равно любая видюха с поддержкой бампа держит VS 1.0?

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 13.06.2007 (Ср) 12:44

Mikle
Тут две причины
1.Я не понимаю асмовских вершинных шейдеров :oops:
2.Исходя из первой спортивный интерес. Хотя думаю можно попробовать с шейдерами
3.А вот VolumeTexture не все держут. ВОт в чем собсно и проблема
#define ROFL 0xDDDD

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.06.2007 (Ср) 19:36

DirectXManiac
Назови хоть одну видюху, чтобы не держала VolTex, но держала бамп.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 13.06.2007 (Ср) 21:32

Mikle
А хотя ты прав, по глупости сказал...:oops: но дело ещё и в том что слабо я разбираюсь в шейдерах... Как раз сейчас делаю водичку на них... пытаюсь точнее :D
#define ROFL 0xDDDD

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 15.06.2007 (Пт) 12:53

Обновил демку:
http://tuapse-mikle.narod.ru/Water.rar
Для тех, кто уже скачивал прошлую версию, можно взять только Exe:
http://tuapse-mikle.narod.ru/WaterExe.rar
Или исходник:
http://tuapse-mikle.narod.ru/WaterSrc.rar

Добавлен клипплан, включена фильтрация, управление то же, плюс Home - End регулируют высоту волн. Инверсию по умолчанию отключил.

DirectXManiac
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1543
Зарегистрирован: 03.11.2005 (Чт) 13:32
Откуда: из DirectX SDK

Сообщение DirectXManiac » 15.06.2007 (Пт) 13:02

Mikle
Если поставить PlaneSize воды равным 1000 и увеличить ландшафт - все равно появляются артефакты :(
#define ROFL 0xDDDD

K0GG
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 20
Зарегистрирован: 28.02.2011 (Пн) 14:26
Откуда: Москва

Re: Вода с отражением и переменной прозрачностью.

Сообщение K0GG » 11.03.2011 (Пт) 14:36

Примеры по ссылкам
http://tuapse-mikle.narod.ru/Water.rar
http://tuapse-mikle.narod.ru/WaterSrc.rar
сейчас недоступны.
У кого-нибудь они сохранились?
K0GG
"Omnia ab uno et in unum omnia"
_____
http://gorkavchukkg.narod.ru

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4147
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Вода с отражением и переменной прозрачностью.

Сообщение Mikle » 11.03.2011 (Пт) 15:00

Моя статья на эту тему, с сорцами и подробным объяснением:
http://www.uraldev.ru/articles/id/37


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

    TopList