Unity中Shader的前向渲染路径ForwardRenderingPath

文章目录

  • 前言
  • 一、前向渲染路径的特点
  • 二、渲染方式
    • 1、逐像素(效果最好)
    • 2、逐顶点(效果次之)
    • 3、SH球谐(效果最差)
  • 三、Unity中对灯光设置 后,自动选择对应的渲染方式
    • 1、ForwardBase仅用于一个逐像素的平行灯,以及所有的逐顶点与SH
    • 2、ForwardAdd用于其他所有的逐像素灯
  • 四、在Unity看一下像素灯的设置
    • 1、在默认情况下,即使项目设置中像素灯的数量为0,Unity也会默认把场景中最亮的一盏平行灯作为作为逐像素灯
    • 2、在设置中,把逐像素灯设置为0后,点光源就变成逐顶点光照了


前言

Unity中Shader的前向渲染路径ForwardRenderingPath。前向渲染路径的效果介于 延迟渲染路径 和 顶点照明渲染路径。


一、前向渲染路径的特点

一个物体在受到多个灯光影响时,可能会产生一个或者多个Pass,具体取决于多个因素!

注意:前向渲染路径的消耗是和实时光的数量成正比的,所以在使用前向渲染路径时,一定要控制实时光的数量。

二、渲染方式

前向渲染路径同时包含了:延迟渲染路径的中的 逐像素渲染 和 顶点照明渲染路径中的 逐顶点渲染

1、逐像素(效果最好)

2、逐顶点(效果次之)

3、SH球谐(效果最差)

三、Unity中对灯光设置 后,自动选择对应的渲染方式

1、如果一个灯被标记为 NotImportant,则这个灯会采用逐顶点或者SH。
2、最亮的一盏平行灯采用逐像素渲染方式(如果没被主动标记为NotImportant)
3、被标记为Important的灯采用逐像素光照(一般Unity默认的是Auto)
4、如果上面产生逐像素的灯数量小于工程中的像素灯数量的话,则会有更多的灯采用逐像素

请添加图片描述

1、ForwardBase仅用于一个逐像素的平行灯,以及所有的逐顶点与SH

如果场景中有 一个逐像素的平行灯,则需要在ForwardBase这个Pass中实现:这个逐像素的效果,还有所有的逐顶点效果以及所有的SH球谐效果

2、ForwardAdd用于其他所有的逐像素灯

四、在Unity看一下像素灯的设置

1、在默认情况下,即使项目设置中像素灯的数量为0,Unity也会默认把场景中最亮的一盏平行灯作为作为逐像素灯

在这里插入图片描述

在这里插入图片描述

可以看出,虽然设置中逐像素光照灯数设置为0了。但是,对于这个物体的渲染还是使用了逐像素光照。(这种情况非要不使用逐像素光照的话,把光源设置为NotImportant就可以)

2、在设置中,把逐像素灯设置为0后,点光源就变成逐顶点光照了

可以看见渲染效果变差了,光照看着变成片状了

在这里打开网格可以看见灯光渲染的区域网格

在这里插入图片描述

请添加图片描述

可以看出,光照模式变成了 SH 球谐 和 逐顶点光照
在这里插入图片描述

当把像素灯设置为1个后,可以看见这个点光源的渲染分成了两个部分
第一部分,是这个点光源的SH光照
在这里插入图片描述
第二部分,是这个使用了FORWARDADD,则一定是逐像素光照
在这里插入图片描述

一个物体上最多只会受4个逐顶点光照的影响,所以当灯源大于4个时,多余的逐顶点光照会不渲染。选择的规则,优先渲染靠近物体中心的顶点光照。

例如下图有6个逐顶点光照,只渲染了4个
在这里插入图片描述

聚光灯也和点光源一样

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

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

相关文章

GitHub 基本操作

最近要发展一下自己的 github 账号了,把以前的项目代码规整规整上传上去,这里总结了一些经验,经过数次实践之后,已解决几乎所有基本操作中的bug,根据下面的操作步骤来,绝对没错了。(若有其他问题…

Java初始化大量数据到Neo4j中(二)

接Java初始化大量数据到Neo4j中(一)继续探索,之前用create命令导入大量数据发现太过耗时,查阅资料说大量数据初始化到Neo4j需要使用neo4j-admin import 业务数据说明可以参加Java初始化大量数据到Neo4j中(一),这里主要是将处理好的节点数据和…

装饰器模式详解和实现(设计模式 二)

装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地将对象添加到现有对象中,以提供额外的功能,同时又不影响其他对象。 实现示例 1.定义一个接口或抽象类,表示被装饰对象的公共接口 //抽…

3D孪生场景搭建:模型区域摆放

前面介绍完了NSDT场景编辑器的线性绘制和阵列绘制,本章将讲述下编辑器的另一种绘制方式:区域绘制。 1、区域绘制功能简介 在场景中绘制资产时,除使用上述两个的方式外,NSDT 编辑器还支持使用区域绘制的方式进行绘制。先选取需要…

Linux常用指令(二)

目录 一、 删除空目录(rmdir) 二、ln 硬链接与软链接 三、新建空文件或更新文件的时间戳(touch) 四、比较文件内容的差异(diff) 五、显示当前时间或设置系统时间(date) 六、显…

Git多账号管理通过ssh 公钥的方式,git,gitlab,gitee

按照目前国内访问git,如果不科学上网,我们很大可能访问会超时。基于这个,所以我现在的git 配置已经增加到了3个了 一个公司gitlab,一个git,一个gitee. 以下基于这个环境,我们来说明下如何创建配置ssh公钥。…

信号类型(雷达)——脉冲雷达(四)

系列文章目录 《信号类型(雷达通信)》 《信号类型(雷达)——雷达波形认识(一)》 《信号类型(雷达)——连续波雷达(二)》 《信号类型(雷达&…

四、2023.9.30.C++面向对象end.4

文章目录 49、 简述一下什么是常函数,有什么作用?50、 说说什么是虚继承,解决什么问题,如何实现?51、简述一下虚函数和纯虚函数,以及实现原理?52、说说纯虚函数能实例化吗,为什么&am…

龙迅LT9611UXC 2PORT MIPICSI/DSI转HDMI(2.0)转换器+音频,内置MCU

龙迅LT9611UXC 1.描述: LT9611UXC是一个高性能的MIPI DSI/CSI到HDMI2.0转换器。MIPI DSI/CSI输入具有可配置的单 端口或双端口,1高速时钟通道和1~4高速数据通道,最大2Gbps/通道,可支持高达16Gbps的总带 宽。LT9611UXC支持突发…

后端基础php

虚拟机安装网络方面名词介绍快速自建web环境(phpstudy)前端基础mysql语法前端【展示】----后端【功能实现】标准php 【ASP / ASPX / PHP / JSP】0基础 --->php入门编程--->代码 对逻辑要求高变量--->会改变的量 php---->$aHello…

视频监控/视频汇聚/安防视频监控平台EasyCVR配置集群后有一台显示离线是什么原因?

开源EasyDarwin视频监控TSINGSEE青犀视频平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,在视频监控播放上,TSINGSEE青犀视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放,可同时播放多…

C#(CSharp)入门教程

目录 C#的第一个程序 变量 折叠代码 变量类型和声明变量 获取变量类型所占内存空间(sizeof) 常量 转义字符 隐式转换 显示转换 异常捕获 运算符 算术运算符 布尔逻辑运算符 关系运算符 位运算符 其他运算符 字符串拼接 …

Spring实例化源码解析之ComponentScanAnnotationParser(四)

上一章我们分析了ConfigurationClassParser,配置类的解析源码分析。在ComponentScans和ComponentScan注解修饰的候选配置类的解析过程中,我们需要深入的了解一下ComponentScanAnnotationParser的parse执行流程,SpringBoot启动类为什么这么写&…

MySQL体系结构和四层架构介绍

MySQL体系结构图如下: 四层介绍 1. 连接层: 它的主要功能是处理客户端与MySQL服务器之间的连接(比如Java应用程序通过JDBC连接MySQL)。当客户端应用程序连接到MySQL服务器时,连接层对用户进行身份验证、建立安全连接并管理会话状态。它还处理…

企业级磁盘阵列存储系统由硬到软全析

企业级磁盘阵列是由一组设备构成的存储系统,主要包括两种类型的设备,分别是控制器和扩展柜,其中控制器只有一台,扩展柜可以没有,也可以有多台。在EMC的Unity中分别称为DPE(Disk Processor Enclosure)和DAE(Disk Array Enclosure),在华为的OceanStor里面称为控制框和硬…

k8s搭建EFK日志系统

搭建 EFK 日志系统 前面大家介绍了 Kubernetes 集群中的几种日志收集方案,Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。 Elasticsearch 是一个实…

chrome插件-入门

chrome插件的作用 1、屏蔽网页上的广告,提高浏览速度和减少视觉干扰 2、捕捉和编辑网页截图 3、改善在社交媒体平台上的体验,例如提供额外的功能,或自定义外观和布局 4、网页翻译 5、保存和组织网页书签和笔记 6、管理日程安排,设…

Python 笔记06(Mysql数据库)

一 基础 1.1 安装 MySQL下载参考:MySQL8.0安装配置教程【超级详细图解】-CSDN博客 测试是否安装并正确配置环境变量: 1.2 查看服务器是否正常运行 1.3 显示数据库 show databases; 1.4 退出 exit 1.5 python 连接 1.6 查主机IP ipconfig

【RabbitMQ实战】07 3分钟部署一个RabbitMQ集群

一、集群的安装部署 我们还是利用docker来安装RabbitMQ集群。3分钟安装一个集群,开始。 前提条件,docker安装了docker-compose。如果没安装的话,参考这里 docker-compose文件参考bitnami官网:https://github.com/bitnami/contai…

一道签到题目 签到.zip

一道签到题目 https://www.xuenixiang.com/ctfexercise-competition-589.html 下载附件:签到.zip双击打开zip包。 进行base64转换 在线 Unicode 编码转换 | 菜鸟工具 (runoob.com) 获得压缩包密码:haishi 文字倒序工具,在线文字倒序 (qqxiuzi.cn)