3

Продолжение поста «Как я создавал ландшафт в unity по реальным геоданным»5

Вобщем настало время все это безобразие покрыть текстурами. Идея в том, что надо как-то покрывать все это разными текстурами, а если точнее, то делать привязку по высотам (для начала) . И вот тут я решил, что надо сразу заложить оптимизацию, ибо множество текстур для разных высот да плюс еще карты нормалей и все такое, вобщем надо чтобы не тормозило. Было приято решение передавать в шейдер не отдельные текстуры а массивы текстур. Итак, первая проблема, надо написать механизм который создаст карту слоев, на основании настроек привязки к высотам. Я решил, что буду делать одну большую текстуру и передавать в нее данные смещения для текселей и размер области выборки тайла. Это позволит передать в шейдер сразу всю карту. Так, значит скрипт в Unity генерирует текстуру R8, т.е. это одноканальное изображение с 255 значениями на пиксел, что по моей задумке будет указателем на индекс текстуры в массиве. Ну или проще говоря, мы будем делать семпл каждого текселя в слое с индексом взятым из карты слоев.

Аналогичным образом, очевидно надо строить и карту смешивания, потому что без смешивания мы видим резкие переходы. Тут меня ждал небольшой сюрприз. Дело в том, что мне надо как-то передать в шейдер, где "заканчивается" область одного слоя, и начинается область другого. Пока я остановился на том, что буду так-же генерировать еще одноканальную R8 текстуру (карту смешивания) которая будет содержать данные о "силе" пикселя, наверное это просто аналог альфа-канала. Значит, я делаю семпл для конкретного текселя из карты смешивания, и если значение больше 0, то делаю интерполяцию с нижним слоем... Ну это в теории, на практике пока это все еще не заработало

Все эти сложности и хитрости, мною задуманы исключительно ради оптимизации семплов, потому что я к примеру пробовал делать подобное на стандартном Terrain от Unity, и тормоза выхвали не слабые)

АААААА, точно, я ж еще и стохастическое семплирование прикрутил, так что это еще +3 семпла на тексель для текстуры и карты нормалей. так что думаю я еще отказаться от интерполяции между слоями, в пользу дезеринга ( https://ru.wikipedia.org/wiki/Дизеринг )

Это позволит экономит один-два семпла...поглядим

ну и вот видео-отчет:

https://youtu.be/w3Fqocu-6zw?si=lEOOGZ64jFp_SH9w

https://rutube.ru/video/e47009a893ea36a1d091ab538ab52686/

https://vkvideo.ru/video-227321118_456239036

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества