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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Столкновение объектов 
:(
    Опции темы
Zarkon
Дата 18.7.2012, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2009

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



Уважаемые программисты я прошу у вас помощи. Работаю Visual C++ и DirectX. Опишу проблему коротко:
    Есть программа, которая загружает .х модель в сцену. И есть функция движения камеры(w , s , d , a). Прощу помощи в реализации стокновения объектов(чтобы камера ощущала грани моделей smile).Заранее спасибо ^__^


Функция подгрузки .х файла:
Код

DWORD LoadMesh (char *filename, IDirect3DDevice9 *ppiD3DDevice9,
               ID3DXMesh **ppMesh,
               LPDIRECT3DTEXTURE9 **pMeshTextures,
               char *texturefilename, 
               D3DMATERIAL9 **pMeshMaterials
               )
{
    LPD3DXBUFFER pD3DXMtrlBuffer;
    DWORD dwNumMaterials;

    D3DXLoadMeshFromX(filename, D3DXMESH_SYSTEMMEM,
        ppiD3DDevice9, NULL, &pD3DXMtrlBuffer, NULL, &dwNumMaterials, ppMesh);

    D3DXMATERIAL* d3dxMaterials = (D3DXMATERIAL*)pD3DXMtrlBuffer->GetBufferPointer();

    (*pMeshTextures) = new LPDIRECT3DTEXTURE9[dwNumMaterials];
    (*pMeshMaterials) = new D3DMATERIAL9[dwNumMaterials];

    for( DWORD i=0; i<dwNumMaterials; i++ )
    {
        // Копируем материал
        (*pMeshMaterials)[i] = d3dxMaterials[i].MatD3D;

        // Создаем текстуру
        if( FAILED(D3DXCreateTextureFromFile(ppiD3DDevice9, 
            d3dxMaterials[i].pTextureFilename, &(*pMeshTextures)[i])))
            if( FAILED(D3DXCreateTextureFromFile(ppiD3DDevice9, 
                texturefilename, &(*pMeshTextures)[i])))
                (*pMeshTextures)[i] = NULL;
    }
    return dwNumMaterials;
}


Это сообщение отредактировал(а) Zarkon - 18.7.2012, 00:29
PM MAIL   Вверх
iRUSH
Дата 18.7.2012, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 7.9.2009

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



Цитата(Zarkon @  18.7.2012,  00:28 Найти цитируемый пост)
Прощу помощи в реализации стокновения объектов(чтобы камера ощущала грани моделей ).Заранее спасибо ^__^

Если важен результат, возьми готовую библиотеку, я например юзал tokamak, меня полностью удовлетворил, правда под OpenGL писал движек. Если нужна реализация своими ресурсами, то в инете алгоритмов дофига, гугли "Обнаружение колизий в 3Д", материала куча. В чем конкретно вопрос? М.б. что то конкретно не получается?

Это сообщение отредактировал(а) iRUSH - 18.7.2012, 22:38
PM MAIL   Вверх
Zarkon
Дата 19.7.2012, 08:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2009

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



Проблема в том, что даже не знаю с чего начать =)
PM MAIL   Вверх
BorisVorontsov
Дата 19.7.2012, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Thinker
**


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

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



Начни с изучения функции D3DXIntersect


--------------------
[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   Вверх
Zarkon
Дата 21.7.2012, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 2.6.2009

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



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

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

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


 




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


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

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