flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● ck47阁下在讨论区里 发表新主题“新手问题...”(07:49:50)
● 无语瓶阁下在教程区里 回复“《超简易papervision3D基础 ...”(18:09:44)
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
浏览主题:不大理解pv3d的投影矩阵方法,高手给讲讲。

不大理解pv3d的投影矩阵方法,高手给讲讲。
88er (2009-05-20 17:46:13)

camera3d.as里看到的
public static function CreateProjectMatrix( fov:Number, aspect:Number, near:Number, far:Number ):Matrix3D
{
var fov2:Number = (fov/2) * (Math.PI/180);
var tan:Number = Math.tan(fov2);
var f:Number = 1 / tan;
return new Matrix3D( [f/aspect, 0, 0, 0,
           0, f, 0, 0,
           0, 0, -((near+far)/(near-far)), (2*far*near)/(near-far),
           0, 0, 1, 0
           ] );
}
按照d3d/opengl方法,投影矩阵应该是
Matrix3D( [f/aspect, 0, 0, 0,
           0, f, 0, 0,
           0, 0, -far/(near-far)), (*far*near)/(near-far),
           0, 0, 1, 0
           ] );
pv3d的矩阵是如何得来的??


flash 3d 研究所 DDM君
(2009-05-21 07:06:22)
pv3d的matrix规则大概是这样,记得以前看到过转换openGL到pv3d矩阵的功能

ScaleX   ShearYX   ShearZX   PerspectiveX
ShearXY   ScaleY   ShearZY   PerspectiveY
ShearXZ   ShearYZ   ScaleZ   PerspectiveZ
TranslateX TranslateY TranslateZ   Homogeneous

flash 3d 研究所 Z
(2009-05-25 19:24:25)
先更正一下你的说法,ogl同d3d的投影矩阵是不同的。
投影矩阵会把zNear和zFar都都映射到一个范围的,dx是0--1, ogl是-1--1,同事左右手也会影响投影矩阵。
pv3d应该和d3d同为左手坐标系,但是它的投影范围应该和ogl一样,所以投影矩阵自然有区别了。 详细的可以看任意一本图形学入门书。

flash 3d 研究所 DDM君
(2009-05-26 08:12:02)
嗯,d3d和opengl矩阵是不一样的。Z君非常专业呢,呵呵^_^

ps:Z君是史爷?

flash 3d 研究所 Z
(2009-05-26 09:07:06)
喺啊,丁大爷好

flash 3d 研究所 DDM君
(2009-05-26 13:35:43)
呵呵,史爷好啊好啊。

to 88er君:这位Z君可是这方面的大师哦,好好听~

flash 3d 研究所 Z
(2009-05-26 15:12:24)
我汗都下来了=。= ,别这门说蛮。

flash 3d 研究所 DDM君
(2009-05-27 06:54:17)
哈哈,不要说‘蛮’嘛。以前我一说蛮别人知道就是什么地方的了。
你本来就是这方面的专家的蛮,而且未来很有可能是国内这个领域的顶级精英蛮(用错了哇?^_^)

评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了