渲染管线理解2
来源:互联网 发布:神话软件下载 编辑:程序博客网 时间:2024/05/18 01:48
1 视锥
视锥把空间限制在一个6面的突面体,在这个空间的物体会被渲染,下图是一个截断的金字塔。
视图窗口大小,视角,视图距离。知道任意2个计算第三个变量。
视图窗口大小固定,调整视角(fov),视角越大,视图距离(focus length)越小。
视角固定,调整视图距离,视图距离越大,视图窗口越大。
视锥通常有一个近平面,近平面距离一般不为0,因为之后做除法会有问题,在投影矩阵中讲。
远平面是可选择的,一般为了提高效率会设置一个圆平面,近平面和远平面的距离决定了深度(z)的精度。
2 齐次坐标
三维空间
在n维空间中的点在n+1维空间中可以通过变换n维空间点的尺度,并把这个尺度放到多出来的维度上。
即从三维空间到齐次坐标乘以一个尺度w,一般情况下w=1
从齐次坐标到三维坐标
三维平面的点在齐次坐标系中有n个点,即不同的w,如果当w=0情况下,
3 透视投影
假设视角(fov)为θ,我们采用和opengl一致的右手坐标系,看向-z轴,投影在yz平面上。焦距d计算如下:
在规格化设备坐标(normalized device coordinates,ndc)中,即
假设平面宽高比为
同理可以得到:
即:
总的公式如下:
所有的z坐标都变成了-d。不能表示成一个
线性或者是仿射变换。
齐次坐标中,
把w设为-zv,就可以处理这个非线性的变换。
w未使用
写成矩阵形式
我们引入了一个w来表示这个变换,对于第三行我们知道把齐次坐标转换到三维坐标经过除法w。保留
假设近平面n和远平面f。那么z的坐标值分别为-n,-f。 [-n,-f]映射到[-1,1]
同样我们采用一个尺度A和平移B变换来表示
即
把(-n,-1),(-f,1)带入得到
把AB带入公式得到:
z映射到[0,1]
- 渲染管线理解2
- 渲染管线理解1
- 渲染管线理解3
- 渲染管线理解4
- Opengl 渲染管线 -- 2
- OpenGL/OpenGL ES 渲染管线理解
- 对OpenGLES2.0渲染管线的理解
- OpenGL系列2:渲染管线
- 对3D渲染管线(渲染流水线)的理解
- 渲染管线
- 渲染管线
- 渲染管线
- 渲染管线
- 渲染管线
- 渲染管线
- 渲染管线
- 渲染管线
- 渲染管线
- mybatis01
- DP作业指南
- 探新Web前端开发(六)
- Android 6.0 运行时权限详解
- Python之xlsx文件与csv文件相互转换
- 渲染管线理解2
- c++ explicit关键字
- 网络编程二
- github 搜索
- sum-root-to-leaf-numbers Java code
- HTML解析之三:安装BeautifulSoup4
- linux每天一命令:目录操作
- 158B Taxi 贪心
- python3 数据类型之 整型、布尔类型、字符串