PBR 的概念

1 光照/反射模型(Lighting/Reflection Models)

光照模型是用于确定模型表面光照的方法/算法

  • 漫反射(Diffuse)
  • 高光反射(Specular)

2 双向反射分布函数(BRDF)

BRDF是对反射模型的数学建模。

BRDF 是描述当它击中一个表面如何反射的光的数学函数。“双向”位指的是函数依赖于两个方向:

  • 光射到物体表面的方向(入射方向,ω i)
  • 观察者看到反射光的方向(反射方向,ω r)

鉴于我们对材料的感知在很大程度上取决于其反射特性,可以理解的是,已经开发了几种不同的 BRDF,在模拟不同类型的表面时具有不同的有效性和效率:

  • Lambert: 模型完美地漫射光滑表面,其中表观表面亮度仅受入射光角度的影响。观察者的视角没有影响。

  • Phong和Blinn-Phong: 通过考虑入射光的方向和观察者的方向,对光滑高亮表面上的镜面反射进行建模。

3 基于物理的渲染(PBR)

基于物理的渲染,是一组渲染技术, 包括基于物理的相机,基于物理的光照

基于物理的渲染是一种渲染方法,与传统的实时模型相比,它可以更准确地表示材料以及它们如何与光相互作用。PBR 方法的核心是材质光照的分离,可以更轻松地创建在所有照明条件下看起来都准确的逼真资源。

对于被视为基于物理的光照模型,它必须满足以下 3 个条件:

  • 基于微平面表面模型
  • 能量守恒
  • 使用基于物理的 BRDF

4 BRDF 历史

  • Lambert (1760年)
  • Smith (1967年)
  • Phong (1973年)
  • Cook-Torrance (1982年)
  • Oren Nayarh (1994年)
  • Schlick (1994年)
  • GGX (2007年)
  • 迪斯尼原则的BRDF (Disney principled BRDF, 2012年)
    • 直观的参数,而不是物理化的参数
    • 可供调整的参数尽量少
    • 参数取值范围最好能归一化
    • 如果有意义,应该允许参数值超过1
    • 所有参数的结合,应该保证效果是稳定的
  • BxDF(2019年)
    • PBR Diffuse for GGX + Smith (2017)
    • MultiScattering Diffuse (2018)
    • Layers Material(分层材质)
    • Mixed Material(混合材质)
    • Mixed BxDF(混合BxDF)
    • Advanced Rendering(进阶渲染)

5 PBR在游戏引擎时间点

  • Disney,《Physically Based Shading at Disney》,Brent Burley. 2012.

  • Unreal Engine 4: 《Real Shading in Unreal Engine 4》, SIGGRAPH 2013

  • Unity 5: 《Physically Based Shading in Unity》, GDC 2014

  • Frostbite (寒霜): 《Moving Frostbite to PBR》, SIGGRAPH 2014

  • Cry Engine 3.6: 《Physically Based Shading in Cry Engine》, 2015

References

[1] PBR Theory
[2] 由浅入深学习PBR的原理和实现
[3] Filament
[4] Physically based shading references, at the end of 2019

004-PBR历史和概念相关推荐

  1. PBR材质基础概念,限制及未来发展

    最近几年图形学社区对PBR的关注非常高,也许是由于Disney以及一些游戏引擎大厂的助推,也许是因为它可以被轻松集成进实时渲染的游戏引擎当中,也许是因为许多人发现现在只需要调几个参数就能实现具有非常精 ...

  2. 人工智能历史、概念、算法与技术 概括与综述(一)

    经过前五章的阅读,让我脑海中从整体上建立了三个世界的基本底层架构,之后逐渐了解到数据的概念,包括定义.形式和度量等做进一步系统和深入的探讨,还讨论关于数据的几个基本科学法则并讨论这些法则在数据科学技术 ...

  3. 翻译:RxSwift的历史以及概念详细解析

    说明 RxSwift到底是什么?这是一个很好的定义: RxSwift是一个库,用于通过使用可观察的序列和功能样式运算符来组成基于异步和基于事件的代码,从而允许通过调度程序进行参数化执行. 听起来复杂吗 ...

  4. UE4 pbr概念理解

    概念 什么是PBR PBR(Physically-Based-Rendering)基于物理的渲染,有时也叫(Physically-Based-Shading)PBS. 是一套渲染解决方案,包括基于物理 ...

  5. More DETAILS! PBR的下一个发展在哪里?

    最近几年图形学社区对PBR的关注非常高,也许是由于Disney以及一些游戏引擎大厂的助推,也许是因为它可以被轻松集成进实时渲染的游戏引擎当中,也许是因为许多人发现现在只需要调几个参数就能实现具有非常精 ...

  6. Photoshop各历史版本回顾以及系统要求

    hotoShop,全球知名的图像处理软件,你知道PS的发展史吗?跟随小编一起来了解一下吧! LOGO图标变化 从像素风到拟物再到我们现在最熟悉的扁平化,完全诠释了这些年来的视觉风格变化. 不同版本介绍 ...

  7. PBR+unity 基础知识

    原文地址:https://zhuanlan.zhihu.com/p/33464301?utm_medium=social&utm_source=qq 猴子都能看懂的PBR(才怪) 也不知道怎么 ...

  8. 猴子都能看懂的PBR(才怪)

    原文地址:https://zhuanlan.zhihu.com/p/33464301?utm_medium=social&utm_source=qq 猴子都能看懂的PBR(才怪) 也不知道怎么 ...

  9. 国内研究者在关注着大家的哪些心理变化?横断历史研究介绍与趋势分析

    Hello,大家好 这里是壹脑云科研圈,我是莹~ 在之前的一篇文献介绍<1993至2016年医学生心理健康变迁的横断历史研究>中,我们简要介绍了一下横断历史研究的方法. 文献|劝人学医,& ...

最新文章

  1. mybatis基于注解的入门案例
  2. LBaaS 实现机制 - 每天5分钟玩转 OpenStack(125)
  3. GDCM:gdcm::Overlay的测试程序
  4. Hadoop赠品–综述
  5. 轮番滑动PHP,touch事件之滑动判断(左右上下方向)
  6. c语言线性表库函数大全,数据结构(C语言版)-线性表习题详解
  7. sublime配置python2和3_请教各位,关于sublime text3 配置python环境的两个小问题。
  8. 中原消费金融借了就借不了吗?
  9. websocket连接相关的几个问题
  10. DropdownList获取ID方法
  11. 大学物理2-2笔记(5)麦克斯韦电磁场理论
  12. _beginthread 和 CreateThread 区别
  13. 模型推理速度与硬件算力
  14. JavaList集合根据ParentId递归【无限套娃】
  15. H5+CSS+JavaScript入门学习
  16. MPU-6050陀螺仪灵敏度LSBs/°/sec含义并与GY-85对比
  17. 继续改进版臭事百科爬虫20160921
  18. BIOS密码清除方法--unlock6的使用.
  19. 洛谷P1088.火星人【模拟/搜索/康托展开】
  20. 非递归遍历二叉树(后序遍历)

热门文章

  1. 基于springBoot的记账系统
  2. 【日常计算机问题记录】装系统时烧录的u盘如何恢复正常
  3. 公务员想辞职转行做程序员?
  4. heritrix mysql_Heritrix使用小结
  5. 最全BAT算法面试130题:阿里、百度、腾讯、京东、美团、今日头条
  6. source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符) 问题解决
  7. 关于带参数模糊查询的方法 like --转载自 寂寞沙洲(博客园)
  8. 超前进位加法器原理与递推式超详细推导+verilog实现与测试
  9. python使用geopy包提取城市经纬度及计算距离矩阵
  10. unity 游戏体围绕x,y,z轴进行转动