zoukankan      html  css  js  c++  java
  • Stage3D 中的PerspectiveMatrix3D

    PerspectiveMatrix3D继承自Matrix3D。表示投影矩阵的功能类。

    公式:用4X4矩阵向z=d的平面投影

    image

    public function perspectiveFieldOfViewLH(fieldOfViewY:Number,
                                                     aspectRatio:Number,
                                                     zNear:Number,
                                                     zFar:Number):void {
                var yScale:Number = 1.0/Math.tan(fieldOfViewY/2.0);
                var xScale:Number = yScale / aspectRatio;
                this.copyRawDataFrom(Vector.<Number>([
                    xScale, 0.0, 0.0, 0.0,
                    0.0, yScale, 0.0, 0.0,
                    0.0, 0.0, zFar/(zFar-zNear), 1.0,
                    0.0, 0.0, (zNear*zFar)/(zNear-zFar), 0.0
                ]));
            }

    使用perspectiveFieldOfViewLH时,设定的是左手坐标系,投影平面在z=1的地方。

    public function perspectiveFieldOfViewRH(fieldOfViewY:Number,
                                                     aspectRatio:Number,
                                                     zNear:Number,
                                                     zFar:Number):void {
                var yScale:Number = 1.0/Math.tan(fieldOfViewY/2.0);
                var xScale:Number = yScale / aspectRatio;
                this.copyRawDataFrom(Vector.<Number>([
                    xScale, 0.0, 0.0, 0.0,
                    0.0, yScale, 0.0, 0.0,
                    0.0, 0.0, zFar/(zNear-zFar), -1.0,
                    0.0, 0.0, (zNear*zFar)/(zNear-zFar), 0.0
                ]));
            }

    使用perspectiveFieldOfViewRH时,设定的是右手坐标系,投影平面在z=-1的地方。

    在实际应用中,要特别注意坐标系的选择,否则会出现屏幕上看不到物体的情况。

  • 相关阅读:
    C的联合体和结构体区别
    1_大端模式和小端模式
    1_2017年中兴机试题
    树1---基础
    栈的应用2---后缀表达式
    2 链式存储栈
    2- 栈和队列----之栈
    2) 线性链表
    kaike的FLAGs
    QAQ来自弱鸡的嘲笑
  • 原文地址:https://www.cnblogs.com/hisiqi/p/3155287.html
Copyright © 2011-2022 走看看