图形学 – 难记词汇及笔记[一]

基于 PBR 框架的角色风格化渲染——油画风 https://zhuanlan.zhihu.com/p/142145970
球谐光照 / SH 光照(spherical harmonic lighting)解析 https://gameinstitute.qq.com/community/detail/123183
球谐光照实际上就是将周围的环境光采样成几个系数,然后渲染的时候用这几个系数来对光照进行还原,这种过程可以看做是对周围环境光的简化,从而简化计算过程。
双向反射分布函数(Bidirectional Reflectance Distribution Function, BRDF)是用来定义给定入射方向上的辐射照度如何影响给定出射方向上的辐射率。更笼统地说,它描述了入射光线经过某个表面反射后如何在各个出射方向上分布这可以是从理想镜面反射到漫反射、各向同性或者各向异性的各种反射。 https://www.zhihu.com/question/20286038/answer/779162419
光照探头的原理:在场景中这些被标记为探测器的静态探头,它们会在这些位置进行光照采集然后对相邻的几个光照探头所采集的灯光进行插值的计算。
Light Probe 的优缺点:
优点:
性能不错(对比实时阴影性能高很多),适合移动平台,VR平台。
配合烘焙的效果很好。(动态物体跟周围环境的搭配会很好)
可以可视化编辑 Light Probes 的分布,不需要代码控制。
缺点
烘焙后(Build 后)才能有效果,不能实时的改变。
只能整体进行明暗变化。
渐变着色器(Ramp Shader)
ADS 光照模型实例(GLSL实现) https://zhuanlan.zhihu.com/p/38492869
keywords:ambient diffuse specular、Phong Shading、Phong reflection model
公式概述
ADS 光照模型又称为“冯氏反射模型”(Phong reflection model),为什么叫冯氏:

裴祥风(Bùi Tường Phong音译, 1942年—1975年),美国电脑CG研究学者,于越南出生。他于1973年在尤他大学取得哲学博士学位,并发明了Phong反射模型及Phong著色法,并广为CG界采用。1975死于白血病。
ADS 光照模型公式缩写:

LightIntensity = Ambient + Diffuse + Specular;
参数说明:

Ambient 环境光
Diffuse 漫反射
Specular 全反射光 / 镜面光

粗糙表面漫射模型 Oren/Nayar model http://blog.sina.com.cn/s/blog_415a66f001018bud.html

irrdiance map 发光贴图
辐射照度(Irrdiance) 辐照度

基于物理渲染的理论基础

基于物理的渲染——理论基础


https://www.cnblogs.com/TracePlus/p/4056893.html
https://blog.csdn.net/bill2ccssddnn/article/details/51533380

实时皮肤的次表面散射(SSS
NPR 也就是非真实感渲染,它与 PBR 是相对的。
卡通渲染,素描,油画,水墨等都是属于 NPR。 https://blog.csdn.net/z18636930051/article/details/78366844

屏幕空间环境光屏蔽(Screen Space Ambient Occlusion,SSAO)一种用于在计算机图形中实时实现近似环境光屏蔽效果的渲染技术。 https://zhuanlan.zhihu.com/p/46633896

ggx 是一种微表面反射光照模型,这种光照模型材质可以更好的表现金属高光边缘的消散(拖尾)效果 https://blog.csdn.net/shenmifangke/article/details/52777003

PBR,或者用更通俗一些的称呼是指基于物理的渲染(Physically Based Rendering),它指的是一些在不同程度上都基于与现实世界的物理原理更相符的基本理论所构成的渲染技术的集合。
[PBR Theory](https://learnopengl.com/PBR/Theory)
https://learnopengl-cn.github.io/07%20PBR/01%20Theory/
https://www.cnblogs.com/timlly/p/10631718.html
https://blog.csdn.net/zhanghuanzj/article/details/104519763
https://zhuanlan.zhihu.com/p/21376124
https://zhuanlan.zhihu.com/p/58641686
https://zhuanlan.zhihu.com/p/58692781

Shader学习笔记 05 – 2d火焰
https://www.cnblogs.com/lain-vv/p/13749557.html

Shader学习笔记 02 – 水(无光照)
https://www.cnblogs.com/lain-vv/p/12930446.html

中级Shader教程00 总纲
https://blog.csdn.net/tjw02241035621611/article/details/80038608

PBR 之基于图像的光照IBL (Diffuse)
基于图像的光照(Image Based Lighting)
在开始之前,我们先来了解下什么是基于图像的光照(IBL)。一个物体,不会单独的存在一个空空的环境里面,它的周围一定有其他的物体。当光源照射到其他物体上的时候,一定也会反射,其中就有很多反射的光线会反射到该物体上去。上一篇文章中我们模拟的是直接光照。对于直接光照系统,像上面那种其他物体反射过来的光,我们一般就只是使用一个Ambient项来模拟。这种模拟方法只能够模拟单调的环境光照效果,想要更加丰富,更加精细的效果,我们就需要使用更加丰富的环境光照系统,而IBL就是实现它的一种方式。

一般来说,我们通过一张环境贴图(Environment Map)来保存一个物体周围的环境信息,然后通过某种处理,来实现丰富的环境光照效果。本文就是讲述,如何通过对环境贴图进行处理,然后实现丰富的环境光照效果。

参考引用:https://blog.csdn.net/yunman2012/article/details/94404062

RGB、HSV和HSL颜色空间
RGB 是我们接触最多的颜色空间,由三个通道表示一幅图像,分别为红色(R),绿色(G)和蓝色(B)。这三种颜色的不同组合可以形成几乎所有的其他颜色。

HSV 表达彩色图像的方式由三个部分组成:

Hue(色调、色相)
Saturation(饱和度、色彩纯净度)
Value(明度)

HLS 颜色空间
HLS 和 HSV 比较类似,这里一起介绍。HLS 也有三个分量,hue(色相)、saturation(饱和度)、lightness(亮度)。

参考引用:https://zhuanlan.zhihu.com/p/67930839

游戏开发技术杂谈2:理解插值函数 lerp
参考引用:https://blog.csdn.net/weixin_37608784/article/details/84861336

抗锯齿(英语:anti-aliasing,简称AA),也译为边缘柔化、消除混叠、抗图像折叠有损等。它是一种消除显示器输出的画面中图物边缘出现凹凸锯齿的技术,那些凹凸的锯齿通常因为高分辨率的信号以低分辨率表示或无法准确运算出3D图形坐标定位时所导致的图形混叠(aliasing)而产生的,反锯齿技术能有效地解决这些问题。它通常被用在在数字信号处理、数字摄影、电脑绘图与数码音效及电子游戏等方面,柔化被混叠的数字信号。

FXAA、SMAA、MSAA、TXAA等抗锯齿之间的区别

多重采样抗锯齿(MSAA)

多重采样抗锯齿(MultiSampling Anti-Aliasing,简称MSAA)是一种特殊的超级采样抗锯齿(SSAA)。MSAA首先来自于OpenGL。具体是MSAA只对Z缓存(Z-Buffer)和模板缓存(Stencil Buffer)中的数据进行超级采样抗锯齿的处理。可以简单理解为只对多边形的边缘进行抗锯齿处理。这样的话,相比SSAA对画面中所有数据进行处理,MSAA对资源的消耗需求大大减弱,不过在画质上可能稍有不如超级取样抗锯齿(SSAA)。

效果好,还原度很高,但是费硬件。

快速近似抗锯齿(FXAA)

快速近似抗锯齿(Fast Approximate Anti-Aliasing) 它是传统MSAA(多重采样抗锯齿)效果的一种高性能近似值。它是一种单程像素着色器,和MLAA一样运行于目标游戏渲染管线的后期处理阶段,但不像后者那样使用DirectCompute,而只是单纯的后期处理着色器,不依赖于任何GPU计算API。正因为如此,FXAA技术对显卡没有特殊要求,完全兼容NVIDIA、AMD的不同显卡(MLAA仅支持A卡)和DirectX 9.0、DirectX 10、DirectX 11。

消耗最低,低配置开这种抗锯齿不卡,实际上是一种粗糙的模糊化处理。

子像素增强抗锯齿(SMAA)

SMAA是性耗比最佳的模式,用适量的资源得到比较满意的抗锯齿效果。FXAA和SMAA一样性能损失小,效果都一般,毕竟后处理抗锯齿,清晰度上都有所损失,SMAA较FXAA清晰些。致命的弱点在于锯齿抖动方面,别看它们的效果截图看着都不错,甚至比肩MSAA,但是一旦是实际玩,也就是动态画面,锯齿抖动就非常明显时间和空间两方面交替使用抗锯齿采样格式,4xMFAA 的性能代价仅相当于 2xMSAA,但是抗锯齿效果却与 4xMSAA相当。

覆盖采样抗锯齿(CSAA)

覆盖采样抗锯齿(CoverageSampling Anti-Aliasing,简称CSAA)是nVidia在G80及其衍生产品首次推向实用化的AA技术,也是目前nVidia GeForce 8/9/G200系列独享的AA技术。CSAA就是在MSAA基础上更进一步的节省显存使用量及带宽,简单说CSAA就是将边缘多边形里需要取样的子像素坐标覆盖掉,把原像素坐标强制安置在硬件和驱动程序预先算好的坐标中。这就好比取样标准统一的MSAA,能够最高效率的执行边缘取样,效能提升非常的显著。比方说16xCSAA取样性能下降幅度仅比4xMSAA略高一点,处理效果却几乎和8xMSAA一样。8xCSAA有着4xMSAA的处理效果,性能消耗却和2xMSAA相同。

时间性抗锯齿(TXAA)

让电影画质的游戏体验达到逼真水平。TXAA 抗锯齿比 MSAA和FXAA 以及 CSAA 的画质更高,制作CG电影的电影制片厂会在抗锯齿方面花费大量的计算资源,从而可确保观众不会因不逼真的锯齿状线条而分心。如果想要让游戏接近这种级别的保真度,那么开发商需要全新的抗锯齿技术,不但要减少锯齿状的线条,而且要减少锯齿状闪烁情形,同时还不降低性能。为了便于开发商实现这种保真度的提升,英伟达设计了画质更高的抗锯齿模式,名为TXAA.该模式专为直接集成到游戏引擎中而设计。与CG电影中所采用的技术类似,TXAA集MSAA的强大功能与复杂的解析滤镜于一身,可呈现出更加平滑的图像效果,远远超越了所有同类技术。此外,TXAA还能够对帧之间的整个场景进行抖动采样,以减少闪烁情形,闪烁情形在技术上又称作时间性锯齿。目前,TXAA有两种模式:TXAA 2X和TXAA 4X。TXAA 2X可提供堪比8X MSAA的视觉保真度,然而所需性能却与2X MSAA相类似;TXAA 4X的图像保真度胜过8XMSAA,所需性能仅仅与4X MSAA相当。

可编程过滤抗锯齿(CFAA)

可编程过滤抗锯齿(Custom Filter Anti-Aliasing)技术起源于AMD-ATI的R600家庭。简单地说CFAA就是扩大取样面积的MSAA,比方说之前的MSAA是严格选取物体边缘像素进行缩放的,而CFAA则可以通过驱动和谐灵活地选择对影响锯齿效果较大的像素进行缩放,以较少的性能牺牲换取平滑效果。显卡资源占用也比较小。

多帧采样抗锯齿(MFAA)

NVIDIA(英伟达)根据MSAA改进出的一种抗锯齿技术。目前只有使用 Maxwell 架构GPU的显卡才可以使用。在 Maxwell 上,英伟达推出了用于光栅化的可编程采样位置,它们被存储在随机存取存储器 (RAM) 中。如此一来便为更灵活、更创新的全新抗锯齿技术创造了机会,这类抗锯齿技术能够独特地解决现代游戏引擎所带来的难题,例如高画质抗锯齿对性能的更高要求。只要在NVIDIA控制面板里为程序开启MFAA并在游戏中选择MSAA就可以开启。画面表现明显强于同级别的MSAA,这种全新抗锯齿技术在提升边缘画质的同时能够将性能代价降至最低。

BRDF参数

包含一个颜色参数和十个标量参数:

baseColor(基础色):表面颜色,通常由纹理贴图提供。

subsurface(次表面):使用次表面近似控制漫反射形状。

metallic(金属度):0为电介质,1为金属,这是两种不同模型之间的线性混合。金属模型没有漫反射成分,并且还具有等于基础色的着色入射镜面反射。

specular(镜面反射强度):入射镜面反射量,用于取代折射率。

specularTint(镜面反射颜色):对美术控制的让步,用于对基础色的入射镜面反射进行颜色控制。掠射镜面反射仍然是非彩色的。

roughness(粗糙度):表面粗糙度,控制漫反射和镜面反射。

anisotropic(各向异性强度):各向异性程度,用于控制镜面反射高光的纵横比。0为各向同性,1为最大各向异性。

sheen(光泽度):一种额外的掠射分量(grazing component),主要用于布料。

sheenTint(光泽颜色):对光泽度的颜色控制。

clearcoat(清漆强度):有特殊用途的第二个镜面波瓣(specular lobe)。

clearcoatGloss(清漆光泽度):控制透明涂层光泽度,0 为缎面(satin)外观,1 为光泽(gloss)外观。

参考:https://www.jianshu.com/p/ff918c66af99
参考:https://blog.csdn.net/poem_qianmo/category_8558707.html

.sheen : Float
The intensity of the sheen layer, from 0.0 to 1.0. Default is 0.0.

.sheenRoughness : Float
Roughness of the sheen layer, from 0.0 to 1.0. Default is 1.0.

.sheenRoughnessMap : Texture
The alpha channel of this texture is multiplied against .sheenRoughness, for per-pixel control over sheen roughness. Default is null.

.sheenColor : Color
The sheen tint. Default is 0xffffff, white.

.sheenColorMap : Texture
The RGB channels of this texture are multiplied against .sheenColor, for per-pixel control over sheen tint. Default is null.

attenuation 衰减
.attenuationColor : Color
The color that white light turns into due to absorption when reaching the attenuation distance. Default is white (0xffffff).

.attenuationDistance : Float
Density of the medium given as the average distance that light travels in the medium before interacting with a particle. The value is given in world space. Default is 0.

MeshPhysicalMaterial
An extension of the MeshStandardMaterial, providing more advanced physically-based rendering properties:

Clearcoat: Some materials — like car paints, carbon fiber, and wet surfaces — require a clear, reflective layer on top of another layer that may be irregular or rough. Clearcoat approximates this effect, without the need for a separate transparent surface.
Physically-based transparency: One limitation of .opacity is that highly transparent materials are less reflective. Physically-based .transmission provides a more realistic option for thin, transparent surfaces like glass.
Advanced reflectivity: More flexible reflectivity for non-metallic materials.

Clear Coat:控制透明外壳的显示程度,可以理解为外壳的厚度。
Clear Coat Roughness:顾名思义,控制外壳粗糙程度
参考:https://threejs.org/docs/#api/en/materials/MeshPhysicalMaterial
参考:https://blog.csdn.net/gzx88666/article/details/107352346

.ior : Float 折射索引值
Index-of-refraction for non-metallic materials, from 1.0 to 2.333. Default is 1.5.
可参考:https://blog.csdn.net/u011469662/article/details/105483346

.transmission : Float 透射
Degree of transmission (or optical transparency), from 0.0 to 1.0. Default is 0.0.
Thin, transparent or semitransparent, plastic or glass materials remain largely reflective even if they are fully transmissive. The transmission property can be used to model these materials.
When transmission is non-zero, opacity should be set to 0.

.transmissionMap : Texture
The red channel of this texture is multiplied against .transmission, for per-pixel control over optical transparency. Default is null.

当一束光线入射到物体表面时,由于物体表面与空气两种介质之间折射率的快速变化,光线会发生反射和折射:

反射(Reflection)。光线在两种介质交界处的直接反射即镜面反射(Specular)。金属的镜面反射颜色为三通道的彩色,而非金属的镜面反射颜色为单通道的单色。
折射(Refraction)。从表面折射入介质的光,会发生吸收(absorption)和散射(scattering),而介质的整体外观由其散射和吸收特性的组合决定,其中:
散射(Scattering)。折射率的快速变化引起散射,光的方向会改变(分裂成多个方向),但是光的总量或光谱分布不会改变。散射最终被视作的类型与观察尺度有关:
次表面散射(Subsurface Scattering)。观察像素小于散射距离,散射被视作次表面散射。
漫反射(Diffuse)。观察像素大于散射距离,散射被视作漫反射。
透射(Transmission)。入射光经过折射穿过物体后的出射现象。透射为次表面散射的特例。
吸收(Absorption)。具有复折射率的物质区域会引起吸收,具体原理是光波频率与该材质原子中的电子振动的频率相匹配。复折射率(complex number)的虚部(imaginary part)确定了光在传播时是否被吸收(转换成其他形式的能量)。发生吸收的介质的光量会随传播的距离而减小(如果吸收优先发生于某些波长,则可能也会改变光的颜色),而光的方向不会因为吸收而改变。任何颜色色调通常都是由吸收的波长相关性引起的。
可参考:https://blog.csdn.net/qq_35312463/article/details/108111816

morph target
morphTargets是啥
morph是图像变换、变形的意思。那么,一个物体的几何形态是如何表示的呢?
顶点位置。
可参考:https://segmentfault.com/a/1190000039119193

basic-pipeline-rep
应用层面处理->几何处理->光栅化
geometry-stage
几何处理:模型、视图坐标转换-》顶点确定-》投影坐标转换-》视图裁剪-》屏幕匹配
rasterizer-stage
光栅化:三角形构建-》三角形遍历-》像素(片元)确定》-》像素合并
depth-buffer
depth buffer
fragment-shading
fragment shading
view-transform
view transform
model-transform
model transform
screen mapping
screen mapping
projections
projections

引用:http://www.fragmentstorm.com/overview-of-the-graphics-pipeline

发表于: cg, TA