В уроке я расскажу как создать height map и использовать displacement map для эффекета паралакса.
Урок опускает пояснения как пользоваться программами.
По просьбе Модератора добавлю ссылку на понятие нормаль и как что делаеться
http://forum.cgtalk.by/cmps_index.php?page=20416 (http://forum.cgtalk.by/cmps_index.php?page=20416)
Для начала возьмем height map ее и создать проще чем сделать текстуру для эффекта паралакса.
возьмем обычную текстуру камня . Я беру обычно с СG textures стоковое фото и из нее уже делаю тайл-текстуру
( можно вручную, можно используя программу генератор. Уроков как создавать такую текстуру на просторах интернета масса, поэтому не буду повторяться.)
вот наша текстура
(http://s019.radikal.ru/i614/1212/e1/ce35865427e1.jpg) (http://www.radikal.ru)
Следующим нашим шагом нужно сделать из этой текстуры качественный нормал - есть много программ для генерации нормал карт из цветного изображения - Nvidia плагин для фотошопа,Xnormal (очень хорошая программа из бесплатных.) PixPlant , Crazybump. у каждой свои достоинства и недостатки.
Если вам по карману я бы советовал Crazybump, если же нет стоит остановиться на Xnormal - много инструментов и возможностей.
я для урока воспользуюсь Crazybump.
Делаю я нормаль в 2 этапа - первый это снятие мелких неровностей и шероховатостей присущих структуре материала. делаю непосредственно из самой текстуры.
Использую только ползунки fine и medium
(http://s006.radikal.ru/i214/1212/c6/08e070a7c51a.jpg) (http://www.radikal.ru)
второй шаг сделать карту высоты по которой будет считываться из нормали то что должно быть выпукло , а что наоборот нужно вдавить для этого нужно на текстуре сами камни осветлить, а растояние между ними
затемнить. Не нужно делать сами камни исключительно белыми , ведь тогда выпирать они будут на одинаковое расстояние от стены. Это немного противоестественно в бутовой кладке.
как это лучше сделать решать вам. можно использовать инструменты уровни и кривые в фотошопе, можно это сделать все ручками. либо же осветлени\затемнение каждого камешка, Либо выделить нужные участки выделением и засветлить нужное.
в итоге у меня вышло такое изображение для снятия крупных деталей в крейзи бампе
(http://s018.radikal.ru/i505/1212/66/a368e90ba3b3.jpg) (http://www.radikal.ru)
собственно сама нормаль с настройками в крейзи
(http://s020.radikal.ru/i701/1212/7b/3a99f1ce27d0.jpg) (http://www.radikal.ru)
далее открываем одну из карт в фотошопе и помещаем на нее вторым слоем вторю нармаль.
для второго слоя используем режим наложения перекрытие.
объединяем наши слои.
далее шаг не обязательный в этом случае, но необходим если вы будуте использовать нормаль в этом варианте. нужно восстановить информацию в синем канале.
в фильтре нвидиа установите такие настройки и нажмите ок.
(http://s44.radikal.ru/i104/1212/5a/f839244b05cb.jpg) (http://www.radikal.ru)
можно и в Xnormal в том плагине что устанавливаеться для фотошопа выбрать пункт -normalize normal map
У нас есть обычная карта нормал. сохраним ее если нам нужно сделать паралакс.
но для height map поступаем следующим образом.
открываем вкладу каналы и копируем красный канал( выделяем все изображение и ctrl + c потом выбираем альфа канал и жмем ctrl + v ) .
далее закрашиваем красный и синий каналы в черный цвет.
height map готова.
(http://s018.radikal.ru/i503/1212/48/113de72880f4.jpg) (http://www.radikal.ru)
сохраням в .dds в DXT3. используем для материал шейдер bump_statik.
Теперь о включении дисплейса в нашу текстуру.
(спасибо Mark7)
у нас есть сохраненная карта нормали . в крейзи бампе из нее можно снять Дисплейс.
(http://s017.radikal.ru/i435/1212/67/2e202177dc24.jpg) (http://www.radikal.ru)
открываем отдельно дисплейс отдельно нашу карту нормалей. изменям размер дисплейса с 1024 на 256*256
копируем в нашей нормали красный канал в альфа канал. и затем копируем дисплейс в красный канал нашей нормали(тем же способом). размещаем дисплейс по всему красному каналу(увеличиваем размер).
затем размытие по гауссе (0,5-0,6) и у вас должно получиться что то вроде этого
(http://s57.radikal.ru/i158/1212/93/4cc57a067dda.jpg) (http://www.radikal.ru)
так же можно поместить вот эту текстуру
(http://s018.radikal.ru/i505/1212/66/a368e90ba3b3.jpg) (http://www.radikal.ru)
которую мы готовили для снятия нормали. будет вот такой результат
(http://s019.radikal.ru/i601/1212/38/d96dd63c03cb.jpg) (http://www.radikal.ru)
разница в игре между этими 2 вариантами будет очень существенная. какой лучше выбирать вам
я отдаю предпочтение второму.
шейдер для этого материала тот же что и в первом случае.
вот пожалуй и все.