OpenGL ES1.1.12 第二章 2.10.3
来源:互联网 发布:高中历史辅助教程 淘宝 编辑:程序博客网 时间:2024/04/29 21:45
(仅是草稿,未做整理)
2.10.3规范化变换
最后,考虑模型视图矩阵和转换状态如何影响规范化。在使用光线之前,法线转换成眼坐标,这种转换是通过从模型视图矩阵衍生出来的矩阵。缩放和规范化操作是使得他们的单位长度优先于使用光线。通过以下命令完成缩放和规范化操作:
void Enable( enum target )和void Disable( enum target )。
其中target参数为RESCALE_NORMAL 和 NORMALIZE。需要2-bti的状态值。初始状态时没有缩放也没有规范化。
如果模型视图的矩阵为M,那么法线转换成眼坐标如下3:
其中,如果是与顶点坐标相关联,那么
实现时,也许会选择对进行转换生成眼坐标,如下:
-----------------------
3标注处,法线是以行向量形式,通过转换逆矩阵,后乘的转换。如果法线是以列向量形式,那么转换将由先乘逆矩阵方式进行,
Mu是从M得到的右上角3x3矩阵。
缩放乘上转换通过缩放系数,如下
如果缩放没有使能,那么f=1,如果缩放使能,那么f如下
其中mij表示矩阵的第i行,第j列的元素。最上行为1,最左列为1。
注意,如果法线送至GL,是单位长度和模型视图矩阵统一缩放空间,那么,缩放转换为法线单位长度。
或者,实现时,f也可以如下:
这样对每一个法线重新计算。使得所有非零长度的法线单位长度,可以忽略他们的输入长度和视图模型的属性。
缩放后,最终的转换法线用于光线,nf根据如下计算
如果规范化没有使能,那么m=1,否则
由于我们并没有定义浮点格式或倒置矩阵均值,因此,不能定义弱条件(接近奇异)的视图模型矩阵M的行为。在奇异矩阵条件下,法线转换是未定义。如果实现GL确定了模型视图矩阵是不可逆的,在逆矩阵的入口是任意的。在任何情况下,规范化转换或使用转换法线都不能导致GL中断或终止。
- OpenGL ES1.1.12 第二章 2.10.3
- OpenGL ES1.1.12 第二章 2.10.2
- OpenGL ES1.1.12 第二章 2.10 2.10.1
- OpenGL ES1.1.12 第二章 2.1
- OpenGL ES1.1.12 第二章 2.1.1
- OpenGL ES1.1.12 第二章 2.5
- OpenGL ES1.1.12 第二章 2.7
- OpenGL ES1.1.12 第二章 2.8
- OpenGL ES1.1.12 第二章 2.9
- OpenGL ES1.1.12 第二章 2.9.2
- OpenGL ES1.1.12 第二章 2.2,2.3,2.4
- OpenGL ES1.1.12 第二章 2.6 2.6.1
- OpenGL ES1.1.12 目录
- OpenGL ES1.1.12 第一章
- OpenGL ES1.1.12版权说明
- opengl es1.1 平台搭建
- Opengl ES1 笔记 2013-04-24
- OPENGL ES1.X多重纹理的实现
- Android设置界面
- android源码编译(从很多地方搜索的,每个问题的具体出处搞不清楚了)
- Git详解之二 Git基础2
- 黑马程序员 java基础<五>--IO流(3)
- 正则表达式:去掉数字(整数、小数)前面多余的零
- OpenGL ES1.1.12 第二章 2.10.3
- 拿数据说话,教你侦破“人人猎头”的谎言
- Python, Shell 遍历文件
- OGNL遍历list和map 以及访问四个范围的属性值
- 分享个java线程安全,自增主键id的类AtomicLong
- Android播放声音SoundPool、MediaPlayer、AudioTrack
- 常用的android弹出对话框
- Effective C++学记之07 为多态基类声明virtual析构函数
- Java API online