Загрузка сетки из файла .obj (или любого другого) в проект DirectX9 / C ++ - PullRequest
2 голосов
/ 06 июня 2011

В настоящее время у меня есть 3D-куб , который я нарисовал, записывая координаты, который может вращаться и перемещаться на черном экране. Теперь у меня есть модель, которую я создал в «3Ds Max» (Это маленький задний двор с высокими каменными стенами, , поэтому я пытаюсь использовать ее в качестве объекта мира. ), и я хочу загрузить эту модель в мой DirectX9 / C ++ проект. Насколько я вижу в примерах DirectX SDK, этот код предназначен для загрузки .X модели (для которой требуется плагин для "3Ds Max" для экспорта такого рода расширения. Я не уверен в этом.)

Код для загрузки файлов .X в DX9 / C ++:

D3DXLoadMeshFromX( "Tiger.x", D3DXMESH_SYSTEMMEM, 
            g_pd3dDevice, NULL, &pD3DXMtrlBuffer, NULL,
            &g_dwNumMaterials, &g_pMesh )

Существует ли функция типа "D3DXLoadMeshFromOBJ (.....)" для загрузки объекта? Как загрузить и отобразить файлы .OBJ ? 8 (

Другой мой вопрос: в чем разница между файлом .X и файлом .OBJ , и какой из них мне следует использовать?

Ответы [ 2 ]

4 голосов
/ 06 июня 2011

AFAIK, DirectX не поддерживает объектные файлы wavefront из коробки.Для этого вам понадобится внешний загрузчик сетки.

Я помню, что в DX 10 SDK приведен пример загрузки файла .obj , я думаю, что примерназывается MeshFromOBJ10.Я не знаю, используется ли он в DirectX 9.

Насколько я знаю, стандарт .x просто поддерживает базовые сетки без каких-либо улучшений, таких как анимация.Если вы хотите попробовать графическое программирование, это неплохо, но если вы стремитесь к более высоким концепциям, вы можете позже переключиться.Я думаю, что вы можете посмотреть преимущества .obj файлов здесь .

Всегда полезно создать абстракцию для используемых вами входных данных.,Например, вы можете создать класс AbstractMesh и реализацию XMesh, производную от него.Позже вы можете добавить другие реализации, такие как OBJMesh или что-то подобное.

Я надеюсь, что смогу вам немного помочь :) Happy Coding!

1 голос
/ 01 апреля 2013

Анимация полностью поддерживается в формате x, и, кроме того, она поддерживает fx файлы, когда вы хотите использовать шейдеры. Плагин для экспорта и примеры, которые вы можете скачать с этой страницы:

http://www.cgdev.net/download.php

...