В Unity включены некоторые префабы с водой (включая необходимые шейдеры, скрипты и ассеты с графикой) в пакетах Standard Assets и Pro Standard Assets. Unity содержит обычную простую воду, в то время как Unity Pro содержит воду с отражениями в реальном времени и преломлениями. В обоих случаях вода поставляется в качестве отдельных дневных и ночных префабов.
В большинстве случаев вам достаточно просто разместить один из существующих префабов в вашей сцене (убедитесь, что у вас установлен набор стандартных ассетов):
Для воды префаб использует меш в форме овала. Если вы желаете использовать другой меш, то проще всего просто поменять его в Mesh Filter у объекта воды:
Создание воды с нуля (для продвинутых пользователей)
Простая вода в Unity требует добавления скрипта на плоский меш и использования шейдера воды:
Отражающая/преломляющая вода в Unity Pro требует аналогичных шагов для настройки с нуля:
Свойства в материалах воды
Эти свойства используются в шейдере отражающей и преломляющей воды. Большинство из них также используется и в шейдере простой воды.
Свойство: | Функция: |
---|---|
Wave scale | Изменение масштаба карты нормалей волн. Чем меньше значение, тем больше будут волны у воды. |
Reflection/refraction distort | Как сильно отражение/преломление будет искажаться картой нормалей волн. |
Refraction color | Дополнительный оттенок отражения. |
Environment reflection/refraction | Render текстуры для отражения и преломления в реальном времени. |
Normalmap | Определяет форму волн. Итоговые волны производятся путём совмещения этих двух карт нормалей, каждая из которых смещается в разном направлении, с разным масштабом и скоростью. Вторая карта нормалей в два раза меньше первой. |
Wave speed | Скорость смещения для первой (1е и 2е числа) и второй карты нормалей (3е и 4е числа). |
Fresnel | Текстура с альфа-каналом, управляющим эффектом Fresnel - количество видимого отражения против количества видимого преломления, в зависимости от угла зрения. |
Остальные свойства не используются отражающим и преломляющим шейдером, но должны быть настроены в случае, если графический ускоритель пользователя не поддерживает его и вынужден откатиться на более простой шейдер.
Свойство: | Функция: |
---|---|
Reflective color/cube and fresnel | Текстура, которая определяет цвет воды (RGB) и эффект Fresnel (A), в зависимости от угла зрения. |
Horizon color | Цвет воды на горизонте (используется только в шейдере простой воды). |
Fallback texture | Текстура для отображения воды на очень старых видео картах, если не может работать ни один из более красивых шейдеров. |