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

2023-11-22 02:20

本文主要是介绍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)

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

在这里插入图片描述

这篇关于Unity中Shader的PBR的基础知识与理论的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/406774

相关文章

linux-基础知识3

打包和压缩 zip 安装zip软件包 yum -y install zip unzip 压缩打包命令: zip -q -r -d -u 压缩包文件名 目录和文件名列表 -q:不显示命令执行过程-r:递归处理,打包各级子目录和文件-u:把文件增加/替换到压缩包中-d:从压缩包中删除指定的文件 解压:unzip 压缩包名 打包文件 把压缩包从服务器下载到本地 把压缩包上传到服务器(zip

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

计组基础知识

操作系统的特征 并发共享虚拟异步 操作系统的功能 1、资源分配,资源回收硬件资源 CPU、内存、硬盘、I/O设备。2、为应⽤程序提供服务操作系统将硬件资源的操作封装起来,提供相对统⼀的接⼝(系统调⽤)供开发者调⽤。3、管理应⽤程序即控制进程的⽣命周期:进程开始时的环境配置和资源分配、进程结束后的资源回收、进程调度等。4、操作系统内核的功能(1)进程调度能⼒: 管理进程、线

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

go基础知识归纳总结

无缓冲的 channel 和有缓冲的 channel 的区别? 在 Go 语言中,channel 是用来在 goroutines 之间传递数据的主要机制。它们有两种类型:无缓冲的 channel 和有缓冲的 channel。 无缓冲的 channel 行为:无缓冲的 channel 是一种同步的通信方式,发送和接收必须同时发生。如果一个 goroutine 试图通过无缓冲 channel

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

关于回调函数和钩子函数基础知识的整理

回调函数:Callback Function 什么是回调函数? 首先做一个形象的比喻:   你有一个任务,但是有一部分你不会做,或者说不愿做,所以我来帮你做这部分,你做你其它的任务工作或者等着我的消息,但是当我完成的时候我要通知你我做好了,你可以用了,我怎么通知你呢?你给我一部手机,让我做完后给你打电话,我就打给你了,你拿到我的成果加到你的工作中,继续完成其它的工作.这就叫回叫,手机

Unity Post Process Unity后处理学习日志

Unity Post Process Unity后处理学习日志 在现代游戏开发中,后处理(Post Processing)技术已经成为提升游戏画面质量的关键工具。Unity的后处理栈(Post Processing Stack)是一个强大的插件,它允许开发者为游戏场景添加各种视觉效果,如景深、色彩校正、辉光、模糊等。这些效果不仅能够增强游戏的视觉吸引力,还能帮助传达特定的情感和氛围。 文档

有关机械硬盘的基础知识

1,机械硬盘的品牌   目前市场中常见的笔记本电脑的机械硬盘品牌主要有希捷、西部数据、三星等。   2,机械硬盘的容量   硬盘容量,即硬盘所能存储的最大数据量。虽然笔记本电脑硬盘的容量会因单位密度的提升而增加,不过和台式电脑的大容量比起来,笔记本电脑硬盘的容量仍然落后许多。笔记本电脑的硬盘除了对磁盘有体积较小和数量较少的要求之外,对功耗、耐用程度、抗震性及成本等的考虑,也让笔记

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工