![]() |
|
Модераторы: Rickert, Alexeis, BorisVorontsov |
![]()
|
|
| Прибой94 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.5.2009 Где: Зеленоград. Репутация: нет Всего: нет |
Прошу помочь мне с написанием функции, которая могла бы провести тест на пересечение анимированного скелетного меша с вектором.
Мне посоветовали тестировать на пересечение не сам меш, а bounding box`ы, описанные вокруг костей. Если так можно, то есть два вопроса: 1) как описать bounding box вокруг кости; 2) как создать меш из готового Bounding Box (функция для тестирования меша уже есть) |
|||
|
||||
| BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 1 Всего: 10 |
DirectX?
-------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
| Прибой94 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.5.2009 Где: Зеленоград. Репутация: нет Всего: нет |
Да, DirectX.
|
|||
|
||||
| BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 1 Всего: 10 |
Посредством D3DXComputeBoundingBox. А зачем? Для проверки столкновения меш совсем не нужна, посмотри здесь http://www.toymaker.info/Games/html/collisions.html Но если очень хочется использовать именно D3DXIntersect, то делай меш посредством D3DXCreateMeshFVF -------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
| Прибой94 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.5.2009 Где: Зеленоград. Репутация: нет Всего: нет |
||||
|
||||
| BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 1 Всего: 10 |
А что, трансформацию ты принципиально не признаешь?
-------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
| Прибой94 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.5.2009 Где: Зеленоград. Репутация: нет Всего: нет |
Тоесть нужно:
1. Сбросить матрицу 2. Провести вычисление бокса 3. Расширить до 8 точек(попробую 4) 4. Помножить на матрицу Это сообщение отредактировал(а) Прибой94 - 28.5.2009, 13:55 |
|||
|
||||
| BorisVorontsov |
|
|||
![]() Thinker ![]() ![]() Профиль Группа: Комодератор Сообщений: 714 Регистрация: 3.11.2005 Где: Молдавия, г. Киши нёв Репутация: 1 Всего: 10 |
Сбрасывать матрицу не нужно, любая функция для работы с матрицей полностью перезаписывает её. А что ты имеешь ввиду под "помножить на матрицу"? Можно повершинно трансформировать box, посредством D3DXVec3Transform, можно применить матрицу как мировую
-------------------- [code=cpp] const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out); for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl; [/code] |
|||
|
||||
| Прибой94 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 27.5.2009 Где: Зеленоград. Репутация: нет Всего: нет |
Я имею в виду:
векторы вершин бокса в формате D3DXVECTOR4 умножить на D3DXMATRIXA16. |
|||
|
||||
![]()
|
| Вы можете найти полезным что... | |
|
|
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |