Tutorial 8:Scaling Transformation
来源:互联网 发布:手机连接网络摄像机 编辑:程序博客网 时间:2024/06/05 09:33
本文源自:http://ogldev.atspace.co.uk/www/tutorial08/tutorial08.html
- Scaling Transformation
- Background
- Source walkthru
Scaling Transformation
Background
缩放变换非常的简单,它用于增加或者缩小物体的大小。比如说,当你对同一个模型(大小不同却完全一致)生成一些不同的物体,或者你想让世界中的物体大小保持一致的时候,你可能会想做缩放处理。在前面的例子,我想直接在三个坐标轴缩放顶点位置,但是有时候你只能在一个或两个坐标轴进行缩放,这使得模型会变厚或变薄。
展开变换矩阵非常的复杂。我们从单位矩阵着手,原因是矩阵对角线的元素(即1)会直接与相应向量相对的组件直接相乘,结果依然是向量保持不变。因此,替换任何一个对角线的值,当取值大于1的时候会导致物体在一个坐标轴上会变大,相应的在小于1的时候会缩小。
Source walkthru
World.m[0][0]=sinf(Scale); World.m[0][1]=0.0f; World.m[0][2]=0.0f; World.m[0][3]=0.0f; World.m[1][0]=0.0f; World.m[1][1]=sinf(Scale); World.m[1][2]=0.0f; World.m[1][3]=0.0f; World.m[2][0]=0.0f; World.m[2][1]=0.0f; World.m[2][2]=sinf(Scale); World.m[2][3]=0.0f; World.m[3][0]=0.0f; World.m[3][1]=0.0f; World.m[3][2]=0.0f; World.m[3][3]=1.0f;
通过上面的描述,前面教程中所作的唯一改变是我们直接替换world变换矩阵。从上面我们可以直接看到,对每个坐标系进行缩放,缩放系数在-1和1之间。在(0,1]范围内三角形会变小,当缩放系数为0的时候就会完全消失。在[-1,0)范围里也是一样的,只是位置会变反。
0 0
- Tutorial 8:Scaling Transformation
- Tutorial 08: Software Scaling
- Tutorial 6:Translation Transformation
- Tutorial 7 Rotation Transformation
- KDD 2011的关于Scaling Up Machine Learning的Tutorial
- 【GPU编程】《The Cg Tutorial》学习之坐标变换(Transformation) .
- Grails with ATS Transformation tutorial with a demo example
- Lesson 16: SDK文档:Tutorial 5 3D Transformation分析
- Transformation
- 5 Steps To Scaling MongoDB In 8 Minutes
- CPU Scaling
- 3.scaling
- Geometric Scaling
- Image Scaling
- Image Scaling
- Image Scaling
- multidimensional scaling
- Scaling Lucene
- 一个AP无线性能优化案例
- #!/usr/bin/env bash和#!/usr/bin/bash的比较
- 信号量与PV操作
- 为什么pv操作能实现进程的互斥???
- Lua 与C/C++ 交互系列: Lua调用C/C++函数(4-2)
- Tutorial 8:Scaling Transformation
- 信管c++综合设计
- 【面试】【Spring常见问题总结】【01】
- DecimalFormat练习。。
- 态度
- [bzoj 3531]sdoi2014 旅行
- 一些珍贵的网址
- P2P实现原理
- Struts2返回JSON数据的具体应用范例