Unity中URP下实现能量罩(性能优化 和 BRP适配)

文章目录

  • 前言
  • 一、性能优化
    • 1、尽可能减少纹理采样次数
    • 2、 尽量把 max函数 换成 saturate函数,可以减少一次GPU指令
    • 3、尽可能的把计算移到顶点着色器
    • 4、变体优化
    • 5、变量放入 常量缓冲区
  • 二、BuideIn Render Pipeline适配
    • 1、C#脚本开启摄像机深度图
    • 2、CG语言适配
  • 三、最终效果和代码


前言

在之前的文章中,我们实现了URP下的能量罩效果。

  • Unity中URP下实现能量罩(扭曲流光花纹)

我们在这篇文章中,对其进行性能优化 和 BRP下的适配。


一、性能优化

1、尽可能减少纹理采样次数

  • 我们这里把 能量罩花纹纹理 和 抓屏扭曲纹理 合并成同一个来使用,在效果上没多大变化。但是,可以少使用一次纹理采样。

2、 尽量把 max函数 换成 saturate函数,可以减少一次GPU指令

3、尽可能的把计算移到顶点着色器

  • 在片元着色器中计算,需要对片元中的每一个像素进行计算,消耗性能较大

4、变体优化

5、变量放入 常量缓冲区


二、BuideIn Render Pipeline适配

1、C#脚本开启摄像机深度图

Camera.main.depthTextureMode = DepthTextureMode.Depth;

2、CG语言适配

  • 抓屏纹理

GrabPass{“_GrabPass”}

  • 引入库修改

#include “UnityCG.cginc”

  • 纹理申明

sampler2D _MainTex;
float4 _MainTex_ST;
sampler2D _CameraDepthTexture;
sampler2D _GrabPass;

  • 顶点着色器中,顶点坐标系变换需要修改为BRP的方法

v2f vert(appdata v)
{
v2f o = (v2f)0;
o.positionWS = mul(unity_ObjectToWorld,v.positionOS);
o.positionVS = UnityObjectToViewPos(v.positionOS);
o.pos

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

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

相关文章

【python】搭配Miniconda使用VSCode

现在的spyder总是运行出错,启动不了,尝试使用VSCode。 一、在VSCode中使用Miniconda管理的Python环境,可以按照以下步骤进行: a. 确保Miniconda环境已经安装并且正确配置。 b. 打开VSCode,安装Python扩展。 打开VS…

linux软件安装(yum命令)

1.Linux系统的应用商店 操作系统安装软件有许多种方式,一般分为: 下载安装包自行安装 如win系统使用exe文件、msi文件等如mac系统使用dmg文件、pkg文件等 系统的应用商店内安装 如win系统有Microsoft Store商店如mac系统有AppStore商店 Linux命令行…

qt学习:多界面跳转+信号+槽函数

目录 概念 分类 多界面编程思路 新建界面 注意 头文件 无数据传输跳转界面 有数据传输跳转界面 对象公有接口 界面之间数据传输 信号与槽函数进行数据传输跳转界面 信号: 槽: 概念 格式1 关联信号和发送信号 格式2 通信步骤 自定义信号和槽函数 总结 实…

精彩手绘全解:RAG技术,从入门到精通

本文整理自IVAN ILIN发布于Towards AI的博客[1]。感谢作者的精彩讲解。 深度学习自然语言处理 分享整理:Winnie 引言 检索增强生成(Retrieval Augmented Generation,简称RAG)为大型语言模型(LLMs)提供了从某…

绘图工具用的好,头发掉的少

程序员不管是在学习,还是工作过程中,很多时候都需要画图,如产品分析、架构设计、方案选型等,良好的绘图不仅可以让绘图者的思路清晰,也可以让聆听者更好的理解。用好画图,升职加薪少不了!今天介…

C程序训练:与输入有关的错误

在录入程序时有时稍不注意就可能录入错误的字符导致程序运行结果出现错误&#xff0c;下面举例说明。 下面程序的运行结果是错的&#xff0c;但程序又没有错&#xff0c;到底问题出现在哪呢&#xff1f; #include <stdio.h> int main() {FILE *fp;int i, k, n;fpfopen(…

OceanBase 4.2特性解读:Show Trace全链路跟踪,助力快速问题定位与精准诊断

在分布式数据库环境下&#xff0c;慢 SQL 诊断是运维人员面临的一大挑战。在无法及时发现问题根本原因的情况下&#xff0c;可能会严重影响用户体验&#xff0c;甚至会导致业务服务不可用。相对于单机数据库&#xff0c;分布式数据库系统涉及多个节点、多组件的协同工作&#x…

Go语言认识

Go语言认识 1. Go语言的设计背景2. Go语言的历程3. Go语言对比分析4. Go语言未来的发展规划5. 要不要选择Go 关注 go博客 直接了解第一手资料。 go文档 了解go的全貌。 1. Go语言的设计背景 Go语言&#xff08;也称为Golang&#xff09;是由Google开发的一种编程语言。它的设计…

构建基于RHEL7(CentOS7)的OpenSSH9.5p1的RPM包和升级回退方案

本文适用&#xff1a;RHEL7系列&#xff0c;或同类系统(CentOS7等) 文档形成时期&#xff1a;2023年 因软件世界之复杂和个人能力之限&#xff0c;难免疏漏和错误&#xff0c;欢迎指正。 文章目录 环境准备安装依赖openssh-9.5p1-el7.spec内容构建RPM包下载安装前注意事项开启t…

SQL注入攻击

1.用java实现登录的检查 package jdbc1;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; import java.util.Scanner;public class Login {public static void main(String args[]){try(Connection connec…

Redis管道操作

文章目录 1. 问题提出2. 解决方案3. 案例演示4. 总结 1. 问题提出 如何优化频繁命令往返造成的性能瓶颈&#xff1f; Redis是一种基于C/S一级请求响应协议的TCP服务&#xff0c;一个请求会遵循一下步骤&#xff1a; 客户端向服务端发送命令分四步&#xff08;发送命令-> …

教程视频二维码怎么做?扫码学习使用技巧

现在购买商品时经常会发现使用手册或者包装上会印有相关的二维码&#xff0c;扫码可以查看产品介绍或者使用说明的视频教学。将需要展示的内容放到二维码中&#xff0c;让用户能够通过扫码了解内容详情&#xff0c;有效的降低成本而且方便用户获取内容。 那么如果想要制作视频…

中科星图——Landsat9_C2_SR大气校正后的地表反射率数据

数据名称&#xff1a; Landsat9_C2_SR 数据来源&#xff1a; USGS 时空范围&#xff1a; 2022年1月-2023年3月 空间范围&#xff1a; 全国 数据简介&#xff1a; Landsat9_C2_SR数据集是经大气校正后的地表反射率数据&#xff0c;属于Collection2的二级数据产品&#…

linux |离线安装软件 | rpm命令

离线 安装包管理命令 rpm ##### #检查安装包是否认证成功 简单讲 来源是否可靠 rpm --checksig xxx.rpmrpm --checksig nmap-7.92-1.x86_64.rpm nmap-7.92-1.x86_64.rpm: sha1 md5 OK#### 安装前检验包的依赖库 rpm -qpR nmap-7.92-1.x86_64.rpm python > 2.4 rpmlib(Fil…

128基于matlab的粒子群优化算法寻找多元函数的最大值

基于matlab的粒子群优化算法寻找多元函数的最大值&#xff0c;可定义多元函数&#xff0c;变量区间范围&#xff0c;输出最大值条件下的变量值。程序已调通&#xff0c;可直接运行。 128matlab多元函数极值 (xiaohongshu.com)

Sectigo有几种泛域名SSL证书买一年送一个月

Sectigo是一家知名的数字证书颁发机构&#xff0c;提供了很多种类型的SSL证书&#xff0c;可以满足不同用户的需求。其中&#xff0c;泛域名SSL证书是一种常见的证书类型&#xff0c;可以同时保护主域名以及主域名下所有子域名。今天就随SSL盾小编了解Sectigo旗下有几种泛域名S…

【origin】负载牵引的Smith圆图

【origin】负载牵引的Smith圆图 1.从ADS导入数据到origin2.smith圆图3.扩展到多组线4.参考资料 1.从ADS导入数据到origin export导出为txt&#xff0c;得到的是幅相值&#xff0c;复制到excel如下图&#xff0c;有多根类似格式的线&#xff0c;只需要复制DE列到origin中 复制到…

腾讯云COS桶文件上传下载工具类

1&#xff0c;申请key和密钥 2&#xff0c;引入依赖 <dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.24</version></dependency>3&#xff0c;工具类 package com.example.activi…

在qml中,loader创建的组件,此时当loader的souceComponet变了其他组件,那么之前创建的组件还在吗?

在 QML 中&#xff0c;当 Loader 的 sourceComponent 属性变更为其他组件时&#xff0c;之前创建的组件会被销毁。这是因为 Loader 负责加载和卸载不同的组件。 以下是一个简单的例子&#xff0c;演示 Loader 的工作方式&#xff1a; import QtQuick 2.0Rectangle {width: 36…

怎么找微信服务器的IP地址

首先&#xff0c;让微信客户端在PC端运行&#xff0c;在任务管理器->详细信息中&#xff0c;找到WeChat.exe的进程&#xff0c;找到PID 就是微信进程的ID号&#xff0c;如下图所示&#xff1a; 打开一个命令行窗口&#xff0c;cmd或者powershell窗口都可以&#xff0c;输入…