0

固定関数パイプライン(シェーダーまたはエフェクトファイルなし)を使用して、DirectX9でスカイボックスをレンダリングしようとしています。立方体のレンダリングを表示できます。テクスチャを設定すると、すべての面が1つの奇妙な色(白や空白ではない)でペイントされます。テクスチャファイルは正しいキューブマップです。テクスチャ設定が設定されていないと思います。以下はコードスニペットです

// 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 );

どの設定が欠落していますか?

4

1 に答える 1

0

私は専門家ではありませんが、読み込んでいる画像の解像度を下げてみてください。同じような問題が発生したことがありますが、そのために画像を読み込めず、解像度が大きすぎました。

于 2013-03-22T01:31:03.373 に答える