Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > IntersectionTest анимированного скелетного меша


Автор: Прибой94 27.5.2009, 08:11
Прошу помочь мне с написанием функции, которая могла бы провести тест на пересечение анимированного скелетного меша с вектором.
Мне посоветовали тестировать на пересечение не сам меш, а bounding box`ы, описанные вокруг костей.
Если так можно, то есть два вопроса: 
1) как описать bounding box вокруг кости; 
2) как создать меш из готового Bounding Box
     (функция для тестирования меша уже есть)

smile 

Автор: BorisVorontsov 27.5.2009, 13:54
DirectX?

Автор: Прибой94 27.5.2009, 14:23
Да, DirectX.

Автор: BorisVorontsov 28.5.2009, 11:27
Цитата(Прибой94 @  27.5.2009,  08:11 Найти цитируемый пост)
1) как описать bounding box вокруг кости;


Посредством D3DXComputeBoundingBox.

Цитата(Прибой94 @  27.5.2009,  08:11 Найти цитируемый пост)
2) как создать меш из готового Bounding Box


А зачем? Для проверки столкновения меш совсем не нужна, посмотри здесь http://www.toymaker.info/Games/html/collisions.html
Но если очень хочется использовать именно D3DXIntersect, то делай меш посредством D3DXCreateMeshFVF


Автор: Прибой94 28.5.2009, 12:47
Цитата(BorisVorontsov @ 28.5.2009,  11:27)
Цитата(Прибой94 @  27.5.2009,  08:11 Найти цитируемый пост)
1) как описать bounding box вокруг кости;


Посредством D3DXComputeBoundingBox.

Мне нужны ориентированные Боксы (а лучше капсулы).
Мне эта функция не подходит.

Автор: BorisVorontsov 28.5.2009, 13:21
А что, трансформацию ты принципиально не признаешь?

Автор: Прибой94 28.5.2009, 13:28
Тоесть нужно:
1. Сбросить матрицу
2. Провести вычисление бокса
3. Расширить до 8 точек(попробую 4)
4. Помножить на матрицу

Автор: BorisVorontsov 28.5.2009, 14:01
Сбрасывать матрицу не нужно, любая функция для работы с матрицей полностью перезаписывает её. А что ты имеешь ввиду под "помножить на матрицу"? Можно повершинно трансформировать box, посредством D3DXVec3Transform, можно применить матрицу как мировую

Автор: Прибой94 28.5.2009, 14:25
Я имею в виду:
векторы вершин бокса в формате D3DXVECTOR4 умножить на D3DXMATRIXA16.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)