Использование Шейдера Terrain [Сustom Mesh]

Программирование на Юнити.

Использование Шейдера Terrain [Сustom Mesh]

Сообщение Zamarrus 12 мар 2017, 23:28

Я уже писал подобный вопрос, касательно наложение текстуры на кастомную модель поверхности. Поискав информацию на форуме, пришел к выводу, что у меня два выхода :
1. В ручную создавать текстуру(красить пиксели);
2. Использовать заготовленные текстуры, как это делает встроенный в Юнити Terrain.
Второй вариант оказался более интересный и сложный, по тому он мне и приглянулся. Вопрос заключается в следующем : Как использовать этот самый шейдер. Я так понял что нужно накладывать все текстуры разом, а потом в определенных местах редактировать Альфаканал, для каждой текстуры отдельно, как это делает Terrain Юньки. В теории все понятно, а на деле как выглядит ума не приложу.
Zamarrus
UNец
 
Сообщения: 28
Зарегистрирован: 01 фев 2017, 16:07

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Ололош 13 мар 2017, 07:07

допустим у вас 4 текстуры: создаете новую и воспринимаете каждый цвет, как альфаканал. RGBA = 4 канала. шейдер чертовски прост.
Ололош
UNец
 
Сообщения: 13
Зарегистрирован: 05 мар 2017, 15:13

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Zamarrus 13 мар 2017, 10:05

Спасибо за ответ, однако, я все же не понимаю, как использовать несколько текстур на материале, где всего один входной материал. В теории все просто, а на деле, абсолютно не понятно. Причем там всего один альфаканал, а Tarrain позволяет каждой текстуре дать альфаканал.
Zamarrus
UNец
 
Сообщения: 28
Зарегистрирован: 01 фев 2017, 16:07

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Zamarrus 13 мар 2017, 10:07

Аааааа, я кажеся понял. Создаем голую Texture2D и смешиваем на ней имеющиеся текстуры. Затем редактируем альфаканал. Кажеться...
Zamarrus
UNец
 
Сообщения: 28
Зарегистрирован: 01 фев 2017, 16:07

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Zamarrus 13 мар 2017, 16:09

В общем, суть проблемы теперь такова: Я беру пиксели текстуры скажем 512 х 512, потом располагаю их в моей свеженькой текстурке 216 х 216. Вопрос таков как сжать изображение до 64 х 64 и можно ли как-то цвета передать без массива. То есть я понимаю что гладко и сладко не бывает. Но я все же не понимаю как это реализует Terrain юнити.
П. С. Как редактировать альфаканалы я так и не понял. Я просто беру цвета из текстур.
Zamarrus
UNец
 
Сообщения: 28
Зарегистрирован: 01 фев 2017, 16:07

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Tolking 13 мар 2017, 16:29

Ищите сплатинг.
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2714
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Zamarrus 13 мар 2017, 18:05

Tolking писал(а):Ищите сплатинг.

Я скажу честно. Не знаю что это такое.
Zamarrus
UNец
 
Сообщения: 28
Зарегистрирован: 01 фев 2017, 16:07

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Woolf 13 мар 2017, 18:08

Zamarrus писал(а):
Tolking писал(а):Ищите сплатинг.

Я скажу честно. Не знаю что это такое.


Вот и ищите. http://g.zeos.in/?q=unity3d%20splatting
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Zamarrus 13 мар 2017, 18:11

Может всетаки объясните как работает шейдер юньки, на обычном террейне, хотя бы в двух словах. Не хочется велосипед придумывать, кой их и так много, причем многие даже не оптимизированы.
Zamarrus
UNец
 
Сообщения: 28
Зарегистрирован: 01 фев 2017, 16:07

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Ололош 13 мар 2017, 22:44

нашел в гугл картинках. смысл в общем передает на отлично

https://shaderforge.userecho.com/s/atta ... 4e3d8d.png

Понятным языком : используется грубо говоря 5 RGBa текстур:
(например)
1. Трава
2. Песок
3. Камни
4. Лава

5. RGBA текстура, как альфаканал
R - альфа для "травы", G - Альфа для "Песка", B для камней, А - для "лавы". Градиент одного из каналов - дает полупрозрачность. Так работает встроенный шейдер юнити.

При использовании атласов всё немного сложнее, но смысл не меняется.
Ололош
UNец
 
Сообщения: 13
Зарегистрирован: 05 мар 2017, 15:13

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Zamarrus 14 мар 2017, 10:48

Огромное спасибо тебе, думал никто не откликнется. Но видишь в чем фишка шейдера Terrain, он принимает всего одну основную текстуру и одну альфу. Да, без спорно, соорудить шейдер который замиксует текстуры намного проще, однако не хочется ограничивать себя 4/5/6 текстурами. Если не ошибаюсь Terrain Юньки как раз не ограничивается в этом плане. Проще говоря, мне нужен алгоритм, отвечающий за построение собственной текстуры. Весь интернет перерыл, но кроме GetPixel и SetPixel ничего не нашел. Хах, как говорил один хороший программист "Избегай циклов" :).
Zamarrus
UNец
 
Сообщения: 28
Зарегистрирован: 01 фев 2017, 16:07

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение alt3d 14 мар 2017, 12:14

Zamarrus писал(а):однако не хочется ограничивать себя 4/5/6 текстурами.

1. Больше 4 текстур тебе не понадобиться почти никогда
2. Сплаттинг - приличная нагрузка на видеокарту. Если больше 4-ех текстур придется делать шейдер мультипроходной (террейн во всяком случае работает так)

Zamarrus писал(а):без спорно

бесспорно
alt3d
Старожил
 
Сообщения: 687
Зарегистрирован: 04 сен 2011, 21:19
  • Сайт
  • ICQ

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Zamarrus 14 мар 2017, 19:10

Спасибо, будем делать выводы с имеющейся у нас информацией. Спасибо еще раз :)
Zamarrus
UNец
 
Сообщения: 28
Зарегистрирован: 01 фев 2017, 16:07

Re: Использование Шейдера Terrain [Сustom Mesh]

Сообщение Woolf 14 мар 2017, 21:26

1. Больше 4 текстур тебе не понадобиться почти никогда


Эх, ваши слова, да левелдизу в уши..

На самом деле и 8 не хватает для нормальной карты.. У меня обычно колеблется между 14ю и 16ю текстурами. Вот кто бы научил терейн брать текстуры из атласа? Одна текстура 2048х2048, это 16 текстур по 512. Вот этого уже может хватить.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59


Вернуться в Скрипты

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

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