游戏图形学入门知识整理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了游戏图形学入门知识整理相关的知识,希望对你有一定的参考价值。
参考技术A 在此感谢各位老师!教程:
线性代数基础: https://www.bilibili.com/video/BV1ib411t7YR?p=1
GAMES101-现代计算机图形学入门-闫令琪: https://www.bilibili.com/video/BV1X7411F744
GAMES202-高质量实时渲染-闫令琪: https://www.bilibili.com/video/BV1YK4y1T7yY
华中科技大学-计算机图形学-万琳: https://www.bilibili.com/video/BV1Zj411f7S3?p=13&spm_id_from=pageDriver
论坛:
计算机图形学与混合现实研讨会
博客:
冯乐乐(Shader入门精要) http://candycat1992.github.io/
经过以上变换,此时物体处在裁剪空间,
★下图需要注意,每个教材的解释略有不同,下图直接就齐次除法变成规范化的了
实际上这里只是为真正是投影(齐次除法)做准备,此时裁剪面依然是梯形四棱锥形态
目的:
1.为后面真正投影做准备,赋予W特殊意义。
2.对X,Y,Z缩放,W作为范围值,便于裁剪。
裁剪空间之前,W=0表示矢量方向,W=1表示点,投影变换之后,W的意义改变了,如下
投影变换对X,Y,Z分量进行缩放,W分量变成-z,如X,Y,Z在W范围内[-w,w],说明该顶点在裁剪空间内
Unity下,观察空间为右手坐标系,列矩阵右乘,投影变换后Z分量范围为[-w,w]
DirectX,投影变换后Z为[0,w]
进入裁剪空间后,右手坐标系,转为左手坐标系,离摄像机越远Z值越大
齐次除法=透视除法=归一化的设备坐标NDC(OpenGL)=W分量除以X,Y,Z分量
裁剪空间→NDC(经过齐次除法后,变换到一个立方体内)
立方体X,Y,Z分量的范围是[1,-1](OpenGL)
DirectX中Z分量是[0,1]
Unity=OpenGL
Unity中屏幕空间左下角是[0,0],右上角是[pixelWidth,pixelHeight]
由于当前的X,Y都是[1,-1],所以屏幕映射就是一个缩放的过程
此时Z分量经过齐次除法,也就是除W,得到的数值直接存进了深度缓冲区,这步是自动的,当然也可手动
W分量的意义主要是充当分母来得到NDC
以上就是从模型空间变换到屏幕坐标的过程
视口空间坐标公式如下
上面公式的思想就是,首先对裁剪空间下的坐标进行齐次除法,得到范围在[ − 1, 1] 的 NDC,然后再将其映射到范围在[ 0, 1] 的视口空间下的坐标。
ComputScreenPos 用法
z和w值就是裁剪空间下的值。
详情请看ComputScreenPos ,其定义位于UnityCG.cginc中
Sin:对边比斜边
Cos:邻边比斜边
Tan:对边比临边。
计算机图形学常用术语整理
参考技术A 001. Physically Based Rendering英文缩写】PBR
【中文翻译】 基于物理的渲染
【补充说明】大型3D游戏常用的一种渲染流程,有利于保证画面效果的真实感。
【相关资料】《Physically Based Rendering: From Theory to Implementation》
002. Local Illumination
【英文缩写】未知
【中文翻译】 局部光照
【补充说明】 光源直接作用于模型表面的光照效果 。
003. Global Illumation
【英文缩写】GI
【中文翻译】 全局光照
【补充说明】光源与环境中所有的表面相互作用(光线在物体表面反射、透射,产生新的光线)产生的光照效果,即真实的光照效果。
相关算法:辐射度算法(Radiosity)、 光线追踪算法(Ray Tracing)
004. Image-Based Lighting
【英文缩写】IBL
【中文翻译】 基于图像的灯光
【补充说明】使用 预处理的环境光贴图 来做光源的间接照明方案。
005. Texture Buffer
【英文缩写】T-Buffer / Tbuffer
【中文翻译】纹理缓冲
【补充说明】Shader Model 4.0 常量缓冲的一种组织形式,以类似纹理的方式访问,适用于通过随机索引读取的数据。
006. Constant Buffer
【英文缩写】C-Buffer / Cbuffer
【中文翻译】常量缓冲
【补充说明】Shader Model 4.0 常量缓冲的一种组织形式,CPU访问的延迟较低,适用于需要频繁在CPU端更新的数据。
007. Geometry Buffer
【英文缩写】G-Buffer / Gbuffer
【中文翻译】 几何缓冲
【补充说明】用于支持 Deffered Rendering (延迟渲染) 所使用的缓冲,用于 储存着色计算过程中的中间数据 。
008. Vertex Texture Fetch
【英文缩写】VTF
【中文翻译】 顶点纹理拾取
【补充说明】Shader Model 3.0的新特性,支持在顶点着色器中访问纹理数据
009. Deffered Rendering
【英文缩写】DR
【中文翻译】 延迟渲染
【补充说明】将 不接受光照的场景 先渲染到Gbuffer,再对Gbuffer应用光照的一种技术.
根据实现方式的不同,可以分为两类:
Deffered Shading
Deffered Lighting
优点:避免了对不可见像素点的光照计算,允许通过光源几何体控制光源的着色范围,可以有效提升多光源场景的渲染效率。
缺点:对渲染透明物体的支持不好,不支持硬件抗锯齿,对显存带宽要求较高。
【相关资料】 Deferred Shading VS Deferred Lighting
010. Forward Rendering
【英文缩写】FR
【中文翻译】 前向渲染 / 正向渲染
【补充说明】传统的渲染技术,逐像素点计算光照,当光源较多且场景较复杂时渲染效率较低,但能够比较方便地渲染透明物体。
011. Anti-Aliasing
【英文缩写】AA
【中文翻译】 抗锯齿
【补充说明】Aliasing的实际意义是**”采样频率过低导致的图形失真”**,学名为”混叠”,具体现象包括图形边缘产生锯齿、画面抖动等。
目前主流的AA方法有:
MSAA:Multi-Sampling Anti-Aliasing,多重采样抗锯齿
FXAA:Fast Approximate Anti-Aliasing,快速近似抗锯齿
TXAA:Temporal Anti-Aliasing,时间性抗锯齿
SSAA:Super Sampling Anti-Aliasing,超级采样抗锯齿
012. Tiled-based Rendering
【英文缩写】TBR
【中文翻译】 分块渲染 / 分片渲染
【补充说明】 当前移动设备显卡的主流渲染优化方式 ,将帧缓冲分割为一小块一小块,然后 逐块进行渲染 。
优点:可以充分利用GPU的 Tile缓冲(On-Chip Buffer,相比Frame Buffer具有更快的读写速度,但体积很小)
缺点:需要存储当前帧所有的几何体信息,当场景中几何体过于复杂时,会得不偿失。如果像素着色器阶段存在剔除操作就无法生效。
【相关资料】 OpenGL Insights 阅读有感 - Tile Based架构下的性能调校 翻译
013. Framebuffer Fetch
【英文缩写】未知
【中文翻译】帧缓冲拾取
【补充说明】OpenGL ES(移动平台)的一种特性,支持像素着色器直接访问帧缓冲中对应像素的数据。
014. Pixel Local Storage
【英文缩写】PLS
【中文翻译】像素本地存储
【补充说明】OpenGL ES(移动平台)的一种特性,支持像素着色器在像素内存地址中保存并访问自定义数据,通常用于加速延迟渲染。
【相关资料】 Pixel Local Storage on ARM Mali GPUs
015. Precomputed Radiance Transfer
【英文缩写】PRT
【中文翻译】 预处理辐射传播
【补充说明】 预处理场景中的光线相互作用 ,从而实现实时全局光照效果。
核心实现原理是利用蒙特卡洛积分和球谐函数对光照信息进行编码。
【相关资料】 PRT(Precomputed Radiance Transfer)&球谐光照(Spherical Harmonic Lighting)
016. Spherical Harmonics
【英文缩写】SH
【中文翻译】 球谐函数
【补充说明】球谐函数是定义在单位球表面的基函数,在PRT方法中被用于优化光照计算。
【相关资料】 Spherical Harmonics Lighting
017. Bidirectional Reflectance Distribution Function
【英文缩写】 BRDF
【中文翻译】 双向反射分布函数
【补充说明】 描述入射光线经过某个表面反射后如何在各个出射方向上分布的函数表达式。
【相关资料】 双向反射分布函数
018. Bidirectional Transmittance Distribution Function
【英文缩写】BTDF
【中文翻译】 双向透射分布函数
【补充说明】描述入射光线经过某个表面 透射 后如何在各个出射方向上分布的函数表达式。
019. Bidirectional Scattering Distribution Function
【英文缩写】BSDF
【中文翻译】 双向散射分布函数
【补充说明】描述入射光线经过某个表面散射后如何在各个出射方向上分布的函数表达式。
BSDF = BRDF + BTDF。
020. Spectral Power Distribution
【英文缩写】SPD
【中文翻译】 光谱功率分布
【补充说明】光的功率:光在单位时间内穿过一个表面或一个空间区域的总能量,又称辐射通量。
SPD描述的是光的功率与光的频率的关系
021. Ambient Occlusion
【英文缩写】AO
【中文翻译】 环境光遮蔽
【补充说明】全局光照效果中 物体缝隙处的柔和阴影 。
022. Screen Space Ambient Occlusion
【英文缩写】SSAO
【中文翻译】 屏幕空间环境光遮蔽
【补充说明】 一种用于模拟环境光遮蔽的近似算法
023. Cascaded Shadow Map
【英文缩写】CSM
【中文翻译】未知( 级联阴影贴图 ?)
【补充说明】目前大型游戏引擎中采用的 主流实时阴影技术 。
024. Parallel-Split Shadow Map
【英文缩写】PSSM
【中文翻译】未知(平行切分阴影贴图?)
【补充说明】CSM的一种实现方式。
025. World Position Offset
【英文缩写】WPO
【中文翻译】世界位置偏移
026. Rendering Hardware Interface
【英文缩写】RHI
【中文翻译】渲染硬件接口
【补充说明】常见的RHI:DirectX 和 OpenGL
027. Hardware Abstraction Layer
【英文缩写】HAL
【中文翻译】硬件抽象层
【补充说明】D3D有俩种运行模式:HAL - 显卡实现,REF - CPU模拟实现。
028. Schmidt Orthogonalization
【英文缩写】未知
【中文翻译】施密特正交化
【补充说明】将三维空间内任意线性无关向量组转化为正交向量组的方法。
029. BlendShape / Morph Animation
【英文缩写】未知
【中文翻译】 变形动画
【补充说明】 顶点混合动画 ,即 多个拓扑结构相同的模型之间根据时间插值产生的动画。
030. Render to Texture
【英文缩写】RTT
【中文翻译】渲染到纹理
【补充说明】 将纹理设置为渲染目标 ,再执行渲染操作,将图元渲染到纹理上。
031. Level of Detail
【英文缩写】LOD
【中文翻译】 多细节层次
【补充说明】大型3D游戏用于 保证游戏帧率的一种优化方式。
032. Unordered Access View
【英文缩写】UAV
【中文翻译】未知(无序访问视图?)
【补充说明】DirectX11提供的一种用于多线程访问显卡资源的机制。
【相关资料】 ID3D11Device::CreateUnorderedAccessView method
033. Displacement Map
【英文缩写】DMap / DMAP
【中文翻译】 置换贴图
【补充说明】用于表示材质表面 沿法线方向高度细节的纹理贴图
034. Pass
【英文缩写】无
【中文翻译】未知(批次?/ 图层?)
【补充说明】指代输入数据(顶点、纹理、常量)经过GPU流水线(VertexShader、PixelShader)的处理后,输出到缓冲(BackBuffer / DepthBuffer / StencilBuffer)中的过程。
035. Multiple Render Target
【英文缩写】MRT
【中文翻译】 多渲染目标
【补充说明】 允许像素着色器将计算结果输出到多个不同的缓冲 ,PC平台中使用 Deffered Rendering 所必须的一种硬件支持。
036. Occlusion Culling
【英文缩写】OC
【中文翻译】 遮挡剔除
【补充说明】通过剔除视锥体内被遮挡的模型网格,达到降低GPU负载的目的。
037. Liner Blending Skinning
【英文缩写】LBS
【中文翻译】 线性混合蒙皮算法
038. Dual Quaternion SKinning
【英文缩写】DQS
【中文翻译】对偶四元数蒙皮算法
039. Depth of Field
【英文缩写】DOF / DoF
【中文翻译】景深
040. Circle of Confusion
【英文缩写】COC / CoC
【中文翻译】 散光圈 / 弥散圈
【补充说明】在透镜系统中,处于聚焦范围外的物体上的像素点成像会变成一个模糊圈,这是一个非线性映射过程。
041. Digital Content Creation Tools
【英文缩写】DCC Tools
【中文翻译】数字内容创作工具
【补充说明】美术创建模型、纹理等资源使用的工具软件,如:3ds Max、Maya、Photoshop等。
042. Signed Distance Field
【英文缩写】SDF
【中文翻译】有向距离场
【补充说明】到物体(2D或3D的多边形网格)表面最近距离的采样纹理或网格。常使用负值表示物体内部到表面的距离,使用正值表示物体外部到表面的距离。
SDF常见的应用领域:布料动画碰撞检测、多物体动力学计算、字体渲染等。
043. Screen Space Reflection
【英文缩写】SSR
【中文翻译】 屏幕空间反射
【补充说明】实时渲染中用于模拟“ 光滑物体表面反射场景对象 ”的一种 后处理技术
044. Subsurface Scattering
【英文缩写】SSS / 3S
【中文翻译】 次表面散射
【补充说明】光线在材质内部不断折射而形成的视觉效果,常见于玉石、牛奶、人类皮肤等材质中。
045. Separable Subsurface Scattering
【英文缩写】SSSS / 4S
【中文翻译】 可分离次表面散射
【补充说明】 模拟次表面散射效果的一种方式
046. Screen Space Subsurface Scattering
【英文缩写】SSSSS / 5S
【中文翻译】屏幕空间次表面散射
【补充说明】模拟次表面散射效果的一种 后处理技术
以上是关于游戏图形学入门知识整理的主要内容,如果未能解决你的问题,请参考以下文章