| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > IntersectionTest анимированного скелетного меша |
| Автор: Прибой94 27.5.2009, 08:11 |
| Прошу помочь мне с написанием функции, которая могла бы провести тест на пересечение анимированного скелетного меша с вектором. Мне посоветовали тестировать на пересечение не сам меш, а bounding box`ы, описанные вокруг костей. Если так можно, то есть два вопроса: 1) как описать bounding box вокруг кости; 2) как создать меш из готового Bounding Box (функция для тестирования меша уже есть) |
| Автор: BorisVorontsov 27.5.2009, 13:54 |
| DirectX? |
| Автор: Прибой94 27.5.2009, 14:23 |
| Да, DirectX. |
| Автор: BorisVorontsov 28.5.2009, 11:27 |
Посредством D3DXComputeBoundingBox. А зачем? Для проверки столкновения меш совсем не нужна, посмотри здесь http://www.toymaker.info/Games/html/collisions.html Но если очень хочется использовать именно D3DXIntersect, то делай меш посредством D3DXCreateMeshFVF |
| Автор: Прибой94 28.5.2009, 12:47 | ||
Мне нужны ориентированные Боксы (а лучше капсулы). Мне эта функция не подходит. |
| Автор: 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. |