光照模型-PBS在Unity中的应用
梳理Unity中PBS的使用流程:1.什么是PBS(PhysicallyBasedShader)和相对传统光照模型Lambert或Phong的优势。2.Unity中PBS的实现
一 PBS介绍
从字面的意思来看,基于物理的渲染技术(PhysicallyBasedShader)。其实可以理解为是一种光照模型,相比与Lambert和Phong,更贴合现实。消耗更高
PBS能实现更好的法线高光效果:
还有主要体现在于PBS对使用者更友好;使用一个Shader能实现各种材质效果,变换环境也不需要频繁的修改Shader参数属性,只需要修改光照环境;
二 unity对PBS的实现
Unity5开始,官方的Standard Shader就使用的PBS光照模型,一个众多属性的集合,通过设置贴图和参数,可以启用或者禁用其中的一些属性。
参考Unity官方文档 Unity - Manual: Standard Shader (unity3d.com)https://docs.unity3d.com/Manual/shader-StandardShader.html
三 Unity 中PBS 的具体使用
接下来,以此场景为例,介绍Unity中PBS的使用,以下分为两个部分:
1.具体GameObject的shder
unity提供的表格调整StandardShader的具体参数,决定了物体是什么材质(是木头还是金属?):
2.光照环境
调整了物体的材质之后,还需要和整个场景交互影响。这就是相当于物体所处的上下文:环境不同,物体呈现出的方式效果也不同,这也是贴合现实体现。
1> 天空盒(环境)&灯光 (这里只是用了平行光)
设置场景的反射源为Skybox,同时调整平行光的颜色和方向与当前天空盒子相契合
2>反射探针
一些暗处或者室内,需要用反射探针来作为反射源
3>光探针
采集光照纤细用于动态物体(eg:角色)
四 参考
Demo源于 Viking Village URP | 视频教程项目资源 | Unity Asset Store
Viking Village相关 Blog
Standard Shader的表格可以在这里找到
光照模型-PBS在Unity中的应用相关推荐
- 探究PBR的两种流程以及Unity中的PBS
原文链接 前言 通过上一篇博客PBR原理我们大概了解了PBR的一些基础理念,这篇博客就让我们来探究一下PBR的两种流程和Unity中两种PBS材质,毕竟Unity是我主要学习的引擎(希望未来有机会接触 ...
- unity入门精要之第6 章 Unity 中的基础光照---实现高光反射光照模型
Unity系列文章目录 文章目录 Unity系列文章目录 前言 参考 前言 在6.2.4 节中,我们给出了基本光照模型中高光反射部分的计算公式: 从公式可以看出,要计算高光反射需要知道4 个参数:入射 ...
- Unity Shader入门精要学习笔记 - 第6章 开始 Unity 中的基础光照
转自冯乐乐的<Unity Shader入门精要> 通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑3种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交 ...
- Unity 中的基础光照
通常来讲,我们要模拟真实的光照环境来生成一张图像,需要考虑三种物理现象. 首先,光线从光源中被发射出来. 然后,光线和场景中的一些物体相交:一些光被物体吸收了,而另一些光被散射到其他方向. 最后,摄像 ...
- Unity中的静态合批、动态合批、GPU Instance 以及SRP Batching
文章目录 Unity中的静态合批.动态合批.GPU Instance 以及SRP Batching 四种合批简介 GPU instancing static Batching Dynamic batc ...
- unity 太阳自发光_unity shader基础之——unity中实现环境光、自发光
上篇主要讲的是unity中的光照模型及其原理,还有几种光照类型(自发光.环境光.漫反射.高光反射),后面几篇文章就开始在unity中实现这几种光照类型,本篇在unity实现自发光.环境光. 一.uni ...
- unity入门精要之第6 章 Unity 中的基础光照--环境光和自发光
Unity系列文章目录 文章目录 Unity系列文章目录 前言 一.Unity 中的环境光和自发光 二.在Unity Shader 中实现漫反射光照模型 参考 前言 但这种模型有很多局限性.首先,有很 ...
- UnityShader入门精要——Unity中的渲染优化技术(三)
减少需要处理的顶点数目 1 优化几何体 尽可能减少模型中三角面片的数目,一些对于模型没有影响.或是肉眼非常难察觉到区别的顶点都要尽可能去掉. 移除不必要的硬边以及纹理衔接,避免边界平滑和纹理分离. 2 ...
- 在Unity中对森林植被进行优化
创建3D森林的时候不仅需要关注艺术技巧,更需要了解拥有什么资源以及如何进行放置.其中最重要一项需要考虑是:一个茂密森林的密度以及随之而来的性能优化. 问题 解决森林优化的方法有很多,但是关于如何创建资 ...
- 【贪玩巴斯】Unity3D初学圣经(三)—— unity中的基础概念——scene场景,component组件,assets文件夹和Material材质,Mesh Renderer与shader
[贪玩巴斯]Unity3D初学圣经 三-- unity中的基础概念--scene场景,component组件与assets文件夹和Material材质以及Mesh Renderer 和 shader ...
最新文章
- 费曼:所有科学知识都是不确定的
- 《构建高可用Linux服务器》样书
- ERROR OGG-01163 Bad column length (30) specified for column name in table TEST.demo_src, maximum all
- id3决策树 鸢尾花 python_C4.5决策树Python代码实现
- .NET 5 部署在docker上运行
- Windows 不能在 本地计算机 启动 SQL Server 服务 错误代码126
- js 获取当前元素的父元素的父元素的id
- linux IptabLex 攻击
- 同方挑战惠普 大打“惠民”牌
- 人工智能连接学派和符号学派的发展历程图
- CSS3 calc() 函数,height: calc(100% - 70px);
- Java链表与数组间的相互转换
- day10-函数基础总结
- c语言中NULL到底是什么?
- 真机实战之VLAN隔离,助力网络安全
- 新冠病毒研究进展:维生素D或许能挽救新冠患者
- Spark2.1.0 + CarbonData1.0.0集群模式部署及使用入门
- 苹果怎么把某个app隐藏_怎么给苹果手机APP加密?
- unable to read local cache ‘C:\\Users\\admin/gensim-data\\information.json‘ during fallback 解决办法
- java中excel上传_java对excel表格的上传和下载处理