Страница 1 из 1

Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 08 апр 2009, 11:50
ffinder
Есть: префаб кирпича, с материалом.
Нужно: каждый кирпич красить в свой цвет.

ЗЫ:Цветов много, т.е. "делаем много материалов" не проходит

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 08 апр 2009, 11:59
Neodrop
Смена цвета на gameObject.renderer.material приводит к генерации нового материала, а значит нового Render Call, что есть совсем-совсем не оптимально. Лучше таки иметь набор разных материалов и копировать их на свои кирпичи. Так, в конечном итоге, в сцене материалов будет использовано меньше, чем в случае со сменой цвета (скриптом). :-B

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 08 апр 2009, 19:14
gnoblin
А если поделить текстуру, например, на 4х4 части (16 разных текстурок в 1й) + сделать 16 моделек кирпичей с разными uv...?

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 08 апр 2009, 19:20
Neodrop
Неплохо. Но проще одну текстуру и 16 материалов с разными цветами.

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 08 апр 2009, 20:02
ffinder
только вот материалов не 16 (не EGA адаптер все-таки), а как минимум 60. как максимум 256*256*256.

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 08 апр 2009, 20:34
Neodrop
А на кой тебе все цвета 256*256*256 ? Это что за помойка такая?
Ответ однозначный - если кирпичей будет больше чем вариаций материала, то лучше заранее заготовить все материалы. Или не париться и наплевать на производительность. :D

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 09 апр 2009, 17:18
Const_47
&NeoDrop

Ой.
Смена цвета на gameObject.renderer.material приводит к генерации нового материала, а значит нового Render Call, что есть совсем-совсем не оптимально.


То есть, если я напишу так
Код: Выделить всё
function Awake() {

var obj = Resources.Load("torus");

var obj0 = Instantiate(obj,Vector3(0,0,0),Quaternion.identity);
obj0.renderer.material.color = Color(1,0,0,1);

var obj1 = Instantiate(obj,Vector3(0,1,0),Quaternion.identity);
obj1.renderer.material.color = Color(0,1,0,1);
}


то что? изменяя цвет инстанса я буду каждый раз, для каждого инстанса, генерировать новый материал? А разве ента генерация не происходит в процессе инстансирования? Поделитесь пожалуйста знаниями, мне очень
хочется понять.

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 09 апр 2009, 18:32
Neodrop
Нет. При инстансировании объекта, используются его же меши, компоненты и материалы. Любое изменение материала приводит к генерации нового материала.

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 09 апр 2009, 18:54
Const_47
Спасибо, да енто так. Потестил и посмотрел в инспектор:)

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 09 апр 2009, 19:09
Neodrop
Я поражён, что угадал! :-?
=))

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 10 апр 2009, 10:29
fox
to Neodrop :-bd =))

Re: Объекты разных цветов: тысяча префабов с тысячей материалов?

СообщениеДобавлено: 20 апр 2013, 19:38
Palmer
да вы серьёзно???
просто переписываете шейдер, в нём добавляете цвет вершины к результирующему, и при создании кирпича присваиваете всем вершинам кирпича нужный цвет.
всё, материал один, всё батчится, миллион цветов и один дравкол