当前位置: 首页 > news >正文

PBR概念及PBR核心理论和渲染原理

PBR经不太长时间的发展,技术上和渲染的效果突飞猛进,是计算机图形学的下一代渲染技术。它在实时渲染和离线渲染领域都有着非常广泛且深入的应用。2012年可以称之为游戏行业PBR元年,这一年迪士尼动画工作室对基于物理的渲染进行了系统研究,并开发出了迪士尼BRDF,用于电影《无敌破坏王》,并且在年SIGGPRAPH2015上提出修正后的的BSDF适合离线渲染。

  基于物理的渲染,其实早在20世纪就已经在图形学业界有了一些讨论,迪士尼动画工作室在SIGGRAPH 2012上著名的talk《Physically-based shading at Disney》中提出了迪士尼原则的BRDF(Disney Principled BRDF),由于其高度的通用性,将材质复杂的物理属性,用非常直观的少量变量表达了出来(如金属度metallic和粗糙度roughness),在电影业界和游戏业界引起了不小的轰动。从此,基于物理的渲染正式进入大众的视野,也奠定了后续游戏行业和电影行业PBR的方向和标准.

在2012年受到Disney的启发后,以下是主流游戏引擎从传统渲染转移到基于物理的渲染时间节点:
【SIGGRAPH 2013】 UE4 :《Real shading in unreal engine 4》
【SIGGRAPH 2014】 Frostbite(寒霜): 《Moving Frostbite to PBR》
【GDC 2014】 Unity:《Physically Based Shading in Unity》
【 2014】 CE3.6:《Physically Based Shading in Cry Engine》
现在电影和游戏,使用PBR技术渲染的真人电影,拟真电影,以及各类游戏数量越来越多,《战斗天使》《流浪地球》《驯龙高手3》等。实时游戏。PBR的身影流传于PC游戏,在线游戏,移动游戏,主机游戏等游戏细分领域,我们做游戏的人大多体验过次世代效果的魅力。主机上最早使用PBR的是《教团1886 》2015年发布,神海4 2016年发布,国内端游《逆水寒》 移动游戏《完美世界手游》《绝地求生·刺激战场》《楚留香》。

1.回顾渲染光照模型发展

      在引入物理真实渲染之前,大部分渲染器使用的是传统的光照模型,比如:Lambert(1760),Phong(1973),Blinn-phong。我们先来回顾下传统的光照模型.

                            公式:     Lambert   diffuse = I*(L*N);                   hLambert = difLight * 0.5 + 0.5;

diffuse:反射光线的的光强;
I:入射光线的光强,方向如上图所示;
cosθ:入射光线和该顶点法线的余弦,如上图所示;cosθ = LN;
所以,最后的数学表达式为:diffuse = I
(L*N);
光源照射到物体表面后,向四面八方反射,产生的漫反射效果。这是一种理想的漫反射光照模型。如图:这个是顶点函数处理后的该光照模型,因此看起来像素不够平滑。 Lambert-它不包括任何任何镜面属性,对粗糙物体来说,这项属性是非常有用的,它不会反射出周围的环境。Lambert材质可以是透明的,在光线追踪渲染中发生折射,但是如 果没有镜面属性,该类型就不会发生折射。平坦的磨光效果可以用于砖或混凝土表面。它多用于不光滑的表面,是一种自然材质,常用来表现自然界的物体材质,如:木头、岩石等。需要更多3D建模资料点击👉🏼加入👈🏼 获取3D游戏建模福利
hLambert = difLight * 0.5 + 0.5;
Half Lambert光照模型是Valve公司在制作”半条命“游戏时发明的,用来给在比较暗的区域显示物体。总体来说,该光照模型提高了物体表面的漫反射光,既保证了兰伯特模型计算出来的光照结果大于0,又整体提升了亮度,使非直接受光面不是单纯的置为黑色。这是一个在图形学领域经常有的变换,区间转化,从(-1,1)转化到(0,1),如果不考虑无意义的负值,也可以说成从(0,1)转化到了(0.5,1)。方法很简单,乘以0.5再加上0.5。这样,原本亮度为1的地方,乘以0.5变成了0.5,加上0.5就又成了1,而原本光照强度为0的地方,就变成了0.5,原本为负数的地方,也能保证为大于0了。

     Normal的制作流程跟现在的做法差不多。从Diffuse上面来看,不仅画了颜色,还画了明暗,甚至呢,画了质感在上面。Specular呢,直接是表达了物体的高光颜色、高光聚散、及物体的高光强度,比如剑。

      先说说Phong光照模型,它是真实图形学中提出的第一个有影响的光照明模型,该模型只考虑物体对直接光照的反射作用,认为环境光是常量,没有考虑物体之间相互的反射光,物体间的反射光只用环境光表示。Phong光照模型属于简单光照模型。

相关文章:

  • 5.5如何去除有序数组的重复元素
  • PBR标准化工作流程
  • Vue学习第17天——netTick()的原理及使用
  • 英语语法精讲合集
  • 如何用数据采集网关快速采集工业现场数据,怎么搭建MQTT服务器?
  • Vue中的样式绑定
  • 大学网课答案公众号题库搭建
  • torch.utils.data
  • torch.torchvision
  • Git GitHub VSCode 简单使用
  • 小程序开发技术框架选型
  • 大学生怎么制作查题搜题公众号?
  • Spring源码------IOC容器初始化过程
  • SpringBoot+Vue+Element-UI实现家具商城系统
  • Proxy-Reflect
  • Google 是如何开发 Web 框架的
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • C语言笔记(第一章:C语言编程)
  • IDEA常用插件整理
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • win10下安装mysql5.7
  • 从PHP迁移至Golang - 基础篇
  • 大主子表关联的性能优化方法
  • 简单基于spring的redis配置(单机和集群模式)
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 聊聊directory traversal attack
  • 盘点那些不知名却常用的 Git 操作
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端技术周刊 2019-01-14:客户端存储
  • 悄悄地说一个bug
  • 算法-插入排序
  • 线性表及其算法(java实现)
  • 在Unity中实现一个简单的消息管理器
  • 栈实现走出迷宫(C++)
  • 正则表达式小结
  • 白色的风信子
  • 7行Python代码的人脸识别
  • FaaS 的简单实践
  • ​520就是要宠粉,你的心头书我买单
  • ![CDATA[ ]] 是什么东东
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • %@ page import=%的用法
  • (1)(1.9) MSP (version 4.2)
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (第27天)Oracle 数据泵转换分区表
  • (二)Eureka服务搭建,服务注册,服务发现
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十六)串口UART
  • (原)本想说脏话,奈何已放下
  • (转)shell调试方法
  • (转)Unity3DUnity3D在android下调试