Skybox搞好后,发现在边线有很明显的裂缝。要采用纹理寻址的Clamp Texture Address Mode。再把纹理坐标改成是0.001到0.999。问题就完美解决了。
渲染代码如下:
p3DDevice9->SetSamplerState(0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP);
p3DDevice9->SetSamplerState(0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP); 创建VB代码如下:
CUSTOMVERTEX_TXT cvVertices[] =

{
//上面的点

{vTBottomLeft, D3DCOLOR_XRGB(255, 0, 0), 0.001f, 0.001f,}, //Vertex 2 - Red

{vTBottomRight, D3DCOLOR_XRGB(255, 255, 0), 0.999f, 0.001f,}, //Vertex 3 - Green

{vTTopLeft, D3DCOLOR_XRGB(255, 255, 255), 0.001f, 0.999f,}, //Vertex 1 - Red

{vTTopRight, D3DCOLOR_XRGB(255, 255, 255), 0.999f, 0.999f,}, //Vertex 0 - Blue

//前面

{vTTopLeft, D3DCOLOR_XRGB(255, 255, 255), 0.001f, 0.001f,}, //Vertex 0 - Blue

{vTTopRight, D3DCOLOR_XRGB(255, 255, 255), 0.999f, 0.001f,}, //Vertex 1 - Red

{vBTopLeft, D3DCOLOR_XRGB(255, 255, 255), 0.001f, 0.999f,}, //Vertex 2 - Red

{vBTopRight, D3DCOLOR_XRGB(255, 255, 255), 0.999f, 0.999f,}, //Vertex 3 - Green

//右面

{vTTopRight, D3DCOLOR_XRGB(255, 255, 255), 0.001f, 0.001f,}, //Vertex 0 - Blue

{vTBottomRight, D3DCOLOR_XRGB(0, 255, 0), 0.999f, 0.001f,}, //Vertex 3 - Green

{vBTopRight, D3DCOLOR_XRGB(255, 0, 0), 0.001f, 0.999f,}, //Vertex 2 - Red

{vBBottomRight, D3DCOLOR_XRGB(255, 255, 255), 0.999f, 0.999f,}, //Vertex 1 - Red


//后面

{vTBottomRight, D3DCOLOR_XRGB(255, 255, 255), 0.001f, 0.001f,}, //Vertex 0 - Blue

{vTBottomLeft, D3DCOLOR_XRGB(255, 255, 255), 0.999f, 0.001f,}, //Vertex 0 - Blue

{vBBottomRight, D3DCOLOR_XRGB(255, 255, 255), 0.001f, 0.999f,}, //Vertex 1 - Red

{vBBottomLeft, D3DCOLOR_XRGB(255, 255, 255), 0.999f, 0.999f,}, //Vertex 1 - Red

//左面

{vTBottomLeft, D3DCOLOR_XRGB(255, 255, 255), 0.001f, 0.001f,}, //Vertex 0 - Blue

{vTTopLeft, D3DCOLOR_XRGB(255, 255, 255), 0.999f, 0.001f,}, //Vertex 0 - Blue

{vBBottomLeft, D3DCOLOR_XRGB(255, 255, 255), 0.001f, 0.999f,}, //Vertex 1 - Red

{vBTopLeft, D3DCOLOR_XRGB(255, 255, 255), 0.999f, 0.999f,}, //Vertex 1 - Red

//下面

{vBTopLeft, D3DCOLOR_XRGB(255, 0, 0), 0.001f, 0.001f,}, //Vertex 4 - Red

{vBTopRight, D3DCOLOR_XRGB(0, 0, 255), 0.999f, 0.001f,}, //Vertex 5 - Blue

{vBBottomLeft, D3DCOLOR_XRGB(0, 255, 0), 0.001f, 0.999f,}, //Vertex 6 - Green

{vBBottomRight, D3DCOLOR_XRGB(255, 0, 0), 0.999f, 0.999f,}, //Vertex 7 - Red
};

if(FAILED(p3DDevice9->CreateVertexBuffer(24 * sizeof(CUSTOMVERTEX_TXT),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &m_pVertexBuffer, NULL)))

{
return FALSE;
}

VOID* pVertices = NULL;

if(FAILED(m_pVertexBuffer->Lock(0, sizeof(cvVertices), (void**)&pVertices, 0)))

{
return FALSE;
}

//Copy our stored vertices values into the vertex buffer
memcpy(pVertices, cvVertices, sizeof(cvVertices));

//Unlock the vertex buffer
m_pVertexBuffer->Unlock();
渲染代码如下:


















































































































