![]() |
|
Модераторы: Rickert |
![]()
|
|
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Друзья, подскажите как выполнить вычисление параллелепипеда описывающего объект, ну или почитать чего про это. Это используется во
многих программах, в том числе и в включенных в пакет DirectX SDK. А так же хотелось бы получить готовый алгоритм вычисления объема "свободного места" в этом объеме для других объектов. Нашел функцию Geometry.ComputeBoundingBox и еже с ней, там как я понял полезная инфа - Вектор нижнего левого угла и Вектор правого верхнего, но чет использовать ее я не смог :( В общем думаю вопрос ясен. |
|||
|
||||
| Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Это наверное луна в созвездии девы так влияет
http://msdn.microsoft.com/en-us/library/bb323919(VS.85).aspx
Меняю на исходники висты HP ЗЫ Вот тут еще примерчик. Это сообщение отредактировал(а) Rpahut - 11.2.2009, 23:34 --------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
| EgoBrain |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Я думал этот велосипед уже давно колесит по алгоритмам программ всех 3д-кодеров. |
||||
|
|||||
| Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Вычисление свободного объема внутри BB? Ну это достаточно необычный велосипед.
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Ну вот у меня внутри этого параллелепипеда находятся разные объекты, которые представляют собой динамический массив специального типа данных ObjectItem (мой класс), там хранятся разные данные (стандартные хар-ки объекта и сам Mesh-объект с материалами и текстурами), если я добавлю в свой класс ObjectItem метод вычисления BoxBounding, то у меня будут параллелепипеды всех объектов и их центры, вот как с такими данными вычислить влезает ли новый объект в заданный объем?
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 6 Всего: 52 |
EgoBrain, смысл bounding box в том, чтобы упростить вычисления: засунуть объект в коробку, пересечения с которой получить намного менее затраней, чем со всей моделью, ввиду разницы в кол-ве граней/полигонов. Вычисление же объёмов сложных тел - задача непосильная, и не применяется в геймдеве.
Откуда они там берутся? Смысл bounding box'а опять-таки теряется, ибо там должен быть один объект - mesh модели, для которой он расчитан. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Вы наверное меня не правильно поняли. Для начала - причем тут геймдев? Тут только геймдев обсуждается? Имеется параллелепипед представляющий некую ограниченную емкость, есть возможность добавлять в эту емкость и удалять из нее объекты, необходимо перед каждым добавлением расчитывать есть ли возможность туда объект впихнуть или нет. Вот я и думаю расчитывать БаундингБокс для каждого объекта и смотреть не пересекается ли он с БаундингБоксами других объектов, только как реализовать пока незнаю.
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 6 Всего: 52 |
EgoBrain, ану вот теперь ясно.
Но тут у вас будет ещё проблема в чём: у вас может быть объём достаточный для добавления след. объекта, но всё будет зависеть от того как он распределён. Задача не тривиальная. Я так на вскидку не скажу решения, надо обмыслить. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| Rpahut |
|
|||
![]() 0xdeadbeef ![]() Профиль Группа: Участник Сообщений: 243 Регистрация: 9.4.2006 Репутация: 5 Всего: 7 |
Если вершина одного ББ внутри другого - то это пересечение. Если просто нужно определить влезает/не влезает, то этого достаточно.
--------------------
C/C++ GameDevRSS Раздела программирования игрOpenGL - уроки от NeHeКак продать идею? |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 6 Всего: 52 |
Rpahut, тут другая задача у человека: есть параллелипипид и есть другой набор параллелипипидов, которые в различные моменты рождаются внутри первого: задача состоит в том, чтобы узнать "влезет ли в первый параллелипипид след. параллелипипид, который должен появиться?".
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| EgoBrain |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 537 Регистрация: 23.3.2008 Где: Комната Репутация: 1 Всего: 2 |
Пока что я понял только одно - не умею доходчиво объяснять, Rickert, спасибо за понимание
|
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 6 Всего: 52 |
EgoBrain, вы просто торопитесь и от того часть слов выскакивает из текста. Перед постом просто перечитывайте своё сообщение и старайтесь дать как можно больше информации. Много слов, при объяснении вопроса, не бывает, а вот мало - как видите, бывает.
Сам недавно убедился: правильно заданный вопрос - половина ответа. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |