whm630987633
发表于 2016-3-2 00:31:04
楼主,请教个问题,观察矩阵是不是包含摄像机的坐标? 为什么我通过pDevice->GetTransform(D3DTS_VIEW, &view);,得到的矩阵都是1和0
0xAA55
发表于 2016-3-2 11:22:05
whm630987633 发表于 2016-3-2 00:31
楼主,请教个问题,观察矩阵是不是包含摄像机的坐标? 为什么我通过pDevice->GetTransform(D3DTS_VIEW, &vi ...
是的。但是这是摄像机的坐标和旋转的逆矩阵。
whm630987633
发表于 2016-3-6 13:18:48
本帖最后由 whm630987633 于 2016-3-6 13:36 编辑
0xAA55 发表于 2016-3-2 11:22
是的。但是这是摄像机的坐标和旋转的逆矩阵。
楼主,我在编写一个游戏插件,在3D游戏人物旁边显示血条,但是我现在拿到了人物的坐标,要把他的坐标转换到屏幕坐标。
bool WorldToScreen(LPDIRECT3DDEVICE9 pDevice, D3DXVECTOR3 *InOut)
{
D3DXVECTOR3 vScreen;
D3DXVECTOR3 PlayerPos(InOut->x, InOut->y, InOut->z);
D3DVIEWPORT9 viewPort = { 0 };
D3DXMATRIX projection, view, world;
pDevice->GetTransform(D3DTS_VIEW, &view);
pDevice->GetTransform(D3DTS_PROJECTION, &projection);
pDevice->GetTransform(D3DTS_WORLD, &world);
pDevice->GetViewport(&viewPort);
D3DXVec3Project(&vScreen, &PlayerPos, &viewPort, &projection, &view, &world);
if (vScreen.z < 1.0f && vScreen.x > 0.0f && vScreen.y > 0.0f && vScreen.x < viewPort.Width && vScreen.y < viewPort.Height)
{
*InOut = vScreen;
return true;
}
return false;
}
这是我的方法,但是转换出来的坐标总是不对,我提供一个0,0,0的坐标,他转换出来有好几千大的数字。
我刚上高中,C和数学学的都很吃力,最近在啃2本书,看了楼主的教程很有收获,但是实际操作上面又无从入手。
将这个顶点的X、Y值除以这个顶点的Z值,得到的X、Y对应屏幕上的坐标是[-1,1]区间的(超出屏幕范围的可能超过这个区间)然后把它的值变换到区间并乘以你屏幕的分辨率(注意把Y的值从[-1,1]换到区间的时候Y值要取负)。得到的值就是这个顶点在屏幕中的坐标。怎么样?是不是发现异常简单?
这句话有点不理解,之前看了几篇关于坐标转换的文章,,感觉楼主讲的和这个很类似,但是又理解不了。
476089178
发表于 2016-3-8 05:19:42
看看学习下
0xAA55
发表于 2016-3-8 18:48:48
whm630987633 发表于 2016-3-6 13:18
楼主,我在编写一个游戏插件,在3D游戏人物旁边显示血条,但是我现在拿到了人物的坐标,要把他的坐标转换 ...
刚上高中啊,不错。
我是在高二的时候开始研究3D图形学的。
3dvr
发表于 2016-5-25 20:27:23
:) 学习~ 学习~
NTFS--迷幻矩阵
发表于 2017-3-8 10:07:32
看一看线代
冰不孤独
发表于 2017-3-23 09:42:12
看看!!!!!
Jerry
发表于 2017-4-24 14:18:23
学习学习 看看
yxyfy
发表于 2017-5-5 22:10:35
查看源码,学习学习!
驰援杀死
发表于 2017-5-19 09:27:49
完全是膜拜在
Tomoaki
发表于 2017-6-13 15:13:16
果然还是对 数学有一定要求
a4454962
发表于 2017-7-24 02:17:52
虚心学习
oshi
发表于 2017-7-24 05:36:51
先加复一下看看下载的东西.
cxx
发表于 2017-10-16 12:20:43
感谢大神,在此学习了。
二十六
发表于 2017-10-18 11:10:43
谢谢分享
阿呆在上海
发表于 2017-10-23 18:22:19
好好学习,天天向上
机械机械
发表于 2017-11-2 18:35:45
学习学习 多谢多谢
机械机械
发表于 2017-11-2 18:47:30
厉害 :):)
langzhe
发表于 2017-11-12 20:39:04
666666666666666666666666