Stage3D 中的PerspectiveMatrix3D
PerspectiveMatrix3D继承自Matrix3D。表示投影矩阵的功能类。
公式:用4X4矩阵向z=d的平面投影

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的地方。
在实际应用中,要特别注意坐标系的选择,否则会出现屏幕上看不到物体的情况。
Stage3D 中的PerspectiveMatrix3D的更多相关文章
- stage3D基础四----Stage3D和透视投影的使用(转)
原文地址: http://www.adobe.com/cn/devnet/flashplayer/articles/perspective-projection.html 引言 在本教程中,你将了解透 ...
- Stage3D学习笔记(四):正交矩阵
我们上一章节显示图片的时候,会发现我们制定的顶点在Stage3D中其实是存在一个区间的: x轴(从左到右):[-1.0-1.0] y轴(从下到上):[-1.0-1.0] z轴(从近到远):[0-1.0 ...
- stage3D基础一-----Stage3D如何工作(转)
在如何使用Stage3D系列中的第一个教程中,你将会学习到有关在Flash Player 11中新引入的ActionScript API,该API允许在Flash中利用硬件加速进行3D渲染.在学习这个 ...
- 【Away3D代码解读】(一):主要类及说明
在深入解读Away3D的代码之前,需要对其有个大概的认识.本节主要列出Away3D中常用的类,并附上说明: View3D: Away3D的入口类,即创建该类就会初始化一个可以使用GPU呈现3D的对象, ...
- Python开源框架
info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...
- [AS3 3D Demo] Stage3D学习过程中开发的3个Demo
1.飞机大战 基于Starling开发,使用了对象池技术的Demo. 2.3D人物2D背景游戏Demo 基于Away3D开发,实现了3D资源管理.寻路和跳跃等功能. 3.全3D游戏Demo 基于Awa ...
- 【Stage3D学习笔记续】真正的3D世界(一):透视矩阵
如果各位看官跟着我的学习笔记一路看过来的话,一定会吐槽我的,这都是什么3D啊?从头到尾整个都是在使用GPU绘制一堆2D图像而已,的确,之前我们一直使用正交矩阵利用GPU加速来实现2D世界的展示,算不上 ...
- 3D游戏中的画质与效率适配
哪里来的需求? 众所周知,由于不同的设备配置不同.导致其CPU和GPU处理能力有高有低.同样的游戏想要在所有设备上运行流畅且画面精美,是不可能的.这就需要我们针对不同的设备能力进行画质调节,以保证 ...
- 初探Stage3D(三) 深入研究透视投影矩阵
关于本文 本文主要讲解从数学的角度如何推导出Stage3D中用到的两个投影矩阵 perspectiveLH public function perspectiveLH(width:Number,hei ...
随机推荐
- python_ 运算符与分支结构
# 运算符与分支结构 ### 运算符 - 赋值运算符 - 用'='表示,左边只能是变量. - 算术运算符 - +.-.*:加.减.乘 - /:除法运算,结果是浮点数 - //:除法运算,结果是整数 - ...
- 【Python】print 方法的参数
当在IDEL或者命令行中执行 help(print) 命令时,就可以看到 print 方法的详细说明: print(value, ..., sep=' ', end='\n', file=sys.st ...
- zedboard zynq 学习 sobel 边缘检测 IP核 制作 根据 文档 Xapp890
官方文档http://www.xilinx.com/support/documentation/application_notes/xapp890-zynq-sobel-vivado-hls.pdf ...
- shell sort 排序大讨论
转自http://roclinux.cn 本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. === [正文开始]有时候学 ...
- 重复造轮子系列--字符串处理(C语言)
这些字符代码是以前写的,源于很久很久以前的一个VC++项目,在当时的部门编程比赛里因为用了项目代码的xsplit函数,万万没想到,那个做了几年的项目里面居然有坑..xsplit函数居然不能split连 ...
- altium designer同一工程多个原理图如何快速查找同一网络标号
方法一:如果只知道网络标号的名称,尚未找到任何一个,可以:Ctrl+F,输入网络标号名称,可按顺序逐个查看各个网络标号. 方法二:如果已经看到一个所要查找的网络标号,可以:按住Alt键不放,鼠标左键单 ...
- linux中shell变量$#,$@,$0,$1,$2
linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...
- 转 android Listview,gridview局部刷新,部分刷新 (仿QQ动态评论局部刷新)
转自:http://blog.csdn.net/jdsjlzx/article/details/45582719 众所周知Listview和Gridview的刷新界面的方式是调用adapter.not ...
- 重建二叉树_C++
一.题目背景 给定一个二叉树的前序和中序遍历,求出它的后序遍历 二叉树的遍历可参考 http://blog.csdn.net/fansongy/article/details/6798278/ 二.算 ...
- kali 开启smb
root@kali:~# smbpasswd -a rootNew SMB password:Retype new SMB password:root@kali:~# vi /etc/samba/sm ...