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的地方。

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

  • 相关阅读:
    组合算法实现
    Memcached 和 Redis 分布式锁方案
    CLR 内存分配和垃圾收集 GC
    Windbg 的使用和常用命令
    Geohash 算法学习
    经纬度计算
    Windbg 分析CPU上涨
    Windbg 分析内存上涨
    django基于存储在前端的token用户认证
    非常详细的Django使用Token(转)
  • 原文地址:https://www.cnblogs.com/hisiqi/p/3155287.html
Copyright © 2011-2022 走看看