Суббота, 10 Декабря 2022, 03:01

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: beril  
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Генерация текстуры земли
Генерация текстуры земли
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 happy . Здания и дороги генерировать не нужно. Просто ландшафт.
RangerДата: Пятница, 11 Июля 2014, 17:26 | Сообщение # 14
почти ветеран
Сейчас нет на сайте
Цитата sinoptis ()
уже натыкался diamod squere

А что не устроило??


sinoptisДата: Суббота, 12 Июля 2014, 10:56 | Сообщение # 15
почетный гость
Сейчас нет на сайте
Я смотрел на него прежде всего как на алгоритм генерации вменяемого ландшафта. В моем случае ландшафт плоский, т.к. для RTS не подходит процедурный ландшафт, это будет смотреться убого. Мне просто нужно сделать процедурную текстуру земли. И кстати, diamond-square очень ресурсоемкий, при запуске даже с небольшим разрешением карты, Юнити довольно ощутимо зависает. Но теперь я придумал другой способ использования этого алгоритма.

Добавлено (12.07.2014, 10:56)
---------------------------------------------
Ну вот, нечто более похожее на то, что нужно. happy Можно еще поэкспериментировать со значениями.

Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Генерация текстуры земли
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2022 Рейтинг