顶点着色器-经过的空间变换
来源:互联网 发布:centos命令大全 编辑:程序博客网 时间:2024/06/05 03:09
顶点着色器:
基本功能:就是把模型的顶点坐标从模型空间转换到齐次剪裁空间中。渲染过程可以理解成把一个一个顶点记过层层处理最终转化到屏幕上的过程。
模型空间(Model Space):
模型空间也叫作 Object Space和Local Space(局部坐标),也就是模型在移动旋转的时候,模型空间也会跟着移动旋转。
世界空间(World Space):
Unity中,世界空间使用的是左手坐标系,如果一个模型没有父节点,Transform属性就是模型在世界空间中的位置
顶点变换-模型变换(Model Transform):
顶点变换的第一步就是将顶点坐标从模型空间变换到世界空间中,这个变换也叫作模型变换(Model Transform)
比如求一个模型的手指在世界空间中的位置(已知模型中心在世界空间中位置,手指在模型空间中位置,通过矩阵可以求出手指在世界空间中位置),可以通过矩阵变换 P(world) = M(modsl)P(modsl)
观察坐标(View Space)
观察空间也叫作摄像机空间(Camera Space)。观察空间可以认为是模型空间的一个特例-在所有模型中有一个特殊的模型即摄像机为中心的空间
剪裁空间(Clip Space)(投影矩阵-projection matrix)
通过视锥体进行剪裁,视锥体设计两种投影类型-一种是正交投影(orthographic projection),一种是透视投影(perspective projection),透视投影是一个金字塔形,正交投影是一个长方体。
屏幕空间(Screen Space)
观察空间(三维)到屏幕空间(二维)的转换要经过投影操作(projection),进过投影变换后,我们可以进行剪裁操作,当完成所有的剪裁操作之后,就把视锥体投影到屏幕空间中。进过这个变换我们得到真正的像素位置。而不是虚拟的三维坐标。
在Unity中,从剪裁空间到屏幕空间的转换是由Unity帮我们完成的,我们的顶点着色器只需要把顶点转换到剪裁空间中,然后unity自动转换到屏幕空间。
总结:模型到屏幕经过的转换如下
- 模型空间–>世界空间–>观察空间–>剪裁空间–>屏幕空间
- 其中:模型空间–>世界空间–>观察空间–>剪裁空间 分别进过 MVP矩阵进行变换
- 剪裁空间–>屏幕空间是由Unity自动完成的。
- 除观察坐标用的是右手坐标系,其他都用左手坐标系
- 在顶点着色器中,通常串联成一个矩阵,即MVP矩阵,用于将顶点从模型空间转换到剪裁空间中。
最后,在顶点着色器中,通常串联成一个矩阵,即MVP矩阵,用于将顶点从模型空间转换到剪裁空间中。
- 顶点着色器-经过的空间变换
- 顶点着色器-经过的空间变换
- 顶点着色器-经过的空间变换
- Unity3d 顶点着色器传入的顶点数据
- 表面着色器的顶点动画
- opengl一个简单的顶点着色器
- 顶点着色器和像素着色器的数据处理流程
- 着色器编程入门 - 顶点着色的基本原则(转)
- DirectX 3D_基础之顶点着色器 顶点声明 顶点着色器的输入 顶点着色器的编写和编译 卡通着色 轮廓勾勒
- 顶点着色器入门
- HLSL顶点着色器
- 顶点、片段着色器
- 顶点,片段着色器
- opengl顶点着色器
- OGLES顶点着色器
- 【Unity Shader学习笔记】(一)在表面着色器中控制顶点变换
- 给图的顶点着色
- 顶点着色器(vertex shader)
- mybatis 获取指定mapper id sql
- NSTextAttachment实现图文混排
- postgresql启动、状态查看、关闭
- 论angularjs指令的重要性
- cordova + ionic 使用中碰到的一些问题
- 顶点着色器-经过的空间变换
- Facebook Surround 360 环境配置指南
- Handler中更新UI,如果报错子线程不能更新UI,可能出现的问题
- 区分:P问题、NP问题、NPC问题、NP-hard问题(自己收藏,转载)
- VisualSVN钩子设置
- 为什么不应该使用ZooKeeper做服务发现
- 机器学习/深度学习/自然语言处理学习路线
- win10杜比音效安装教程以及资源
- 如何创建SSH Keys(Git)