forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   EntityColor для .3DS и .X (http://forum.boolean.name/showthread.php?t=8586)

ArtemkA 01.07.2009 03:00

Привет всем.

Как можно изменить цвет моделям .3ds .x? А то функция EntityColor работает только с объектами .b3d и примитивами (с md2 не пробовал). Мне нужно чтоб меш менял цвет когда кликаешь по нему мышкой. С b3d все без проблем... FastExt'ом или другой либой можно? Если можно, то как? Спасибо.

хм, попытался задать другой тип выделения, с помощью прозрачности, тоже некатит...в общем, у меня такая задача: будет много разных моделей (b3d,3ds,x или md2) и когда жмем по одному из них мышью надо чтоб она как то изменила свой вид, для того чтобы было видно какая модель выбрана в данный момент. Хотел сначало цветом, затем прозрачносью и все работате только с b3d моделями, а с другими почему-то нет. Помогите найти выход.

MiXaeL 01.07.2009 03:23

Ответ: EntityColor для .3DS и .X
 
Все модели загруженные через LoadMesh прекрасно изменяют цвет и прозрачность. О_о
С мд2 такое не прокатит, но .x и .3ds в этом плане ничем не отлдичаются от .b3d

ABTOMAT 01.07.2009 03:33

Ответ: EntityColor для .3DS и .X
 
Может, у тебя в модели просто иерархия есть, и формат тут не при чём. Просто EntityColro не действует на припарентенные объекты, то есть каждому припарентенному объекту надо задать цвет отдельно.
Создай для этого рекурсивную функцию, которая будет ставить цвет всем чайлдам.
То же самое относится к текстурингу и к альфе.

ArtemkA 01.07.2009 14:14

Ответ: EntityColor для .3DS и .X
 
Michael, у меня модели грузятся через LoadAnimMesh.
ABTOMAT, не, припарентенных объектов нет.

Значит цвет и прозрачность нелязя менять у припарентенных моделей и загруженных через LoadAnimMesh. Ладно, буду искать другой выход. Спасибо всем. Но если есть какие мысли, то с радостью послушаю их.

storm.di 01.07.2009 14:22

Ответ: EntityColor для .3DS и .X
 
ArtemkA, как написала выше АВТОМАТ,тебе нужно применять entitycolor рекурсивно ко всем чилдам модели загруженой через loadanimmesh, тоже самое и для всего остального!

ABTOMAT 01.07.2009 14:24

Ответ: EntityColor для .3DS и .X
 
Цитата:

ABTOMAT, не, припарентенных объектов нет.
Скины, кости...? Это ж тоже паренты.
Цитата:

Значит цвет и прозрачность нелязя менять у припарентенных моделей и загруженных через LoadAnimMesh.
Можно, я написал выше как

ArtemkA 01.07.2009 14:34

Ответ: EntityColor для .3DS и .X
 
Понятно...

Цитата:

Создай для этого рекурсивную функцию, которая будет ставить цвет всем чайлдам.
Цитата:

тебе нужно применять entitycolor рекурсивно
А как это, рекурсивно? И как мне написать эту функцию?

P.S.: код не надо, сам должен думать. Просто подтолкните меня плиз.

ABTOMAT 01.07.2009 14:59

Ответ: EntityColor для .3DS и .X
 
Рекурсивно - то есть функция вызывает сама себя.
Код:

Funtion MyEntityColor (Entity, r,g,b)
    For i=1 to countchildren
        MyEntityColor(GetChild(Entity, i),r,g,b)       
    next
    EntityColor Entity, r,g,b
end function

Уже написал всё за тебя...

ArtemkA 01.07.2009 15:37

Ответ: EntityColor для .3DS и .X
 
Спасибо. Все работает.
Цитата:

Уже написал всё за тебя...
просил только код не давать....

IGR 01.07.2009 15:49

Ответ: EntityColor для .3DS и .X
 
Цитата:

просил только код не давать....
убил !! :)

ArtemkA 01.07.2009 23:35

Ответ: EntityColor для .3DS и .X
 
Цитата:

убил !!
ой б*я :)


Часовой пояс GMT +4, время: 16:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot