用DirectX9的d3dvertexelement9数组定义2D顶点的时候出了有关问题
用DirectX9的d3dvertexelement9数组定义2D顶点的时候出了问题
代码在这里,使用方法参见压缩文件内的ReadMe.txt文件。想使用2D的坐标(另外带有纹理坐标),也就是变换后的坐标,可是不知道怎么的,运行时不显示图像。谁能告诉我问题出在哪里呢?
http://download.****.net/detail/u011873969/7934819
------解决思路----------------------
使用双面材质?照明有吗?相机镜头对准了吗?
------解决思路----------------------
帮你看了看代码,发现以下几个问题:
1、Vertex.cpp文件中,void InitAllVertexDeclarations()函数中
应该改为:
2、WinMain.cpp文件中的BOOL DoInit()函数中
的
应该改为
3、同一函数中,
前面要加上InitAllVertexDeclarations()函数的调用。
代码在这里,使用方法参见压缩文件内的ReadMe.txt文件。想使用2D的坐标(另外带有纹理坐标),也就是变换后的坐标,可是不知道怎么的,运行时不显示图像。谁能告诉我问题出在哪里呢?
http://download.****.net/detail/u011873969/7934819
------解决思路----------------------
使用双面材质?照明有吗?相机镜头对准了吗?
------解决思路----------------------
帮你看了看代码,发现以下几个问题:
1、Vertex.cpp文件中,void InitAllVertexDeclarations()函数中
D3DVERTEXELEMENT9 Vertex2DTexElements[] =
{
{ 0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITIONT, 0 },
{ 0, 4*sizeof(WORD), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
D3DDECL_END()
};
应该改为:
D3DVERTEXELEMENT9 Vertex2DTexElements[] =
{
{ 0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITIONT, 0 },
{ 0, sizeof(D3DXVECTOR3), D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0 },
D3DDECL_END()
};
2、WinMain.cpp文件中的BOOL DoInit()函数中
的
// Create the index buffer and set data
g_pD3DDevice->CreateIndexBuffer(sizeof(WORD) * 2, D3DUSAGE_WRITEONLY, \
D3DFMT_INDEX32, D3DPOOL_DEFAULT, \
&g_pIB, NULL);
应该改为
// Create the index buffer and set data
g_pD3DDevice->CreateIndexBuffer(sizeof(WORD) * 6, D3DUSAGE_WRITEONLY, \
D3DFMT_INDEX16, D3DPOOL_DEFAULT, \
&g_pIB, NULL);
3、同一函数中,
// Load the texture map
D3DXCreateTextureFromFile(g_pD3DDevice, _T("Beauty_0.jpg"), &g_pTexture);
前面要加上InitAllVertexDeclarations()函数的调用。