| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Программирование игр, графики и искусственного интеллекта > Параллелепипед описывающий объект и его объем |
| Автор: EgoBrain 11.2.2009, 12:50 |
| Друзья, подскажите как выполнить вычисление параллелепипеда описывающего объект, ну или почитать чего про это. Это используется во многих программах, в том числе и в включенных в пакет DirectX SDK. А так же хотелось бы получить готовый алгоритм вычисления объема "свободного места" в этом объеме для других объектов. Нашел функцию Geometry.ComputeBoundingBox и еже с ней, там как я понял полезная инфа - Вектор нижнего левого угла и Вектор правого верхнего, но чет использовать ее я не смог :( В общем думаю вопрос ясен. |
| Автор: Rpahut 11.2.2009, 23:22 | ||
| Это наверное луна в созвездии девы так влияет http://msdn.microsoft.com/en-us/library/bb323919(VS.85).aspx
Меняю на исходники висты HP ЗЫ Вот http://www.tech-archive.net/Archive/Development/microsoft.public.win32.programmer.directx.managed/2004-08/0079.html еще примерчик. |
| Автор: EgoBrain 15.2.2009, 13:37 | ||||
Я думал этот велосипед уже давно колесит по алгоритмам программ всех 3д-кодеров. |
| Автор: Rpahut 15.2.2009, 21:01 |
| Вычисление свободного объема внутри BB? Ну это достаточно необычный велосипед. |
| Автор: EgoBrain 16.2.2009, 03:07 |
| Ну вот у меня внутри этого параллелепипеда находятся разные объекты, которые представляют собой динамический массив специального типа данных ObjectItem (мой класс), там хранятся разные данные (стандартные хар-ки объекта и сам Mesh-объект с материалами и текстурами), если я добавлю в свой класс ObjectItem метод вычисления BoxBounding, то у меня будут параллелепипеды всех объектов и их центры, вот как с такими данными вычислить влезает ли новый объект в заданный объем? |
| Автор: EgoBrain 16.2.2009, 09:54 |
| Вы наверное меня не правильно поняли. Для начала - причем тут геймдев? Тут только геймдев обсуждается? Имеется параллелепипед представляющий некую ограниченную емкость, есть возможность добавлять в эту емкость и удалять из нее объекты, необходимо перед каждым добавлением расчитывать есть ли возможность туда объект впихнуть или нет. Вот я и думаю расчитывать БаундингБокс для каждого объекта и смотреть не пересекается ли он с БаундингБоксами других объектов, только как реализовать пока незнаю. |
| Автор: Rickert 16.2.2009, 11:10 |
| EgoBrain, ану вот теперь ясно. Но тут у вас будет ещё проблема в чём: у вас может быть объём достаточный для добавления след. объекта, но всё будет зависеть от того как он распределён. Задача не тривиальная. Я так на вскидку не скажу решения, надо обмыслить. |
| Автор: Rpahut 16.2.2009, 20:04 |
| Если вершина одного ББ внутри другого - то это пересечение. Если просто нужно определить влезает/не влезает, то этого достаточно. |
| Автор: Rickert 17.2.2009, 02:05 |
| Rpahut, тут другая задача у человека: есть параллелипипид и есть другой набор параллелипипидов, которые в различные моменты рождаются внутри первого: задача состоит в том, чтобы узнать "влезет ли в первый параллелипипид след. параллелипипид, который должен появиться?". |
| Автор: EgoBrain 18.2.2009, 06:24 |
| Пока что я понял только одно - не умею доходчиво объяснять, Rickert, спасибо за понимание |
| Автор: Rickert 18.2.2009, 06:38 |
| EgoBrain, вы просто торопитесь и от того часть слов выскакивает из текста. Перед постом просто перечитывайте своё сообщение и старайтесь дать как можно больше информации. Много слов, при объяснении вопроса, не бывает, а вот мало - как видите, бывает. Сам недавно убедился: правильно заданный вопрос - половина ответа. |