绘制的核心是什么?
光:光子、反射反弹
材质:光和物质怎么反应
渲染: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-渲染中光和材质的数学魔法相关推荐

  1. 【Games104】 渲染中光和材质的数学魔法

    一.渲染方程 在games101课程中我们了解到,所有的渲染都可以根据一个渲染方程来得到.在某一点x,他在方向的出射值(output radiance)等于他本身在这一点这一方向的辐射值(emitte ...

  2. 渲染中的光和材质的数学魔法

    MainLight:Dominant Light 间接光(Ambient).GI环境光近视: AmibentLight:Low-frequency of irradiance sphere distr ...

  3. blender关于怎么导出上完色的FBX格式模型、以及导出后再导入,材质预览和渲染模式下材质透明度混乱的解决办法。

    1,怎么导出. 选中模型 在做完模型后,像我这种开了一堆集合的,先把要导出的显示出来,并且框选选中出自己需要导出的部分. 导出设置 这里如果要导出材质,就得选复制. 之后就会导出一个fbx模型,以及一 ...

  4. 【Unity3D】使用 FBX 格式的外部模型 ( 向 Unity 中添加 FBX 模型 | 向 Scene 场景中添加 FBX 模型 | 3D 物体渲染 | 3D 物体材质设置 )

    文章目录 一.向 Unity 中添加 FBX 模型 二.向 Scene 场景中添加 FBX 模型 三.3D 物体渲染 四.3D 物体材质设置 一.向 Unity 中添加 FBX 模型 Unity 中使 ...

  5. Unity场景渲染之自发光材质

    用自发光材质照明场景效果如下,Lighting面板如下设置 创建自发光材质球参数设置如下:

  6. Unity灯光渲染之自发光材质

    在unity里面有一种材质,勾选上Emission,可以让物体自身发光.可以通过这种方式来给场景打灯光. HDR模式可以让同一种颜色更加鲜艳明亮 通过一个小场景来看一下自发光材质烘焙的场景,创建两个P ...

  7. C4D渲染插件阿诺德材质预设 Arnold Shader Suite for C4D v3

    适用于C4D v3的Arnold着色器套件 大小解压后:4G 信息: 325专业阿诺德材料 10种材料类别:木材,金属,塑料,玻璃,石头,混凝土,织物,技术,日常,先进. –4k和6k高质量无缝纹理. ...

  8. MAYA渲染 mantel ray材质球 mia_material_x

    <1>位置-mentel ray材质编辑器--materials下的mia_material_x <2><(1)diffuse漫反射 (2)colour颜色 (3)wei ...

  9. 虚幻4渲染编程(材质进阶篇)【第一卷:影视剧各种衣料--上】

    我的专栏目录: 小IVan:专题概述及目录 专题概述: 最近古墓丽影新作看的人心里直痒痒,用最新的RTX技术,让整个游戏画面又提升了一个档次.但是里面的材质衣料都是欧美的东西,所以我打算在游戏里自己实 ...

最新文章

  1. 多元有序logistic回归_医学统计与R语言:多分类logistic回归HosmerLemeshow拟合优度检验...
  2. 触发器 :new和 :old的使用
  3. 【知识星球】几个人像分割数据集简介和下载
  4. 什么是爱?[转载朋友发给我的信息]
  5. Qt Creator运行自动测试
  6. Flutter Mac下环境配置
  7. 商城报表系统html5,关于html5:推荐这几款主流报表产品
  8. OJ1057: 素数判定(C语言经典列题,判断变量的应用)
  9. JAVA链表中迭代器的实现
  10. (转)软件工程 英文缩写
  11. PCIe简介及引脚定义
  12. 【QT小记】使用QPainter绘制各种基本图形
  13. 机电传动控制第二周作业
  14. C#控制台实现计算器功能
  15. Android启动过程研究(二:AIL描述的init.rc)
  16. [技术评论]龙芯电脑
  17. 金融数据api接口记录(二)
  18. webrtc 支持h264 思路
  19. Latex里一些特殊的数学符号
  20. 内核/逻辑处理器/线程/多线程/多CPU/多核CPU

热门文章

  1. iOS学习资料分享 -- 苹果官方iPhone应用高级开发课程(16集)
  2. 计算机网络1-计算机网络的概念、功能、分类、标准化
  3. 人员鉴定和认证的区别——内审员证书问题
  4. Java每天/每周定时执行任务
  5. 小程序行驶证百度OCR识别
  6. 消灭人狼 - 软件企业的银弹是什么
  7. QT实现屏幕亮度调节
  8. C8T6最小开发板实现流水灯
  9. 魅蓝e2 改android,魅族4月26日发布魅蓝E2究竟要删除什么?
  10. Linex Ubuntu环境下 Intel Realsense D435I 驱动+ROS驱动安装配置