Многоразовое использование материалов

Импорт текстур, моделей, звуков и пр.

Многоразовое использование материалов

Сообщение west131087 19 сен 2010, 03:01

Добрый вечер господа.

Делаю на Unity iPhone уровень без использования сторонних программ а соответственно и импорта, поскольку в моем случае это просто невозможно из за специфики игры. Проблема заключается в том, что я хочу использовать один материал для многих Cube's и Plane's, которые имеют разный размер и пропорции, а этот материал растагивается по всей поверхности. Как сделать так, чтобы текстура замостила поверхность вместо растягивания. Стандартный tile у материала не помагает, так как изменения влияют сразу же на все обтянутые этим материалом обьекты. Собственно проблемму видно на скриншоте(один материал применяется для всех обьектов)
Изображение
Мне нужно, чтобы все поверхности были обтянуты одним материалом, а еденицы текстуры были одинакового размера. Тоесть еще сформулирую вопрос по другому, как для материала текстуры включить автоматический тайлинг (вроде режима "замостить"). Опция Repeat/Clamp у текстуры не помагает. И еще тогда вопрос, если это сделать невозможно, то сильно ли влияет большое количество материалов на производительность?
west131087
UNец
 
Сообщения: 34
Зарегистрирован: 19 сен 2010, 02:33

Re: Многоразовое использование материалов

Сообщение Paul Siberdt 19 сен 2010, 03:57

Вы не меняйте тайлинг основного материала, а заведите параметр (Vector2) в скрипте объекта (вешаем на каждый объект скрипт, в котором в Vector2 задаем тот самый тайлинг) и с его помощью управляйте размещением текстуры per object. Как только к материалу применяются локальные изменения, из материала-референса формируется уникальная копия только для текущего объекта. Посмотрите справку по компоненту Material (что Вы должны были выполнить первым делом) и функцию SetTextureScale.

Если создание клона материала недопустимо - прямая дорога к работе с мешем объекта и массивом UV-координат вертексов, его составляющих. Это уже другая песня, более длинная и заунывная. :)
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт

Re: Многоразовое использование материалов

Сообщение Parhelion 20 сен 2010, 14:40

не думаю что кол-во материалов напрямую влияет на производительность. А вот количество текстур совершенно точно влияет. И еще статичные объект с одинаковым материалом можно программно объединять в один объект и тем самым экономить кучу дроколов.

А проблему вашу можно частично решить создавая правильные текстурные развертки ваших объектов в тридередакторе.
Например есть два куба один размером 1х1х1 а второй 2х2х2. На персом текстура лежит нормально а на втором растянуто.
Нужно открыть второй куб в редакторе и увеличить площадь развертки в два раза. Всё! Делов то...
Parhelion
UNец
 
Сообщения: 10
Зарегистрирован: 08 май 2010, 10:26

Re: Многоразовое использование материалов

Сообщение Neodrop 20 сен 2010, 14:48

ВЫ не думайте, вы поверьте знающим камрадам. В [unity 3D] Unity количество материалов самый важный тормозящий фактор. Во всяком случае в 2.6.1 ;)
Кстати, в 3.0 "склеивать" объекты по материалам уже не нужно - там есть статический и динамический батчинг - автоматическое "склеивание".
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт


Вернуться в Медиа

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 3