Unity中Shader的PBR的基础知识与理论

这篇具有很好参考价值的文章主要介绍了Unity中Shader的PBR的基础知识与理论。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

Unity中Shader的PBR的基础知识与理论


一、什么是PBR

  • PBR(Physically Based Rendering),中文译为基于物理的渲染

  • PBR是一种渲染方式,是使用基于物理原理和微微、平面理论的光照模型,以及使用从现实中测量的表面参数来准确表示真实世界材质的渲染理念

  • PBR是一系列技术的集合,包含GI、PBS等。

PBS 是 PBR 的核心


二、什么是PBS

  • PBS(Physically Based Shadering),中文译为基于物理的着色。

  • PBS是为了对光和材质之间进行更加真实的建模,实质上讲基于物理的渲染本质就是PBS

  • Unity中的PBS分为 Standard 和 Standard(Specular Setup)

unity pbr,Unity,unity,游戏引擎

三、PBS的核心理论

1、物质的光学特性(Substance Optical Properties)

现实世界中的物质根据导电性可分为三大类:绝缘体、半导体、导体
渲染领域中大多分为两大类:导体(金属)、绝缘体(非金属)

unity pbr,Unity,unity,游戏引擎

金属(导体)特性:

  • 金属具有很高的反射率(>=0.5)

  • 金属会立即吸收任何折射光,因此金属不会出现 任何 次表面散射 和 透明效果

  • 金属的所有可见颜色都来自反射

  • 不同金属反射的光是不一样的,而非金属反射都光都一样

unity pbr,Unity,unity,游戏引擎

非金属(绝缘体)特性:

  • 非金属具有很低的反射率(<=0.06)
  • 非金属会产生高光反射与漫反射现象
  • 非金属的高光反射为 单色 / 灰色

unity pbr,Unity,unity,游戏引擎

2、微平面理论(Microfacet Theory)

unity pbr,Unity,unity,游戏引擎
现实世界的表面大多都不是光学光滑的,这种微观几何上的变化会导致每个表面点对光由不同的反射和折射。

所以基于物理渲染的PBS技术都是基于微平面理论的,它假想任何平面都是由微平面组成的,根据这些微平面粗糙程度的不同,采用粗糙度贴图或者高光度贴图来进行表示

unity pbr,Unity,unity,游戏引擎

  • 一个平面越是粗糙,这个平面上的微平面排列就越是混乱

unity pbr,Unity,unity,游戏引擎

  • 一个平面越是平滑,这个平面上的微平面排列就越是整齐

unity pbr,Unity,unity,游戏引擎

3、能量守恒(Energy Conservation)

  • 出射光线的能量永远不能超过入射光线的能量(自发光体除外)

  • 随着粗糙度的上升,镜面反射区域的面积会增加,基于能量守恒,故镜面反射的亮度则会降低

unity pbr,Unity,unity,游戏引擎

4、菲涅尔反射(Fresnel Reflection)

  • 菲涅尔效应是一种表示看到光线的反射率与视角相关的现象,也就是光源入射方向与平面法线方向夹角的对应关系。

  • 夹角越大,反射越大,亮度也就越大,反之夹角越小,反射就越小,亮度也就越小

而这效应中的反射率就被称为菲涅尔反射

unity pbr,Unity,unity,游戏引擎

5、线性空间光照(Linear Space Lighting)

  • 为了保证光照渲染的正确性,所以最好是在线性空间中进行操作与计算,这样才能尽最大的还原现实世界中光与物质的交互

unity pbr,Unity,unity,游戏引擎文章来源地址https://www.toymoban.com/news/detail-858579.html

到了这里,关于Unity中Shader的PBR的基础知识与理论的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Unity | Shader基础知识(第一集:unity中最简单的shader)

    Unity | Shader基础知识(第一集:unity中最简单的shader)

    目录 一、unity的shader 二、创建一个shader(在创建时,选前三种都可以) 三、内容解读 1.shader一直都在 2.我们写shader在写什么 四、没有被干预的shader(最简单的shader) 相关阅读 编写着色器概述 - Unity 手册 一、unity的shader unity写的shader并不是真正意义上的shader。 官方解释:

    2024年02月04日
    浏览(7)
  • Unity | Shader基础知识(第十集:shader常用外部资产单词速成)

    Unity | Shader基础知识(第十集:shader常用外部资产单词速成)

    目录 一、外部资产简介 二、常用的外部资产单词 三、常用的外部资产单词和引入内部 四、图片资产外部调整的具体讲解 1.Tiling,中文:铺地砖 2.Offset,中文:偏移 五、作者的话 一、外部资产简介 在第六集中,我们加入过外部颜色资源。 Unity | Shader基础知识(第六集:语法

    2024年04月13日
    浏览(8)
  • Unity | Shader基础知识(第十一集:什么是Normal Map法线贴图)

    Unity | Shader基础知识(第十一集:什么是Normal Map法线贴图)

    目录 前言 一、图片是否有法线贴图的视觉区别 二、有视觉区别的原因 三、法线贴图的作用 四、信息是如何存进去的 五、自己写一个Shader用到法线贴图 六、注意事项 七、作者的话 前言 本小节会给大家解释,什么是法线贴图?为什么法线贴图会产生深度?我们怎么自己写一

    2024年04月15日
    浏览(9)
  • Unity ShaderGraph没有PBR Graph的解决方法

    Unity ShaderGraph没有PBR Graph的解决方法

    1.创建光照Shader Graph 2.打开Shader Graph界面 Fragment选项卡上右击——Add Block Note——添加Alpha和Alpha Clip Threshold两个属性 可以看到此时这两个属性是灰色的,并不生效,是因为未启用 Alpha Clipping 3.Graph Inspector选项卡中,勾上 Alpha Clipping ,此时两个属性正常显示为白色 根据自身需

    2024年02月11日
    浏览(10)
  • 【Unity URP】PBR转NPR风格化场景01:描边

    【Unity URP】PBR转NPR风格化场景01:描边

    写在前面 风格化不像PBR,好像没有套路可言,,,简直是《怎么好看怎么来》的最大化实践了!感觉出的PBR+NPR也是为了更好地利用PBR资产才诞生的这样一个渲染方案。(当然我的评价非常非常的片面,瞎说的) 偶然间看到了b站一位大佬在blender里实现的效果(原链接【blen

    2023年04月09日
    浏览(12)
  • 【Unity 手写PBR】Build-in管线:实现间接光部分

    【Unity 手写PBR】Build-in管线:实现间接光部分

    写在前面 直接光昨天已经实现了:【Unity Shader】Build-in管线实现PBR:直接光部分,今天趁热打铁,补完剩下的间接光计算。 突然法线直接光部分忽略了法线纹理应用的部分,这当然也是不可或缺的部分,之前学习入门精要的时候,就已经分别在法线空间和世界空间下实现了:

    2024年02月09日
    浏览(10)
  • 【Unity URP】手写PBR:从build-in转到URP

    【Unity URP】手写PBR:从build-in转到URP

    写在前面 后续要在URP下实现PBR+NPR的风格化渲染,所以这里要赶紧把之前手写的PBR挪到URP管线下。由于URP各个版本更新换代太快了,贴一下项目环境,给后面看到这篇文章的小伙伴提个醒,我的项目环境: URP12.1.7 Unity2021.3.8f1 整体框架几乎一样吧,目前先实现主光源的部分,

    2024年02月14日
    浏览(13)
  • 【Overload游戏引擎细节分析】PBR材质Shader---完结篇

    【Overload游戏引擎细节分析】PBR材质Shader---完结篇

    PBR基于物理的渲染可以实现更加真实的效果,其Shader值得分析一下。但PBR需要较多的基础知识,不适合不会OpenGL的朋友。 一、PBR理论 PBR指基于物理的渲染,其理论较多,需要的基础知识也较多,我在这就不再写一遍了,具体可以参看: LearnOpenGL PBR理论-英文 或者 LearnOpenGL

    2024年02月08日
    浏览(12)
  • Unity面经(自整)——Unity基础知识

    Image比RawImage更耗性能。 Image只能使用sprite属性的图片。而RawImage什么都可以使用 碰撞器是触发器的载体,而触发器是碰撞器上的一个属性。 如果IsTrigger为false,碰撞器根据物理引擎引发碰撞,产生碰撞的效果 如果IsTrigger为true,碰撞器被物理引擎忽略,没有碰撞的效果 碰撞器

    2024年04月13日
    浏览(22)
  • Unity中的热更新的基础知识,Xlua与ILRuntime基础知识

    Unity中的热更新的基础知识,Xlua与ILRuntime基础知识

    热更新是指在不需要重新编译打包游戏的情况下,在线更新游戏中的一些非核心代码和资源,比如活动运营和打补丁。热更新分为资源热更新和代码热更新两种,代码热更新实际上也是把代码当成资源的一种热更新,但通常所说的热更新一般是指代码热更新。资源热更新主要

    2023年04月09日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包