1)
device->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
device->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
device->SetRenderState(D3DRS_ZFUNC, D3DCMP_LESSEQUAL);
|
для сферы. и полупрозрачные объекты надо рисовать после непрозрачных в порядке от дальних к ближним.
2)
LPDIRECT3DCUBETEXTURE9 CubeMap;
m_d3dDevice->CreateCubeTexture(8192, 1, D3DUSAGE_RENDERTARGET, D3DFMT_R8G8B8, D3DPOOL_DEFAULT, &CubeMap);
....
...
CubeMap->GetCubeMapSurface(D3DCUBEMAP_FACE_POSITIVE_X, 0, &pRenderSurface);
device->SetRenderTarget(0,pRenderSurface);
device->Clear(0,
NULL,
D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(0,0,0),
1.0f,
0);
device->BeginScene();
и так 6 раз.
меняешь взгляд камеры и D3DCUBEMAP_FACE_POSITIVE_X
3)да.
device->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3 );
device->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
device->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_NORMCUBEMAP );
и можешь третьим слоем еще наложить диффузмапу.