GAMES104-渲染中光和材质的数学魔法
绘制的核心是什么?
光:光子、反射反弹
材质:光和物质怎么反应
渲染:Shader 如何去做一些复杂的计算
渲染宗师,James Kajiya
1986年,提出了渲染方程 BRDF 双向反射方程
观察角度:模拟人眼
观察点:是否自发光?其他的光反射出的效果是什么?
真实世界的光照非常复杂
直射光、阴影、反射光、折射
是否可见,阴影效果,非常难,如果做不好不能体现层级
复杂的光源:直射光、电光源、面光
最初简单的光照:
主光源:Main Light,均匀的环境光
环境光:Ambient Light,使用一个混合参数代替
环境反射:环境贴图,根据眼睛看的角度和法向做贴图采样
Blinn-Phong Materials
环境光+漫反射+高光 = 材质模型(光可叠加原理)
优点:简单
缺点:
1.能量不保守,光线追踪会反复叠加
2.不够真实,看什么都很塑料
Shadow
场景中每个点对于光是否可见
ShadowMap 原理:
从光的视角渲染一张图,深度图,表示到光的距离
每一个点反向和光源做距离,如果大于最靠近光的遮挡物的距离,就代表是光源
优点:简单
缺点:采样率不一样,自遮挡问题
3A的光照:
预计算(空间换时间)
全局光照 Global IIIumination
模拟室内效果,体现真实感的刻画
可以预计算全局光照,球面模拟
傅里叶变换
可以用少量参数大概表示图片是什么样子的
替换土方法:加权平均
卷积:投影到屏幕空间的几个参数
Spherical Harmonics 球面投影技术
LightMap 光照贴图 模拟 GI
把整个场景的光照烘培到一张贴图
需要先对环境进行几何简化
优点:
1.Runtime 效率很高
2.烘培可以得到很细致的效果
缺点:
1.预计算时间很长
2.只能处理静态物体和静态光
3.占用存储空间(几十M-几百M)
Light Probe+Refection Probe 模拟 GI
Light Probe 光照探针(空间体素化)
对每个 Probe 采样光场,可以理解为对周围拍六张照片拼成一个图
场景中放很多很多,精度不高
对于游戏的每个元素,找到最近的几个探针,做差值
如何摆这些 Probe ?太麻烦了,改了关卡之后就变了
(现在游戏都是自动化生产)
Refection Probe 反射探针
放的不多,但是精度很高
优点:
1.效率也不错
2.可以支持静态和动态物体
缺点:
1.效果不如光照贴图
材质
Physical-Based Material 基于物理的材质
中心思想:一个表面就是以无数反射组成的,法向分散的随机度 (roughness)
比如,金属表面:表面光滑,反射基本上一个方向
GGK
Frensnel 菲涅尔
眼睛视线靠近表面切线方向,反射系数会急剧增加,会造成反射效果
Physical Measured Material
Disney Principled BRDF
1.每个参数要复合设计者的直觉
2.尽可能少的参数
3.所有参数的范围尽可能是0-1
4.如果超过了0-1,必须要有意义
5.随便调参数,不会产生很诡异的效果
常用 PBR 模型
1.PBR Specular Glossiness ,SG 模型
几乎没有什么参数,用图表达
Diffuse+Specular(菲涅尔参数)+Glossiness(粗糙光滑)
缺点:SG 模型对图的参数要求比较高,容易出错,可以再封装一层
2.RBR Metallic Roughness, MR 模型
BaseColor+Roughness+Metallic
缺点:非金属和金属过度会产生小小白边
Image-Based Lighting,IBL
核心思想:对真实环境光照做预处理,快速把环境光照卷积运算出来
LUT:Look up table
Shadow 阴影
解决方案:Cascade Shadow
因为 ShadowMap 精度不够,把 Shader 分成几层
10米的高精度
100米的一般精度
2公里的垃圾精度
保证近处看的清晰,近处看的稀疏(符合人眼)
问题:
不同的层级之间做差值,否则会有撕裂感
Hard Shadow & Soft Shadow 方案
PCF、PCSS
Variance Soft Shdow Map,效率高
技术总结:
Lightmap + LightProbe
PBR + IBL
Cascade shadow + VSSM
新技术:
实时光追,Real-Time Ray-Tracing
Real-Time Global IIIumination
Screen-space GI
SDF Base GI
Voxel-Based GI(SVOGI/VXGI)
RSM/RTX GI
皮肤材质、毛发渲染
Virtual Shadow Map
大量 Shader 管理
Shader 变体,各种宏定义分出各种条件,最后会编译很多分支的 Shader
跨平台编译
vulkan、metal、opengl、dx11,12
GAMES104-渲染中光和材质的数学魔法相关推荐
- 【Games104】 渲染中光和材质的数学魔法
一.渲染方程 在games101课程中我们了解到,所有的渲染都可以根据一个渲染方程来得到.在某一点x,他在方向的出射值(output radiance)等于他本身在这一点这一方向的辐射值(emitte ...
- 渲染中的光和材质的数学魔法
MainLight:Dominant Light 间接光(Ambient).GI环境光近视: AmibentLight:Low-frequency of irradiance sphere distr ...
- blender关于怎么导出上完色的FBX格式模型、以及导出后再导入,材质预览和渲染模式下材质透明度混乱的解决办法。
1,怎么导出. 选中模型 在做完模型后,像我这种开了一堆集合的,先把要导出的显示出来,并且框选选中出自己需要导出的部分. 导出设置 这里如果要导出材质,就得选复制. 之后就会导出一个fbx模型,以及一 ...
- 【Unity3D】使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 场景中添加 FBX 模型 | 3D 物体渲染 | 3D 物体材质设置 )
文章目录 一.向 Unity 中添加 FBX 模型 二.向 Scene 场景中添加 FBX 模型 三.3D 物体渲染 四.3D 物体材质设置 一.向 Unity 中添加 FBX 模型 Unity 中使 ...
- Unity场景渲染之自发光材质
用自发光材质照明场景效果如下,Lighting面板如下设置 创建自发光材质球参数设置如下:
- Unity灯光渲染之自发光材质
在unity里面有一种材质,勾选上Emission,可以让物体自身发光.可以通过这种方式来给场景打灯光. HDR模式可以让同一种颜色更加鲜艳明亮 通过一个小场景来看一下自发光材质烘焙的场景,创建两个P ...
- C4D渲染插件阿诺德材质预设 Arnold Shader Suite for C4D v3
适用于C4D v3的Arnold着色器套件 大小解压后:4G 信息: 325专业阿诺德材料 10种材料类别:木材,金属,塑料,玻璃,石头,混凝土,织物,技术,日常,先进. –4k和6k高质量无缝纹理. ...
- MAYA渲染 mantel ray材质球 mia_material_x
<1>位置-mentel ray材质编辑器--materials下的mia_material_x <2><(1)diffuse漫反射 (2)colour颜色 (3)wei ...
- 虚幻4渲染编程(材质进阶篇)【第一卷:影视剧各种衣料--上】
我的专栏目录: 小IVan:专题概述及目录 专题概述: 最近古墓丽影新作看的人心里直痒痒,用最新的RTX技术,让整个游戏画面又提升了一个档次.但是里面的材质衣料都是欧美的东西,所以我打算在游戏里自己实 ...
最新文章
- 多元有序logistic回归_医学统计与R语言:多分类logistic回归HosmerLemeshow拟合优度检验...
- 触发器 :new和 :old的使用
- 【知识星球】几个人像分割数据集简介和下载
- 什么是爱?[转载朋友发给我的信息]
- Qt Creator运行自动测试
- Flutter Mac下环境配置
- 商城报表系统html5,关于html5:推荐这几款主流报表产品
- OJ1057: 素数判定(C语言经典列题,判断变量的应用)
- JAVA链表中迭代器的实现
- (转)软件工程 英文缩写
- PCIe简介及引脚定义
- 【QT小记】使用QPainter绘制各种基本图形
- 机电传动控制第二周作业
- C#控制台实现计算器功能
- Android启动过程研究(二:AIL描述的init.rc)
- [技术评论]龙芯电脑
- 金融数据api接口记录(二)
- webrtc 支持h264 思路
- Latex里一些特殊的数学符号
- 内核/逻辑处理器/线程/多线程/多CPU/多核CPU