Unity中URP下的SimpleLit的 Lambert漫反射计算

news2024/12/28 9:35:03

文章目录

  • 前言
  • 一、Lambert漫反射计算1
    • 1、MixRealtimeAndBakedGI 函数有三个重载
    • 2、3号 调用了 2号
    • 3、1号调用了 SubtractDirectMainLightFromLightmap函数
    • 4、我们重点来看 Lambert漫反射的实现部分
    • 5、其余部分
  • 二、Lambert漫反射计算2
    • 1、LightingLambert


前言

在之前的文章中,我们已经知道了 SimpleLit 下的主光数据怎么获取。

  • Unity中URP下获取主灯信息
  • Unity中ShaderGraph下获取主灯

有了这些数据,我们就可以计算 Lambert漫反射 和 BulinnPhone高光反射 了。


一、Lambert漫反射计算1

  • 我们在获取了主光信息后

Light mainLight = GetMainLight1(inputData, shadowMask, aoFactor);

  • 就来到了 Lambert 漫反射的计算(这里同时包含了实时光照 和 全局光照GI的计算)

MixRealtimeAndBakedGI(mainLight, inputData.normalWS, inputData.bakedGI, aoFactor);
在这里插入图片描述

  • 我们来分析一下 MixRealtimeAndBakedGI 函数

1、MixRealtimeAndBakedGI 函数有三个重载

  • 我们这里为了方便称呼,把他们分别称为 1号、2号、3号重载 在这里插入图片描述
  • 调用时,我们首先调用了 3号
    在这里插入图片描述

2、3号 调用了 2号

在这里插入图片描述

3、1号调用了 SubtractDirectMainLightFromLightmap函数

  • 该函数就是实现了 Lambert漫反射计算的核心部分 同时混合了 GI
    在这里插入图片描述

4、我们重点来看 Lambert漫反射的实现部分

在这里插入图片描述

  • 得到 d o t ( N ⃗ , L ⃗ ) dot(\vec{N},\vec{L}) dot(N ,L ),并且限制范围在[0,1]之间

half contributionTerm = saturate(dot(mainLight.direction, normalWS));

  • 然后,用计算出的漫反射结果 与 主光颜色混合,就得到了最终的漫反射颜色

half3 lambert = mainLight.color * contributionTerm;

5、其余部分

  • GI相关
    在这里插入图片描述
  • 阴影相关
    在这里插入图片描述

二、Lambert漫反射计算2

  • 在 CalculateBlinnPhong 函数中,也有计算 Lambert 光照的部分
    在这里插入图片描述
  • CalculateBlinnPhong 调用了 LightingLambert函数来计算Lambert漫反射
    在这里插入图片描述

1、LightingLambert

在这里插入图片描述

  • 其中主要进行了两步
  1. 得到 d o t ( N ⃗ , L ⃗ ) dot(\vec{N},\vec{L}) dot(N ,L ),并且限制范围在 [0,1]之间

half NdotL = saturate(dot(normal, lightDir));

  1. 混合 主光颜色 和 点积结果

return lightColor * NdotL;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1400655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑pdf如何转换成word格式?用它实现pdf文件一键转换

pdf转word格式可以用于提取和重用pdf文档中的内容,有时候,我们可能需要引用或引用pdf文档中的一些段落、表格或数据,通过将pdf转换为可编辑的Word文档,可以轻松地复制和粘贴所需内容,节省我们的时间,那么如…

windows下载安装ffmpeg最新版

windows环境搭建专栏🔗点击跳转 win系统环境搭建(十六)——windows下载安装ffmpeg最新版 文章目录 win系统环境搭建(十六)——windows下载安装ffmpeg最新版1.下载2.安装3.验证 1.下载 下载页面地址是https://ffmpeg.…

Windows WSL2 占用磁盘空间清理释放

目前工作中时常用到WSL2(Ubuntu20.04),在使用一段时间后会发现WSL2所占用磁盘空间越来越多,体现在WSL2之上安装Linux分发对应的vhdx虚拟磁盘文件体积越来越大,会占用Windows自身空间,即使手动清理了Linux分…

计算机毕设thinkphp+mysql+_vue房屋租赁系统h3sem

运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框架:Thinkphp5 前端框架:vue.js 服务器:apache 数据库:mysql 数据库工具:Navicat/phpmyadmin 房屋租赁管理系统有不同的用户角色。不同的用户权限对应不…

postgresql(Windows)初始化数据库教程

省流:本文章内容讲的是如何初始化postgresql数据库环境,前提是已经安装好postgresql数据库,安装步骤参考postgresql(Windows)安装教程 # 开始:安装postgresql-12.14-2-windows-x64.exe完成后进行初始化数据…

Java面试汇总——jvm篇

目录 JVM的组成: 1、JVM 概述(⭐⭐⭐⭐) 1.1 JVM是什么? 1.2 JVM由哪些部分组成,运行流程是什么? 2、什么是程序计数器?(⭐⭐⭐⭐) 3、介绍一下Java的堆(⭐⭐⭐⭐) 4、虚拟机栈(⭐⭐⭐⭐) 4.1 什么是虚拟机栈&…

《WebKit 技术内幕》之六(1): CSS解释器和样式布局

《WebKit 技术内幕》之六(1):CSS解释器和样式布局 CSS解释器和规则匹配处于DOM树建立之后,RenderObject树之前,CSS解释器解释后的结果会保存起来,然后RenderObject树基于该结果来进行规范匹配和布局计算。当…

编译+链接

文章目录 编译预编译(预处理)编译汇编 链接 我们写完一个程序要经过 编译和 链接过程才能形成 可执行程序,那么编译和链接的具体过程究竟是什么呢? 首先,当我们写完一个工程后可能会有很多文件,这些文件…

反欺诈与异常点检测

1. 反欺诈检检测 1.1 反欺诈检测的难点 反诈骗实际是个多分类问题,每种不同的诈骗都当做一种单独的类型。除了欺诈手段多样且持续变化,欺诈检测一般还面临以下问题: 1. 大部分情况下数据是没有标签的,各种成熟的监督学习没有用武…

基于深度学习的细胞感染性识别与判定

基于深度学习的细胞感染性识别与判定 基于深度学习的细胞感染性识别与判定引言项目背景项目意义项目实施数据采集与预处理模型选择与训练模型评估与优化 结果与展望结论 基于深度学习的细胞感染性识别与判定 引言 随着深度学习技术的不断发展,其在医学图像处理领域…

【操作系统和计网从入门到深入】(四)基础IO和文件系统

前言 这个专栏其实是博主在复习操作系统和计算机网络时候的笔记,所以如果是博主比较熟悉的知识点,博主可能就直接跳过了,但是所有重要的知识点,在这个专栏里面都会提到!而且我也一定会保证这个专栏知识点的完整性&…

【网站项目】基于jsp的199旅游景点管理系统

🙊作者简介:多年一线开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

最安全的飞行器——飞行汽车

飞行汽车采用旋翼机飞行方式,稳定可靠,保证人身安全,可以垂直起降。旋翼机的稳定性在所有航空器中最高的,旋翼机被国际航空界公认为最安全的飞行器!增程器采用斯特林发电机。飞行汽车3D。 固定翼飞机在起飞的时候&…

二叉树 - 堆 | 数据结构中的小技巧大作用

📷 江池俊: 个人主页 🔥个人专栏: ✅数据结构冒险记 ✅C语言进阶之路 🌅 有航道的人,再渺小也不会迷途。 文章目录 一、堆的概念及介绍二、结构图示三、堆的代码实现(图解)3.1 创…

【RT-DETR有效改进】华为 | GhostnetV2移动端的特征提取网络效果完爆MobileNet系列

前言 大家好,这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进,内容持续更新,每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本,同时修改内容也支持ResNet32、ResNet101和PP…

【RT-DETR有效改进】Google | EfficientNetV1一种超轻量又高效的网络 (附代码 + 添加教程)

前言 大家好,我是Snu77,这里是RT-DETR有效涨点专栏。 本专栏的内容为根据ultralytics版本的RT-DETR进行改进,内容持续更新,每周更新文章数量3-10篇。 专栏以ResNet18、ResNet50为基础修改版本,同时修改内容也支持Re…

2024首更---Web Service 教程

Web Services 简介 Web Services 可使您的应用程序成为 Web 应用程序。 Web Services 通过 Web 进行发布、查找和使用。 您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解: HTMLXML 如果您希望首先学习这些项目,请在…

蓝桥杯-dfs(一)

📑前言 本文主要是【算法】——dfs使用的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&#xff1…

RLC如何通过改变频率实现输出稳压

当开关频率工作在容性区域时,容抗抵消完感抗还有剩余,所以容抗感抗可以近似为一个容抗Cr,但加上频率的改变,容抗又可以近似为一个可调电阻 那又改如何控制频率,保持输出稳压? 当输入与输出电压不变时,Rac变…

Oracle 经典练习题 50 题

文章目录 一 CreateTable二 练习题1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数2 查询"01"课程比"02"课程成绩低的学生的信息及课程分数3 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩4 查询平均成绩小于…