游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2596|回复: 3

d3d中pick例子的问题

[复制链接]

11

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2004-4-2 13:03:00 | 显示全部楼层 |阅读模式
我把下面这段程序按照我的理解替换成我的程序
例子中的程序:
// Compute the vector of the pick ray in screen space
D3DXVECTOR3 v;
v.x =  ( ( ( 2.0f * ptCursor.x ) / m_d3dsdBackBuffer.Width  ) - 1 ) / matProj._11;
v.y = -( ( ( 2.0f * ptCursor.y ) / m_d3dsdBackBuffer.Height ) - 1 ) / matProj._22;
v.z =  1.0f;

我的程序:
D3DXVECTOR3 v;
D3DXMATRIXA16 p;
//得到投影矩阵的逆
D3DXMatrixInverse(&p,NULL,&matProj);
v.x = ptCursor.x;
v.y = ptCursor.y;
v.z = 1.0f;
v.x  = v.x*p._11 + v.y*p._21 + v.z*p._31;
v.y  = v.x*p._12 + v.y*p._22 + v.z*p._32;
v.z  = v.x*p._13 + v.y*p._23 + v.z*p._33;

这样后程序不能对多边形进行pick了,是不是我的理解有错误,
另外问一下,投影变换后是否已经是屏幕坐标了,如果是的话,那我的程序应该起作用的啊,我求了投影矩阵的逆,并且乘上去了啊,
很疑惑,请指点,谢谢,

11

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
 楼主| 发表于 2004-4-2 14:02:00 | 显示全部楼层

Re:d3d中pick例子的问题

很郁闷啊,

0

主题

63

帖子

63

积分

注册会员

Rank: 2

积分
63
发表于 2004-4-2 23:29:00 | 显示全部楼层

Re:d3d中pick例子的问题

使用2D的坐标通过逆矩阵求3D的坐标是错误的。

11

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
 楼主| 发表于 2004-4-3 13:15:00 | 显示全部楼层

Re:d3d中pick例子的问题

我已经知道了,谢谢,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-5-16 12:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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