Генерация текстуры земли
|
|
sinoptis | Дата: Вторник, 08 Июля 2014, 19:00 | Сообщение # 1 |
почетный гость
Сейчас нет на сайте
| В общем, ничего экстраординарного не требуется. Есть плейн, для него нужно из кода создать текстуру, состоящую из смешения нескольких других. Что-то вроде этого: Есть мысль. Генерировать рандомный шум (perlin, voronoy) и используя его как маску накладывать тайл земли, скажем. Потом, перегенирировать карту с другими значениями и поверх замли наложить через эту карту тайл травы, например. Но дело в том, что я не знаю как это сделать. Прошу подскажите как это можно реализовать или подтолкните в нужном направлении.
|
|
| |
Ranger | Дата: Вторник, 08 Июля 2014, 19:08 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| район будет тайлиться, или планируется закрытие одной текстурой на плашку??
|
|
| |
sinoptis | Дата: Вторник, 08 Июля 2014, 19:11 | Сообщение # 3 |
почетный гость
Сейчас нет на сайте
| Ranger, да, район будет тайлится.
|
|
| |
Ranger | Дата: Вторник, 08 Июля 2014, 19:17 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| 1. Texture2D.SetPixel Но это долго 2.заранее подготовить шумы и комбинировать с основной текстурой шейдером
Сообщение отредактировал Ranger - Вторник, 08 Июля 2014, 19:18 |
|
| |
sinoptis | Дата: Вторник, 08 Июля 2014, 19:21 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Ranger, вот про второй вариант я и хотел узнать. Т.к. в первом случае, не знаю как сделать плавные переходы между различными видами текстур.
Сообщение отредактировал sinoptis - Вторник, 08 Июля 2014, 19:26 |
|
| |
Ranger | Дата: Вторник, 08 Июля 2014, 19:25 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| Цитата sinoptis ( ) это и так понятно тогда я не понял вопроса. трафарет также: или попиксельно генерить текстуру из трафарета и исходной текстурой, или шейдером
|
|
| |
sinoptis | Дата: Вторник, 08 Июля 2014, 19:29 | Сообщение # 7 |
почетный гость
Сейчас нет на сайте
| Придется попиксельно, мне нужно будет все это дело сохранять. Как можно сделать плавные переходы? Понимаю, что нужно исходить из интенсивности черного в карте шума и задавать интенсивность или прозрачность соответственно этому пикселю.
|
|
| |
Ranger | Дата: Вторник, 08 Июля 2014, 19:36 | Сообщение # 8 |
почти ветеран
Сейчас нет на сайте
| Цитата sinoptis ( ) не знаю как сделать плавные переходы между различными видами текстур. А у Вас это не получится и при простом (указанном выше)использовании шейдеров.
Если про террейн без швов, то, насколько я в этом понимаю, в каждый каждый тайл придется засовывать 9 текстур (гдавная текстура и 8 текстур соседей) и менять их прозрачность на границе но это задачка ни разу не на 5 минут.
|
|
| |
sinoptis | Дата: Четверг, 10 Июля 2014, 12:37 | Сообщение # 9 |
почетный гость
Сейчас нет на сайте
| Ranger, плавный переход я имел ввиду между типами текстур, в пределах одного плейна. А насчет плавного перехода между двумя плейнами, это верно. Над этим нужно подумать.
Добавлено (10.07.2014, 12:37) --------------------------------------------- Ranger, спасибо за советы. Проблема с плавными переходами решена. На скрине два отдельных плейна. Смешиваются (пока) две текстуры стандартные.
Сообщение отредактировал sinoptis - Четверг, 10 Июля 2014, 12:38 |
|
| |
Ranger | Дата: Четверг, 10 Июля 2014, 12:39 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
| Ну супер!. швов не видно. чем смешал??
|
|
| |
sinoptis | Дата: Пятница, 11 Июля 2014, 17:01 | Сообщение # 11 |
почетный гость
Сейчас нет на сайте
| На Unify нашел скрипт генерации шума Перлина. Просто нужно представить текстуру второго плейна в виде продолжения первой текстуры. Т.к. шум бесшовный можно генерировать бесконечно большие бесшовные текстуры. Смешение происходит просто: цвет1*прозрасность1+цвет2*прозрачность2. Прозрачность получаем из Перлина, а "цвета" это соответственно цвета пикселей. Если не поленюсь сделаю еще наложение с учетом карт высот т.е. так примерно Добавлено (11.07.2014, 17:01) --------------------------------------------- И все таки это далеко не то чего я хотел. Кто знает, как генерируется нечто такое? Я имею ввиду именно генерацию областей. С помощью Перилна получается сделать просто равномерную текстуру, что совершенно не смотрится.
|
|
| |
Ranger | Дата: Пятница, 11 Июля 2014, 17:20 | Сообщение # 12 |
почти ветеран
Сейчас нет на сайте
| сделай фрактальный генератор высот. https://sohabr.ru/post/222697/ уже потом исходя из высоты присваивай тайлу необходимую текстуру, воду, наличие леса и т.д. По генерации зданий и дорог с лету не подскажу.
Сообщение отредактировал Ranger - Пятница, 11 Июля 2014, 17:20 |
|
| |
sinoptis | Дата: Пятница, 11 Июля 2014, 17:24 | Сообщение # 13 |
почетный гость
Сейчас нет на сайте
| Ranger, уже натыкался diamod squere . Здания и дороги генерировать не нужно. Просто ландшафт.
|
|
| |
Ranger | Дата: Пятница, 11 Июля 2014, 17:26 | Сообщение # 14 |
почти ветеран
Сейчас нет на сайте
| Цитата sinoptis ( ) уже натыкался diamod squere А что не устроило??
|
|
| |
sinoptis | Дата: Суббота, 12 Июля 2014, 10:56 | Сообщение # 15 |
почетный гость
Сейчас нет на сайте
| Я смотрел на него прежде всего как на алгоритм генерации вменяемого ландшафта. В моем случае ландшафт плоский, т.к. для RTS не подходит процедурный ландшафт, это будет смотреться убого. Мне просто нужно сделать процедурную текстуру земли. И кстати, diamond-square очень ресурсоемкий, при запуске даже с небольшим разрешением карты, Юнити довольно ощутимо зависает. Но теперь я придумал другой способ использования этого алгоритма. Добавлено (12.07.2014, 10:56) --------------------------------------------- Ну вот, нечто более похожее на то, что нужно. Можно еще поэкспериментировать со значениями.
|
|
| |