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

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

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

Ответ
 
Опции темы
Старый 25.04.2010, 21:00   #1
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Разделение модели на части

В общем, есть модель с костями, то есть при желании всю модель можно найти как группу Child'ов. Вопрос, можно ли как-нибудь "разбить" эту модель на эти чайлды, чтобы они стали самостоятельными объектами (чтобы над ними можно было проводить все операции как с обычным entity)? То есть, по сути, мне нужно чтобы модель разбивалась на полигональные группы (но не разлеталась пополигонно, этот трюк я знаю).
Если кто знает как реализовать подобное, отпишитесь плиз. Я конечно всегда могу сделать все части заранее моделями и держать из в памяти, в нужный момент подменяя цельный исходник, но сначала хотелось бы узнать, нельзя ли реализовать попроще?
Заранее спасибо!
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Amatsu за это полезное сообщение:
EvilChaotic (25.04.2010), Wegox (08.04.2012)
Старый 25.04.2010, 21:31   #2
EvilChaotic
Мастер
 
Аватар для EvilChaotic
 
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений
(для 3,006 пользователей)
Ответ: Разделение модели на части

Ну, есть идея. Могу предложить череззадничный метод.
Если определенные части можно найти чилдами, то можно написать фунукцию, которая будет копировать геомтерию из сюрфейса в другой. ? Ну и естественно на месте старого чилда можно создать новый меш с сюрфейсом и вставить в него. Но я думаю этот способ не подойдет если использовать прямо в реалтайме...

Правда потом, как подтереть копируемый кусок геометрии в разделяемом меше я пока не знаю...
ClearSurface ?
__________________

EvilChaotic About
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amatsu (25.04.2010)
Старый 25.04.2010, 22:51   #3
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Разделение модели на части

Да, я тоже думал об этом. Но в этом случае мне придется переделывать много моделей, так как разделение на сурфейсы предполагает наличие у моделей разных частей и текстур.
Сделал несколько кусков одной модели, загружаю их, добавляю им в физиксе физическую модель типа hull - проваливаются под землю. Типа слишком мелкие модели. А если я каждому куску каждой модели буду вручную колижнбокс прописывать... В общем даже не знаю как реализовать - предмет должен "разбиваться" и исчезать.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Старый 25.04.2010, 23:13   #4
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Разделение модели на части

ПАРЕНТ 0
__________________
(Offline)
 
Ответить с цитированием
Старый 25.04.2010, 23:20   #5
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Разделение модели на части

Сообщение от tormoz Посмотреть сообщение
ПАРЕНТ 0
Пожалуйста, можно поподробнее? У меня никакой системы парентов на этих загружаемых моделях не используется... И потом у меня уже проблема из "как разбить модель на части" постепенно переросла в проблему "как сделать эти мелкие части физическими объектами". Дело в том что они достаточно тонкие, но длинные, чтобы я мог для них сделать точечную проверку для малых объектов/высоких скоростей.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Старый 25.04.2010, 23:34   #6
EvilChaotic
Мастер
 
Аватар для EvilChaotic
 
Регистрация: 05.04.2008
Сообщений: 910
Написано 530 полезных сообщений
(для 3,006 пользователей)
Ответ: Разделение модели на части

>ПАРЕНТ 0

Разве чилд можно открутить от аним меша?

ЗЫ. EntityParent ent,0 откручивает ентити от родителя.
__________________

EvilChaotic About
(Offline)
 
Ответить с цитированием
Старый 26.04.2010, 01:02   #7
tormoz
Гигант индустрии
 
Аватар для tormoz
 
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений
(для 4,437 пользователей)
Ответ: Разделение модели на части

Рекурсия по чилдам, записываешь их все в тип
потом цикл по типу и отпаренчиваешь

в первом цикле нельзя отпаренчивать - вылетит
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо tormoz за это полезное сообщение:
Amatsu (26.04.2010), EvilChaotic (26.04.2010)
Старый 26.04.2010, 01:13   #8
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Разделение модели на части

Спасибо за инфу, реально полезная штука, если получится реализовать. В данном случае уже отказался от разрушаемости по причине вышеописанных проблем с коллизией "тонких" тел в физиксе, но вообще пригодится =)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Старый 26.04.2010, 11:59   #9
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Разделение модели на части

Хм... отделил все чайлды от меша, но смысла в этом пока не увидел Отдельными entity после этого они не стали, многие команды по работе с ними так же продолжают ругаться, что мол "Entity is not a model", а команды по вращению/перемещению чайлдов работали и раньше. Даже кулбокс продолжает рассчитываться для каждого чайлда относительно оригинала.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Старый 26.04.2010, 12:41   #10
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: Разделение модели на части

Странно! На счёт EntityParent 0 было правильно сказано.
После этого чилд больше не имеет никакой связи с родителем.
И становится полноправным entity.
Function DeparentAllChilds(mesh)
    
Repeat
        
If CountChildren(mesh) = 0 Then Exit
        
DeparentAllChilds(GetChild(mesh,1))    
    
Forever 
    EntityParent mesh
,0    
End 
Function 
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amatsu (26.04.2010)
Старый 26.04.2010, 12:58   #11
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Разделение модели на части

Да, я так и делал. Хм... а как находить нужные чайлд - до разделения или каким-то образом после? Сделал так:

mesh=LoadAnimMesh(<...>)
child=FindChild(mesh,"child")
DeparentAllChilds(mesh)
EntityColor child,0,0,0

Результат такой же как я писал вышел - ругается ошибкой на EntityColor. А если переместить эти чайлды, так же кулбокс определяется относительно бывшего главного родителя...
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Старый 26.04.2010, 19:34   #12
Hurrit
Мастер
 
Аватар для Hurrit
 
Регистрация: 27.01.2008
Адрес: Россия, СКФО, ЧР, Грозный
Сообщений: 1,144
Написано 578 полезных сообщений
(для 2,207 пользователей)
Ответ: Разделение модели на части

если я не ошибаюсь, то ошибка вполне понятна. ты ведь открутил уже все чайлды от меша, вот он и показывает на EntityColor. Попробуй так:
mesh=LoadAnimMesh(<...>)
child=FindChild(mesh,"child")
EntityColor child,0,0,0
DeparentAllChilds(mesh)

Конечно, 100 процентов не даю, но вроде бы должно работать
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Amatsu (26.04.2010)
Старый 26.04.2010, 19:51   #13
Amatsu
Дэвелопер
 
Аватар для Amatsu
 
Регистрация: 24.07.2008
Сообщений: 1,544
Написано 1,095 полезных сообщений
(для 2,706 пользователей)
Ответ: Разделение модели на части

Тоже самое Но вообще не парьтесь, я уже все равно делаю разбивание модели на полигоны аки партиклы ) Способ конечно устаревший, но все еще работает )
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Wegox (08.04.2012)
Ответ


Опции темы

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

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


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


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