渲染流水线与Shader概念(二)

本系列文章系学习 唐福幸《Unity ShaderLab 新手宝典》的笔记,包含个人理解,如有错误欢迎批评指出

2.3 空间变换

顶点在不同的进行变换是流水线上不可或缺的步骤,而且许多特殊效果是在不同空间中进行计算的

模型空间

又称物体空间,本地空间:每个物体都有自己顶点数据,模型空间用于存储自身的顶点数据。

顶点数据包含顶点坐标,法线向量,UV(纹理坐标)的信息等

世界空间

如果要表示不同物体之间的相对位置,要以谁为标准呢,以任意一个都不太合适,所以引入一个公共空间:世界空间

把顶点坐标从模型空间转换成世界空间的过程称之为模型变换(需要使用模型变换矩阵)

例子:当物体进行光照计算时,需要将物体顶点和灯光变换到一个坐标空间中

  1. 将灯光坐标变换到每个物体的模型空间中分别计算
  2. 将灯光和所有物体统一变换到世界空间中整体进行计算

摄像机空间

又称观察空间,引擎在渲染的时候是以摄像机作为观察视角的,就像人的眼睛。因此就需要把世界空间中的物体转换成摄像机空间,转换过程称为视变换(需要使用视变换矩阵)

裁切空间

一个游戏场景可能非常大,但摄像机一次只能看到一小部分,所以为了提高性能,一般只把视野中的物体进行渲染显示,视野外的裁切掉。

所以所谓裁切实际上是在摄像机视锥体边界上对几何体进行切割。

视锥体:视锥体决定了摄像机可以看到的区域,有透视和正交两种
在这里插入图片描述

屏幕空间

到目前为止空间中的顶点坐标信息都还是3D数据,如果想要在屏幕上呈现最终的效果,需要把3D坐标进行投影变换转换成2D坐标,进而得到屏幕空间下的像素坐标。

虽然像素作为平面显示,不需要z分量,但仍然需要把z分量保存下来,以便后面进行深度测试阶段进行深度值比较和其它处理

多个坐标空间存在的意义

转换过程如下:
在这里插入图片描述
意义:描述物体的时候不容易产生歧义,有利于简化空间计算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值