关于纹理(贴图)的问题

SamSmith2004 2005-03-05 12:36:29
我建了一个C3DObject类。载入纹理和建立模型都是对的。但是只能显示全黑的一个物体,却没显示纹理。
HRESULT C3DObject::Render(LPDIRECT3DDEVICE7 pd3dDevice, BOOL bAlpha)
{
if(!_bVisible) return S_OK;
D3DMATRIX matWorld, matTrans, matRotateX,matRotateY,matRotateZ,matScale;

D3DUtil_SetTranslateMatrix(matTrans,_vPos.x,_vPos.y,_vPos.z);
D3DUtil_SetRotateXMatrix( matRotateX, _fRadX );
D3DUtil_SetRotateYMatrix( matRotateY, _fRadY );
D3DUtil_SetRotateZMatrix( matRotateZ, _fRadZ );
D3DUtil_SetIdentityMatrix( matWorld );
D3DMath_MatrixMultiply(matWorld,matTrans, matWorld);
D3DMath_MatrixMultiply(matWorld,matRotateZ,matWorld);
D3DMath_MatrixMultiply(matWorld,matRotateY,matWorld);
D3DMath_MatrixMultiply(matWorld,matRotateX,matWorld);

pd3dDevice->SetTexture( 0, D3DTextr_GetSurface(_texture) );
pd3dDevice->SetTransform(D3DTRANSFORMSTATE_WORLD, &matWorld );
pd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST,D3DFVF_VERTEX,
_pVertex,_vecNum,_pVecIndex, _vecIndexNum, 0 );
pd3dDevice->SetTexture( 0, NULL );
return S_OK;
}

在其他函数里面灯光有打开的。
请教各位,指点迷津啊。
...全文
136 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ww51xh 2005-03-12
  • 打赏
  • 举报
回复
没有材质或者光照
寻开心 2005-03-07
  • 打赏
  • 举报
回复
嘿嘿
做东西最好的办法是先copy dxsdk里面的代码过来,然后修改成你要的东西
如果都是自己写的话,很容易会丢失一些状态的设置的

dxsdk当中虽然对每个技术的相关状态设置都做了描述,但是不全面
具体的时候,还是要参照dxsdk里面例子的设置方法去调整才行的
SamSmith2004 2005-03-07
  • 打赏
  • 举报
回复
解决了,是没设材质的缘故
limiteee 2005-03-05
  • 打赏
  • 举报
回复
你试试不要用D3DTextr_GetSurface函数。。。。。。。

或者把这段代码拿出来,单独运行。。。。。
pzh508 2005-03-05
  • 打赏
  • 举报
回复
为什么先是 pd3dDevice->SetTexture( 0, D3DTextr_GetSurface(_texture) );
然后又马上 pd3dDevice->SetTexture( 0, NULL );

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧