Модераторы: Rickert, Alexeis, BorisVorontsov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IntersectionTest анимированного скелетного меша, Тест на пересечение для Skinned Mesh 
:(
    Опции темы
Прибой94
  Дата 27.5.2009, 08:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 27.5.2009
Где: Зеленоград.

Репутация: нет
Всего: нет



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

smile 
PM MAIL   Вверх
BorisVorontsov
Дата 27.5.2009, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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]
PM MAIL ICQ GTalk   Вверх
Прибой94
Дата 27.5.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 27.5.2009
Где: Зеленоград.

Репутация: нет
Всего: нет



Да, DirectX.
PM MAIL   Вверх
BorisVorontsov
Дата 28.5.2009, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


Профиль
Группа: Комодератор
Сообщений: 714
Регистрация: 3.11.2005
Где: Молдавия, г. Киши нёв

Репутация: 1
Всего: 10



Цитата(Прибой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




--------------------
[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]
PM MAIL ICQ GTalk   Вверх
Прибой94
Дата 28.5.2009, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 27.5.2009
Где: Зеленоград.

Репутация: нет
Всего: нет



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


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

Мне нужны ориентированные Боксы (а лучше капсулы).
Мне эта функция не подходит.
PM MAIL   Вверх
BorisVorontsov
Дата 28.5.2009, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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]
PM MAIL ICQ GTalk   Вверх
Прибой94
Дата 28.5.2009, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 27.5.2009
Где: Зеленоград.

Репутация: нет
Всего: нет



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


Это сообщение отредактировал(а) Прибой94 - 28.5.2009, 13:55
PM MAIL   Вверх
BorisVorontsov
Дата 28.5.2009, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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]
PM MAIL ICQ GTalk   Вверх
Прибой94
Дата 28.5.2009, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 27.5.2009
Где: Зеленоград.

Репутация: нет
Всего: нет



Я имею в виду:
векторы вершин бокса в формате D3DXVECTOR4 умножить на D3DXMATRIXA16.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0459 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.