Transform------如何把一个三维场景转化为一张照片

就像之前提到的,图形学就是几何数据的表示与处理。

假设我们已经有了一个三维场景,那么如何将其显示在屏幕上呢?毫无疑问,显示器是二维的,所以这是一个由三维到二维的过程,一个降维过程。

我们可以类比照相机,事实上,计算机很多时候做的事情其实就是客观世界的模拟与再现。通常我们想在计算机解决一个问题的时候,常见的思考方向是看看现实中是如何解决的。

我们在拍照时,总是让人们先摆好pose,这就对应图形学中的Model Transformation,包括平移,旋转,缩放,并且变换的顺序是会影响结果的;

3D缩放和平移
3D旋转
绕过原点n轴角度为α

在人们摆好pose之后,自然是找好相机角度,这就对应图形学中的View Transformation,通常我们是把相机移到原点,向上方向为Y方向,看向-Z方向,此时为了保持结果一致性,要保持模型和相机一起变换,不要产生相对运动;
View/Camera Transformation
第三步自然是拍照,这个过程就是相机做透视投影的过程,图形学中也是类似,先做透视投影,把三维模型挤压成长方体,然后再做正交投影。
正交投影
第三行是0 0 n+f -nf
在这里插入图片描述
最后是视口变换,就是把一个已经规范化的立方体转换到屏幕上,之前数据一直都是三维的,但是在这个过程中三维的会变成二维的。
视口变换
PS1:由于平移不属于线性变化,无法写成矩阵相乘的形式,所以在此引入齐次坐标和仿射变化的概念,仿射变换包括线性变换和平移。
PS2:变换的顺序是有影响的,顺序不同,结果也不同,一般是先平移到原点再做相应的变换。
PS3:由于矩阵具有结合律,所以可以通过求解变换矩阵来简化运算。
PS4:相机和模型同步变换,结果不变。
PS5:先做透视投影,后做正交投影,便于理解。

在此期间,数据都是连续的,意味着可以无限放大。在下一节光栅化时,会产生采样,数据会被离散化。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值