Unity里URP项目的介绍和创建

news/2024/10/31 5:27:38/

大家好,我是阿赵,接下来会介绍一下URP的使用

一、URP的介绍

URP(Universal Render Pipeline)通用渲染管线,是Unity在2019.3版本之后推出的一种新的渲染管线。
对比起默认的渲染管线,他的使用上会产生了一些变化,包括了摄像机的使用、Shader的编写等。
传统的渲染管线在渲染多光源的情况,是把每一个主要光源都使用一个Pass来计算,然后再叠加,所以在计算多光源实时光时,消耗会比较大。
URP的特点是,假定了一些特定的条件,比如主光源只能是平行光、限定附加光源数量,然后在一个pass内处理完所有光源和光照的计算。这样会解决了默认渲染管线对于多光源的计算。
URP的另外一个特点是SRP Batcher合并的支持。合并批次渲染是渲染性能优化的重要手段,之前介绍过静态合批、动态合批、GPU Instancing等,SRP Batcher也是一种非常优秀的合批的技术手段
所以URP在移动平台开发比较受欢迎,它能做出效果不错而性能也不错的实时光效果。

二、在项目中使用URP

1、安装URP

在这里插入图片描述

在Package Manager里面搜索并安装UniversalRP
在这里插入图片描述

安装后,Packages里面会增加Core RP Library好Universal RP两个package文件夹

2、把项目转变成URP

1.创建URP的Asset文件

在这里插入图片描述

在安装了Universal RP的package之后,会发现Create选项里面多了Rendering/Universal Render Pipeline的选项,可以创建Pipeline Asset

创建之后,会发现有2个asset文件,一个是我们自己起的名字,一个是自己起的名字加上_Renderer结尾
在这里插入图片描述

第一个文件是对于渲染的各项设置
在这里插入图片描述

第二个文件是附加的渲染设置
在这里插入图片描述

2.指定使用URP的Asset文件

在Project Setting里面,分别在Graphics和Quality页签指定刚才创建的管线Asset文件。
在这里插入图片描述
在这里插入图片描述

3、产生的变化

1.摄像机

在这里插入图片描述

在指定了URP渲染asset之后,会发现摄像机的选项发生了非常大的变化,左边的是URP摄像机,右边的是普通的摄像机

2.材质球

在这里插入图片描述

新创建的材质球,默认使用的shader不再是Standard,而变成Universal Render Pipeline/Lit

如果手动改回Standard,会发现材质球变成了错误的紫色,Standard在URP里面不再被支持
在这里插入图片描述

如果针对旧项目的Standard材质球,可以使用工具Edit/Render Pipeline/Universal Render Pipeline下面的2个选项来转换材质球,第一个是遍历项目内所有的材质球并转换成URP类型,第二个是只转换当前选择的材质球为URP类型。
在这里插入图片描述
不是所有的材质球都需要转换的,假如材质球原来使用的shader就不需要转换,那么会出现这样的提示
在这里插入图片描述

3. Shader的支持

在这里插入图片描述

对于Shader部分,首先,在Shader文件的Inspector面板上,会显示出了SRP Batcher的情况,说明了该Shader是否支持SRP Batcher。
在这里插入图片描述

然后看看URP的支持库里面,全部都是hlsl文件,这代表着如果我们想用里面提供的方法,那么我们就要把之前使用的CGPROGRAM改为HLSLPROGRAM了。
对于Unity来说,cg和hlsl的语法基本上是一致的,不过也有一些需要注意的地方,这个之后有时间会再做说明


http://www.ppmy.cn/news/70177.html

相关文章

【LeetCode】326. 3 的幂

326. 3 的幂&#xff08;简单&#xff09; 方法一&#xff1a;试除法 思路 我们可以先进行特殊点判断&#xff0c;n < 0 的数都不可能是 3 的幂次方。接着&#xff0c;当 n > 0 且 n 能被 3 整除 时&#xff0c;我们对其整除 3 &#xff0c;直到该条件不满足&#xff…

基于matlab的长短期神经网络的三维路径跟踪预测

目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的三维路径跟踪预测 MATALB代码 效果图 结果分析 展望 参考论文 背影 路径跟踪是指通过计算机算法&#xff0c;。长短期记忆模型对复杂&#xff0c;非线性运动的目标跟踪&#xff0c;解决目标跟踪困难&a…

抓取动态网页的数据的具体操作方法

抓取动态网页的数据的具体操作方法 动态网页是指在用户交互过程中&#xff0c;网页内容不断更新和变化的网页。抓取动态网页的数据需要了解以下具体操作方法&#xff1a; 使用浏览器开发者工具&#xff1a;在浏览器中打开目标网页后&#xff0c;按下F12键&#xff0c;打开开发…

『python爬虫』20. 用协程爬取一本小说(保姆级图文)

目录 1. 分析目标网站1.1 寻找所有章节信息1.2 寻找章节内容 2. 爬虫思路获取得到的信息首先要同步协程获取所有章节标题和cid写入异步任务然后根据章节标题和cid获取章节内容 3. 完整实现代码总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』…

使用Spring Boot快速搭建项目:减少配置,提升开发效率

使用Spring Boot快速搭建项目&#xff1a;减少配置&#xff0c;提升开发效率 一、Spring Boot简介1 Spring Boot的起源2 Spring Boot的核心特点3 Spring Boot的优势 二、Spring Boot快速搭建项目1 Spring Boot的项目搭建方式使用Spring Initializr创建项目使用Spring Boot CLI创…

零死角玩转stm32中级篇4-ADC和DAC

本篇博文目录: 一.ADC的基础概念1.什么是ADC2.在单片机中我们一般使用ADC技术来做什么?3.怎么查看单片机的某一个引脚是否具有ADC功能4.ADC采集和引脚数据的读取有什么区别5.单片机内部采用的是数字信号&#xff0c;为什么还要采用ADC进行转换6.ADC的分类7.ADC的工作原理8.ADC…

Sentinel———隔离和降级

FeignClient整合Sentinel SpringCloud中&#xff0c;微服务调用都是通过Feign来实现的&#xff0c;因此做客户端保护必须整合Feign和Sentinel。 第一步 修改OrderService的application.yml文件&#xff0c;开启Feign的Sentinel功能&#xff08;消费者服务&#xff09; feig…

华为OD机试真题 Java 实现【最小的调整次数】【2023Q1 100分】

一、题目描述 有一个特异性的双端队列&#xff0c;该队列可以从头部或尾部添加数据&#xff0c;但是只能从头部移出数据。 小A依次执行2n个指令往队列中添加数据和移出数据。 其中n个指令是添加数据 (可能从头部添加、也可能从尾部添加)&#xff0c;依次添加1到n&#xff0c…