Текстура Skybox не отображается в DirectX9

Я пытаюсь отобразить скайбокс в DirectX9 с фиксированным конвейером функций (без шейдера или файла эффекта). Я могу просмотреть рендеринг куба. Когда я устанавливаю текстуру, все грани окрашиваются одним странным цветом (не белым и не пустым). Файл текстуры - это правильная кубическая карта. Я думаю, что некоторые настройки текстуры не установлены. Ниже приведен фрагмент кода

// for creating the cube and the cube texture

HRESULT apiResult = D3DXCreateBox(g_pd3dDevice,1,1,1,&g_pMesh,NULL);

apiResult = D3DXCreateCubeTextureFromFile(g_pd3dDevice,L"cubeMap.dds",&g_pTexture);

оба API возвращают S_OK.

// for renderin the skybox

g_pd3dDevice->SetSamplerState(0,D3DSAMP_MIPFILTER,D3DTEXF_LINEAR); g_pd3dDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR); g_pd3dDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);

// set texture

g_pd3dDevice->SetTexture(0,g_pTexture);

// Begin the scene if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )

{

g_pMesh->DrawSubset(0);

g_pd3dDevice->EndScene();

}

// Present the backbuffer contents to the display

g_pd3dDevice->Present( NULL, NULL, NULL, NULL );

Какая настройка отсутствует?


person control    schedule 10.01.2013    source источник
comment
В чем причина отказа от использования программируемого конвейера?   -  person derpface    schedule 11.02.2013
comment
@uberwulu: Использование HLSL помогло, просто нужно проверить, что происходит не так в фиксированной функции.   -  person control    schedule 15.02.2013


Ответы (1)


Я не эксперт, но попробуйте уменьшить разрешение изображения, которое вы загружаете, однажды у меня была похожая проблема, и я обнаружил, что изображение не может загружаться из-за этого, разрешение было слишком большим.

person hernan    schedule 22.03.2013
comment
спасибо за подсказку, но загрузка изображения не проблема, в моем случае та же текстура работает нормально при использовании в программируемом конвейере. - person control; 05.04.2013