Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

Ответ
 
Опции темы
Старый 16.03.2011, 11:10   #1
radiantstudio
Оператор ЭВМ
 
Регистрация: 14.08.2006
Сообщений: 39
Написано 2 полезных сообщений
(для 2 пользователей)
Как в 3ds моделе определить положение объекта

Намоделил в Rhinoceros уровень. Экспортнул его в 3ds формат.
Нахожу всех детей и если имя LAMPA то пытаюсь поставить в его позицию сферу.
Загружаю так:
result:=xLoadAnimMesh(path);
  For i:=0 To xCountChildren(result)do
    begin
      node:=xGetChild(result,i);
      if node<>0
        then
          begin
            node_name:=Copy(xEntityName(node),0,5);
            writeln(node_name);
            if node_name='FLOOR'
              then
                begin
                   //..............................
                end;
            if node_name='LAMPA'
              then
                begin
                  xEntityAlpha(node,0.5);
                  tmp_spr:=xCreateSphere();
                  xEntityColor(tmp_spr,255,0,0);
                  xScaleEntity(tmp_spr,1,1,1);
                  xPositionEntity(tmp_spr,xEntityX(node,1),xEntityY(node,1),xEntityZ(node,1),1);
                end;
          end;
    end;
end;
Детей находит правильно, но xEntityX(node,1),xEntityY(node,1),xEntityZ(node,1) всегда возвращают нули. Тоесть не получается заменить node на другой объект с сохранением позиции.
Я что то делаю неправильно?
пробовал и так: xEntityX(node,0),xEntityY(node,0),xEntityZ(node,0)

Последний раз редактировалось radiantstudio, 16.03.2011 в 14:31.
(Offline)
 
Ответить с цитированием
Старый 16.03.2011, 22:34   #2
radiantstudio
Оператор ЭВМ
 
Регистрация: 14.08.2006
Сообщений: 39
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Как в 3ds моделе определить положение объекта

Перепробовал ещё пару 3Д редакторов. Формат 3ds адекватно экспортирует только сам 3dsmax. Причем теперь объекты, центры которых я поправил в Максе, при скейле аниммеша смещаются неправильно.

ПС: Есть у кого нибудь портэйбл 3Д макс с b3d пипилайном встроенным? (без пипилайна я уже нашел)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ABTOMAT (17.03.2011)
Старый 16.03.2011, 22:38   #3
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Как в 3ds моделе определить положение объекта

Pipeline - это плагин к 3D Max'у. Ставится отдельно. Поищи по форуму (Кнопка "Поиск" вверху), ссылок много давали на разные версии, и на оф. сайт.
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 00:21   #4
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Ответ: Как в 3ds моделе определить положение объекта

Исходя из http://www.forum.boolean.name/showpo...28&postcount=2
могу предположить, что возвращает позицию меша, а не чайлда.

Проверь так: смени позицию меша result:=xLoadAnimMesh(path)
И что возвратит позиция.

Это функция?
А, потом память очищаешь?

If then begin
For
end;
; ?? 
Next?
это на Xors-e так пишетсяПросто я с блитз3д 
(Offline)
 
Ответить с цитированием
Старый 17.03.2011, 01:20   #5
FireOwl
Бывалый
 
Аватар для FireOwl
 
Регистрация: 16.09.2009
Адрес: Sun system
Сообщений: 831
Написано 442 полезных сообщений
(для 1,836 пользователей)
Ответ: Как в 3ds моделе определить положение объекта

Вообще Паскалем это все попахивает. Нэ?
__________________
N"Gasta! Kvata! Kvakis!
Ahkstas so novajxletero (oix jhemile) so Ranetauw.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо FireOwl за это полезное сообщение:
LLI.T.A.L.K.E.R. (17.03.2011), St_AnGer (17.03.2011)
Старый 17.03.2011, 09:34   #6
radiantstudio
Оператор ЭВМ
 
Регистрация: 14.08.2006
Сообщений: 39
Написано 2 полезных сообщений
(для 2 пользователей)
Ответ: Как в 3ds моделе определить положение объекта

Сообщение от LLI.T.A.L.K.E.R. Посмотреть сообщение
Исходя из http://www.forum.boolean.name/showpo...28&postcount=2
могу предположить, что возвращает позицию меша, а не чайлда.
Оказалось что xEntityX() возвращает правильно, просто редакторы Rhino, AC3D, Blender все они, при экспорте в 3ds, центр объекта ставят в центр мира, тоесть в координату (0,0,0). В 3ДМаксе есть возможность править центр объекта (в Blender тоже, но он её не экспортирует), и тогда xEntityX правильно возвращает позицию. Но только если не использовать xScaleEntity.

ПС: Мне нравиться Rhino. Кто знает как в нем править центр обекта, подскажите?

Это функция?
А, потом память очищаешь?

If then begin
For
end;
; ?? 
Next?
это на Xors-e так пишетсяПросто я с блитз3д 
Да это функция LoadLevel(path). Это код на Дельфи (Паскаль).
Зачем тут очищать память?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com