3ds Max SDKФорум

Я только учусь (комментарии)

#0
14:13, 6 фев 2007

Я только учусь (комментарии)

Это сообщение сгенерировано автоматически.

#1
14:13, 6 фев 2007

Ну вот совсем другое дело...

#2
15:53, 6 мар 2007

А можно с помощью етого SDK написать рендер для МАК-са, в котором можно было бы отлаживать свой графический движок? В МАК-се ведь есть вся сцена. Можно написать свой движок в DLL которую присоединить к плагину, а потом, после отладки, в своей игре.

Прошло более 6 лет
#3
16:30, 2 янв 2014

Возник затык. Решил переделать логику плагина. Ранее я просто хреначил EnumTree и внутри калбэка получал указатель на материал нода.
Сегодня я хочу не обходить все ноды через калбэк, а получаю GetRootNode (вроде так именуюется). Но это все не о моей загвоздке :)

Вобщем теперь я сперва хочу получать список всех материалов используемых в сцене. Вот так

MtlBaseLib* Interface::GetSceneMtls()

Все ок. Я имею указатель на некую библиотеку. Могу получить кол-во материалов MtlBaseLib::Count().

Но, как мне получить i-ый материал? Функция MtlBaseLib::GetMaterial(int i) протектед! Вижу пока выход унаследоваться. Но имхо это грабли.

Прошу вашего совета.

#4
16:45, 2 янв 2014

А усе решил задачку.

MtlBaseLib это потомок Tab<MtlBase*>

и имеет перегруженный оператор []

Когда юзается указатель на MtlBaseLib то компилер думает, что это массив MtlBaseLib-ов.

Запилил вот так:

MtlBaseLib& usedMtls = *mif->GetSceneMtls();

int matCount = usedMtls.Count();

MtlBase* mtl = usedMtls[0];

Кушать подано!

3ds Max SDKФорум

Тема в архиве.