我正在尝试使用固定功能管道(没有着色器或效果文件)在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 );
缺少哪种设置?
答案 0 :(得分:0)
我不是专家但是尝试降低你正在加载的图像的分辨率,我有一个类似的问题,发现图像因此无法加载,分辨率太大了。