- UID
- 1432
- 精华
- 积分
- 76
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
发表于 2016-1-28 14:28:52
|
显示全部楼层
大神,这段是拿到视窗坐标吗?GetVertexShaderConstantF 据说要根据游戏修改这个里不理解。
D3DXMatrixIdentity 是转换到单位矩阵吗?我发现用DXD9_39.DLL 没导出这个函数。
手动是不是写成
m11 =1 m22=1 m33=1 m44 = 1?
void AddModel(IDirect3DDevice9* Device,char* oName,int oTeam)
{
D3DVIEWPORT9 Viewport;
D3DXMATRIX ViewProjectionMatrix,LocalToWorld,WorldToLocal;
D3DXVECTOR3 Vector3D(0,0,0),Vector2D;
Device->GetVertexShaderConstantF(7,ViewProjectionMatrix,1); //change this to match your game matrix
Device->GetVertexShaderConstantF(8,LocalToWorld,1); //change this to match your game matrix
Device->GetViewport(&Viewport);
D3DXMatrixIdentity(&WorldToLocal);
D3DXVec3Project(&Vector2D,&Vector3D,&Viewport,&ViewProjectionMatrix,&LocalToWorld,&WorldToLocal);
if(Vector2D.z < 1.0f)
{
ModelInfo_t pModelInfo = {static_cast<int>(Vector2D.x),static_cast<int>(Vector2D.y),oTeam,oName};
ModelInfo.push_back(pModelInfo);
}
}
|
|