Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Загрузка 3д-моделей(х-формат)

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
DOD



Зарегистрирован: 14.10.2005
Сообщения: 3

СообщениеДобавлено: Чт Окт 20 2005 21:14    Заголовок сообщения: Загрузка 3д-моделей(х-формат) Ответить с цитатой

У меня такая вот проблема.
Я в Direct3D 9(C++) загружаю Х-файл с помощью след. кода:

Код:

LPD3DXMESH          pMesh              = NULL;      // Меш
LPD3DXBUFFER                       pMeshBuffer        = NULL;      // Материальный буфер
D3DMATERIAL9*                       pMeshMaterials     = NULL;      // Материал
LPDIRECT3DTEXTURE9*         pMeshTextura       = NULL;      // Техтура для Меша
DWORD                                      dwNumber;                       // Индекс



if (FAILED(D3DXLoadMeshFromX("Tiger.x", D3DXMESH_SYSTEMMEM,
                 pDirect3DDevice, NULL, &pMeshBuffer, NULL,
                                        &dwNumber, &pMesh)))
      return E_FAIL;
    // Мы должны извлечь материальные свойства и названия{имена} структуры от
    // pD3DXMtrlBuffer
   D3DXMATERIAL* D3DXMeshMaterials = (D3DXMATERIAL *)pMeshBuffer->GetBufferPointer();
   pMeshMaterials = new D3DMATERIAL9[dwNumber];
   pMeshTextura   = new LPDIRECT3DTEXTURE9[dwNumber];
    for( DWORD i=0; i<dwNumber; i++ )
    {
       // Копируем материал
      pMeshMaterials[ i ] = D3DXMeshMaterials[i].MatD3D;
      // Установить окружающего свет
       pMeshMaterials[ i ].Ambient = pMeshMaterials[i].Diffuse;
      // Загружаем текстуру
       if( FAILED( D3DXCreateTextureFromFile( pDirect3DDevice,
                        D3DXMeshMaterials[i].pTextureFilename, 
                                        &pMeshTextura[i] ) ) )
       pMeshTextura[ i ]=NULL;
   }
    // Уничтожаем материальный буфер
    pMeshBuffer->Release();



Затем в рендеринге :
Код:

for( DWORD i=0; i<dwNumber; i++ )
        {
            // Устанавливаем материал и текстуру
            pDirect3DDevice->SetMaterial( &pMeshMaterials[i] );
            pDirect3DDevice->SetTexture( 0,pMeshTextura[i] );
            // Рисуем Меш
            pMesh->DrawSubset( i );
        }


В результате объект отображается без теней. Кроме того,если на одной линии зрения одна за другой две плоскости,то ближняя к камере не отображается,т.е. как бы перекрывается дальней,хотя должно быть наоборот.
И ещё:объекты отображаются без учета перспективы(хотя Z-буффер включен).Подскажите,в чем проблема.

пишите на ZZ_Top@bk.ru,если нужны скрины
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...