码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Unity中Shader的PBR的基础知识与理论


    文章目录

    • 前言
    • 一、什么是PBR
    • 二、什么是PBS
      • 在这里插入图片描述
    • 三、PBS的核心理论
      • 1、物质的光学特性(Substance Optical Properties)
      • 2、微平面理论(Microfacet Theory)
      • 3、能量守恒(Energy Conservation)
      • 4、菲涅尔反射(Fresnel Reflection)
      • 5、线性空间光照(Linear Space Lighting)


    前言

    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)

    在这里插入图片描述

    三、PBS的核心理论

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

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

    在这里插入图片描述

    金属(导体)特性:

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

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

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

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

    在这里插入图片描述

    非金属(绝缘体)特性:

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

    在这里插入图片描述

    2、微平面理论(Microfacet Theory)

    在这里插入图片描述
    现实世界的表面大多都不是光学光滑的,这种微观几何上的变化会导致每个表面点对光由不同的反射和折射。

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    3、能量守恒(Energy Conservation)

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

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

    在这里插入图片描述

    4、菲涅尔反射(Fresnel Reflection)

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

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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

  • 相关阅读:
    Qlik Sense 多表串联详解(Concatenate、NoConcatenate)
    ROS 2边学边练(31)-- 管理大工程
    分享一个你很可能不知道的Java异常实现的缺陷
    c++11 智能指针 (std::shared_ptr)(四)
    初入职场两三事【研发篇】
    【愚公系列】2022年09月 python人工智能-PyTorch环境配置及安装
    vue-引入使用main.js全局常量
    企业级自定义表单引擎解决方案(十五)--前端开源说明
    『无为则无心』Python面向对象 — 58、类方法和静态方法
    Hive大白话(●四●)
  • 原文地址:https://blog.csdn.net/qq_51603875/article/details/134535551
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号