Unity Shader - sahder变体剔除

文章目录

  • 吐槽
  • 优化方案 - 目前最靠谱的方式
    • shader
    • csharp


吐槽

我之所以单独写这边文章,是因为之前写的一篇: Unity Shader - Built-in管线下优化变体,编辑后,无法保存,一直提示:操作超时。
在这里插入图片描述

等了差不多 30S~60S,就出现: 操作超时请重试。
在这里插入图片描述

已经能确定的是,这个问题,100% 必现。从上周就出现,到现在,就是比我不再使用 XSDN。

打开CSDN首页里面的连接,是秒开的,到底怎么回事,看来准备博客搬家。


优化方案 - 目前最靠谱的方式


shader

注意尾部我们增加了一些 CUSTOM_SKIP_START(xxx)CUSTOM_SKIP_END 注释来方便剔除的

Shader "xxx"
{Properties {}XXXPROGRAM...#pragma multi_compile _ A#pragma multi_compile _ B#pragma multi_compile _ CENDXXX
}// jave.lin :
// completely_match_group : 完全吻合的变体,就是不多也不少的匹配规则
// CUSTOM_SKIP_START(completely_match_group)
A C
// CUSTOM_SKIP_END(xxx)// jave.in :
// any_match_group : 只要变体中 同时存在 A B 的
// CUSTOM_SKIP_START(any_match_group)
A B
// CUSTOM_SKIP_END(xxx)// jave.lin :
// 其他的规则可以自行添加
// 如果是想要剔除 多个变体,只要包含,就剔除,可以使用unity shaderlab自带的: #pragma skip_variants xxx1 xxx2 xxx3

csharp

IPreprocessShaders 接口实现中,我们要对 shader 的 CUSTOM_SKIP_START(xxx)CUSTOM_SKIP_END 提取
然后这个 shader 变体是否需要剔除

这里的代码我就不写了,具体可以参考:Unity Shader - Built-in管线下优化变体里面的 IPreprocessShaders 接口的使用

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

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

相关文章

跨端轻量JavaScript引擎的实现与探索

一、JavaScript 1.JavaScript语言 JavaScript是ECMAScript的实现,由ECMA 39(欧洲计算机制造商协会39号技术委员会)负责制定ECMAScript标准。 ECMAScript发展史: 时间版本说明1997年7月ES1.0 发布当年7月,ECMA262 标准出台1998年6月ES2.0 发布该版本修改完全符合…

Flutter Version Manager (FVM): Flutter的版本管理终极指南

Flutter笔记 Flutter Version Manager (FVM) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/136300307 my-websit…

Sentinel 动态规则扩展

一、规则 Sentinel 的理念是开发者只需要关注资源的定义,当资源定义成功后可以动态增加各种流控降级规则。Sentinel 提供两种方式修改规则: 通过 API 直接修改 (loadRules)通过 DataSource 适配不同数据源修改 手动通过 API 修改比较直观,…

pytorch保存张量为图片

这里用到的是torchvision中的save_image。 废话不多说,直接来代码: import torch from torchvision.utils import save_image B, C, H, W 64, 3, 32, 32 input_tensor torch.randn(B, C, H, W) save_image(input_tensor, "hh.png", nrow8)…

HarmonyOS—低代码开发Demo示例

接下来为大家展示一个低代码开发的JS工程的Demo示例,使用低代码开发如下华为手机介绍列表的HarmonyOS应用/服务示例。 1.删除模板页面中的控件后,选中组件栏中的List组件,将其拖至中央画布区域,松开鼠标,实现一个List组…

【HarmonyOS】鸿蒙开发之Stage模型-应用配置文件——第4.2章

Stage模型-应用配置文件 AppScope -> app.json5:应用的全局配置信息entry:OpenHarmony工程模块,编译构建生成一个HAP包 build:用于存放OpenHarmony编译生成的hap包src -> main -> ets:用于存放ArkTS源码src …

【wu-lazy-cloud-network】Java自动化内网穿透架构整理

项目介绍 wu-lazy-cloud-network 是一款基于(wu-framework-parent)孵化出的项目,内部使用Lazy ORM操作数据库,主要功能是网络穿透,对于没有公网IP的服务进行公网IP映射 使用环境JDK17 Spring Boot 3.0.2 版本更新 1…

【51单片机】红外遥控红外遥控电机调速(江科大)

1.红外遥控简介 红外遥控是利用红外光进行通信的设备,由红外LED将调制后的信号发出,由专用的红外接收头进行解调输出 通信方式:单工,异步 红外LED波长:940nm 通信协议标准:NEC标准 2.硬件电路 红外发送部分 IN高电平时,LED不亮,IN低电平时&…

飞天使-linux操作的一些技巧与知识点7-devops

文章目录 简述devopsCICD 简述devops 让技术团队,运维,测试等团队实现一体式流程自动化 进阶版图 CICD 持续集成, 从编译,测试,发布的完成自动化流程 持续交付,包含持续集成,并且将项目部署…

Redis集群搭建笔记

redis集群: 1.hash取余算法 2.一致性hash算法 3.哈希槽算法 以下使用哈希槽算法 Redis 3主3从搭建 新建6个Redis Docker容器实例 docker run -d --name redis-node-1 --net host --privilegedtrue -v /usr/local/develop/redis/share/redis-node-1:/data redis:6.0.8 --c…

SQL 中如何实现多表关联查询?

阅读本文之前请参阅----MySQL 数据库安装教程详解(linux系统和windows系统) 在SQL中,多表关联查询是通过使用JOIN操作来实现的,它允许你从两个或多个表中根据相关列的值来检索数据。以下是几种常见的JOIN类型: …

MFC 多文档程序的基本编程

下载了一个openGL mfc的多文档程序,以此来学习mfc多文档模式的编程; 1 基本编程 它每次新建一个文档,会在窗口绘制一个三角形、一个矩形;如果没有了图形刷新一下; 先看一下为什么每次打开新文档会绘制图形; 生成工程之后主要有5个类,比单文档程序多了一个子框架类; 可…

width:100%和width:auto有啥区别

项目中使用了with属性,突然好奇auto 和 100% 的区别,特地搜索实践总结了一下观点 一、 width属性介绍二、 代码带入三、 分析比较四、 总结 一、 width属性介绍 width 属性用于设置元素的宽度。width 默认设置内容区域的宽度,但如果 box-siz…

计算机组成原理 — 存储器(2)

高速缓冲存储器 大家好呀!我是小笙,由于存储器这部分章节内容较多,我分成二部分进行总结,以下是第二部分,希望内容对你有所帮助! 概述 目的:避免CPU空等现象 原理:程序访问的局部…

【k8s资源调度-Deployment】

1、标签和选择器 1.1 标签Label 配置文件&#xff1a;在各类资源的sepc.metadata.label 中进行配置通过kubectl 命令行创建修改标签&#xff0c;语法如下 创建临时label&#xff1a;kubectl label po <资源名称> apphello -n <命令空间&#xff08;可不加&#xff0…

IO进程:信号灯集

程序代码&#xff1a; sem.h: 1 #ifndef __SEM_H__2 #define __SEM_H__3 4 //创建信号灯集并初始化&#xff0c;semcount表示灯个数5 int open_sem(int semcount);6 7 //申请资源操作&#xff0c;semno表示灯的编号8 int P(int semid,int semno);9 10 //释放资源操作&#xff…

uniapp播放mp4省流方案

背景&#xff1a; 因为项目要播放一个宣传和讲解视频&#xff0c;视频文件过大&#xff0c;同时还为了节省存储流量&#xff0c;想到了一个方案&#xff0c;用m3u8切片替代mp4。 m3u8&#xff1a;切片播放&#xff0c;可以理解为一个1G的视频文件&#xff0c;自行设置文…

【前端素材】推荐优质后台管理系统Be admin平台模板(附源码)

一、需求分析 后台管理系统&#xff08;或称作管理后台、管理系统、后台管理平台&#xff09;是一种专门用于管理网站、应用程序或系统后台运营的软件系统。它通常由一系列功能模块组成&#xff0c;为管理员提供了管理、监控和控制网站或应用程序的各个方面的工具和界面。以下…

Spring-IoC

文章目录 Spring IoC一、IoC概述1、概述2、IoC原理3、IoC作用4、Spring Bean 二、Spring容器 相关接口1、BeanFactory2、ApplicationContext1&#xff09;HierarchicalBeanFactory2&#xff09;ListableBeanFactory3&#xff09;EnvironmentCapable4&#xff09;ApplicationEve…

Web3 基金会推出去中心化之声计划:投入高额 DOT 和 KSM ,助力去中心化治理

作者&#xff1a;Web3 Foundation Team 编译&#xff1a;OneBlock 原文&#xff1a;https://medium.com/web3foundation/decentralized-voices-program-93623c27ae43 Web3 基金会为 Polkadot 和 Kusama 创建了去中心化之声计划&#xff08;Decentralized Voices Program&…