首页 > 其他分享 >PBR流程的基本原理是什么?

PBR流程的基本原理是什么?

时间:2023-05-10 12:13:53浏览次数:42  
标签:贴图 高光 PBR 基本原理 流程 材质 物理

 

Hello,大家好,今天给大家带来PBR流程的基本原理与历史发展,我是Secohy。

1、什么是PBR?

一、基于物理的材质(Material)

二、基于物理的光照(Lighting)

三、基于物理适配的摄像机(Camera)

以上三个部分都去参照物理理论去做引擎设计,理论上就能得到和真实摄像机基本相同的画面。例如基于物理的摄像机通过调整光圈、快门速度等改变曝光度,灯光采用物理测量单位进行计量,材质使用基于物理测量值的光照模型进行计算。所有的这一切是一个系统,是相辅相成的,今天主要讨论基于物理的材质与贴图,物理光照和物理相机暂时不作过多讨论。

说完PBR的范畴,我们来聊聊PBR材质,也就是我们平常聊天时说PBR的含义,PBR指一整套基于物理参数的美术流程和渲染流程。美术流程主要是贴图制作上的,一般与PBR流程进行比较的是手绘流程。手绘流程是另一种3D美术制作流程,只使用一张diffuse漫反射贴图来描述模型外观,这就导致阴影和高光信息必须是画在diffuse上的。

也就是说,当场景中的光相对于模型的方向发生改变,或者摄像机位置发生改变,高光和阴影并不会发生改变,并且由于没有高光方面的参数输入,所以材质没有办法构建合理的反射,而金属这些东西如果没有反射,效果就会大打折扣。

在PBR流程成熟之前,手绘流程引入了一些技术,例如通过创建高低模然后通过烘焙输出一张Normal法线贴图,带来模型结构上的凸出和凹陷的阴影,这就是我们所说的次时代游戏美术流程。再比如通过增加一张Specular高光贴图,控制高光颜色和高光强度,带来动态的,可变颜色的高光,手绘流程在过去的端游以及所有的手游上比较常见。例如魔兽世界的模型就只使用diffuse和Specular进行渲染,模型的高光位置可以改变但是阴影位置是不会变化的。

万智牌作为一款诞生于1993年老而弥坚的卡牌游戏,它数年来的游戏宣传动画无疑成了一部CG发展史的缩影,2012年后,我们可以明显看到技术进步和流程规范给这片奇幻大陆里的各类神魔换上了远胜于前的新皮肤,尤其是去年依克黎的新CG,完全可以说是视觉享受了。

而使用Substance Painter等软件制作的PBR贴图,一般包含Diffuse漫反射贴图、Normal法线贴图、Metallic金属度贴图、Smoothness光滑度贴图(即Glossiness光泽度贴图,Roughness粗糙度贴图的反向图)、AO(Ambient Occlusion)环境光遮蔽贴图等提供了大量物理信息,例如Normal提供小凹凸结构的信息,AO提供遮蔽阴影信息,Metallic提供材质在多大程度上贴近金属的信息,Smoothness提供了材质在多大程度上是光滑的信息等等。所有这些信息使基于物理的渲染成为可能,在Shader中我们可以根据这些信息计算出实时的阴影,实时的高光,实时的反射,实时的菲涅尔效应,可以让模型在不同的光照环境下都能得到比较合理的光照表现。今天就闲聊到这里,咱们下次见~

- End -

来源:Thepoly公众号

标签:贴图,高光,PBR,基本原理,流程,材质,物理
From: https://www.cnblogs.com/dyf214/p/17387597.html

相关文章

  • CSS学习1 认识CSS;三种CSS的编写样式;CSS注释;常见的CSS样式;元素link;CSS颜色表示方法;浏览
    1_认识CSSwhat:为网页添加样式(美化界面);一门样式表语言,不是编程语言发展历史css1(两个人合作发布)css2(w3c)css3(模块化持续发展中)总结:美化HTML,让HTML与CSS分离方式一:添加样式,例如颜色、字体,大小方式二:布局,按照某种结构显示2_三种CSS的编写样式声明:例如【color:red......
  • 如何进行MySQL源码调试(一条select语句的执行流程)
    一、背景MySQL是当今世上最受欢迎的使用最广泛的开源数据库,它的繁荣离不开它的开源特性。放在过去商业数据库的时代,大家都没有机会接触到数据库的源代码,但在如今开源数据库的时代,越来越多的人开始研究数据库的源码,并给社区贡献代码,MySQL官方每次发布新版本都要感谢一些在社区上贡......
  • 项目开发流程
    目录第一节:项目开发流程BBS-个人博客项目完整搭建项目开发流程一、项目分类二、项目开发模式分类1、瀑布开发模式2、敏捷开发模式3、项目开发流程4、BBS多人博客项目基本功能和需求5、项目程序设计第一节:项目开发流程BBS-个人博客项目完整搭建我们将会用前面所有学到的知识进......
  • BEV专栏(二)从BEVFormer看BEV流程(下篇)
    前言 书接上回,在上一篇文章中,我们介绍了BEVFormer这一先进的BEV算法。在本篇文章中,我们将深入探讨BEVFormer的实现细节,旨在帮助读者更深入地理解BEVFormer的工作原理和性能表现。本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。欢迎关注公......
  • uniclound创建新项目全流程
    1、创建xxxx-node(项目服务端+H5端),此过程中需要创建云空间。2、创建xxxx-min(小程序端)3、创建xxxx-admin(后台管理端)4、更新xxxx-node中的公共依赖与函数5、修改xxxx-node common/uni-config-center/uni-id/config.json"passwordSecret":"passwordSecret-demo","token......
  • 项目开发流程
    BBS-个人博客项目完整搭建在这一章中,我们会将前面所有学到的知识进行综合运用,从0开始完成一个django框架的web实战项目——多用户个人博客的搭建。项目开发流程在正式开发这个项目之前,首先我们必须了解一套完整的项目开发流程一、项目分类现在互联网公司需要开发的主流web......
  • 统信UOS自动化测试:安装配置appium流程
     自己安装的时候,配置路径要记得改 一、安装python1升级:sudoaptupdatesudoaptupgrade-y2安装编译依赖包:sudoaptinstallbuild-essential-ysudoaptinstalllibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline-devlibffi-dev-ysudoapt-geti......
  • UDP内核发包流程
    背景工作中遇到客户反馈,上层应用UDP固定间隔100ms发包,但本地tcpdump抓包存在波动,有的数据包之间间隔107ms甚至更多,以此重新梳理了下udp的发送流程。udp发包流程udp_sendmsgUDPcorking是一项优化技术,允许内核将多次数据累积成单个数据报发送。在用户程序中有两种方法可以启......
  • Tomcat总体架构,启动流程与处理请求流程
    系列文章目录和关于我参考书籍《Tomcat架构解析》一丶Tomcat总体架构本文沿袭《Tomcat架构解析》中启发式的方式来总结Tomcat总体架构1Server假设当前我们要编写一个web应用服务器,web应用服务器最基本的功能是接受客户端发送的请求数据并进行解析,完成相关的业务处理,然后将......
  • 8-1 OAuth2的主要角色和流程
         ......