找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 2596|回复: 0

【求助】HOOK D3D DIP 后的矩阵问题

[复制链接]

2

主题

12

回帖

76

积分

用户组: 小·技术宅

UID
1432
精华
0
威望
2 点
宅币
58 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2016-1-21
发表于 2017-4-13 17:57:41 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
以下是老外的换算代码。
理解为用3个矩阵坐标换算出屏幕坐标
UINT OffsetInBytes,Stride;
VOID* pIndex,*pData;
D3DXVECTOR3 Vector2D;
pDevice->GetVertexShaderConstantF(0,ViewProjectionMatrix,4);    这里取顶点矩阵坐标?(三个参数表什么呢,为何 是 0,4    230,4    9,3  msdn 也没找到)
pDevice->GetVertexShaderConstantF(230,LocalToWorld,4);
pDevice->GetVertexShaderConstantF(9,WorldToLocal,3);
pDevice->GetIndices(&pIndexData);
pDevice->GetViewport(&Viewport);
pDevice->GetStreamSource(0, &pStreamData, &OffsetInBytes, &Stride);

D3DXMatrixIdentity(&WorldToLocal);
D3DXVECTOR3 VectorMiddle(0,0,0),ScreenMiddle(Viewport.Width/2,Viewport.Height/2,0);


D3DXVec3Unproject(&VectorMiddle,&ScreenMiddle,&Viewport,&ViewProjectionMatrix,&LocalToWorld,&WorldToLocal);


D3DXVec3Project(&Vector2D,&Vector3D, &Viewport, &ViewProjectionMatrix,&LocalToWorld,&WorldToLocal);

    {
        DrawRectangle(Vector2D.x,Vector2D.y,30,30);
    }

回复

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-19 12:06 , Processed in 0.040790 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表