Unity中Shader编译目标渲染器

文章目录

  • 前言
  • 一、Unity在打包时,会把Shader编译成不同平台对应的代码
    • 我们在状态栏,可以看见我们目前所处于的目标平台
  • 二、在Unity中,怎么指定目标平台
    • 1、#pragma only_renderers
    • 2、#pragma exclude_renderers
  • 三、我们测试一下看看效果
    • 1、 我当前处于 DX11 平台,我们修改为只渲染 IOS/Mac 平台(Metal)
    • 2、我们剔除一些平台,看看剔除后,编译的代码有没有减少
  • 四、编译目标渲染器优化的好处


前言

Unity中Shader编译到目标渲染器


一、Unity在打包时,会把Shader编译成不同平台对应的代码

在这里插入图片描述

我们在状态栏,可以看见我们目前所处于的目标平台

在这里插入图片描述


二、在Unity中,怎么指定目标平台

1、#pragma only_renderers

#pragma only_renderers
仅编译指定平台的Shader

  1. d3d11 - Direct3D 11/12
  2. glcore - OpenGL 3.x/4.x
  3. gles - OpenGL ES 2.0
  4. gles3 - OpenGL ES 3.x
  5. metal - iOS/Mac Metal
  6. vulkan - Vulkan
  7. d3d11_9x - Direct3D 11 9.x功能级别,通常在WSA平台上使用
  8. xboxone - Xbox One
  9. ps4 - PlayStation 4
  10. psp2 - PlayStation Vita
  11. n3ds - Nintendo 3DS
  12. wiiu - Nintendo Wii U

2、#pragma exclude_renderers

剔除掉指定平台的相关代码

  1. d3d11 - Direct3D 11/12
  2. glcore - OpenGL 3.x/4.x
  3. gles - OpenGL ES 2.0
  4. gles3 - OpenGL ES 3.x
  5. metal - iOS/Mac Metal
  6. vulkan - Vulkan
  7. d3d11_9x - Direct3D 11 9.x功能级别,通常在WSA平台上使用
  8. xboxone - Xbox One
  9. ps4 - PlayStation 4
  10. psp2 - PlayStation Vita
  11. n3ds - Nintendo 3DS
  12. wiiu - Nintendo Wii U

三、我们测试一下看看效果

1、 我当前处于 DX11 平台,我们修改为只渲染 IOS/Mac 平台(Metal)

//仅编译指定目标平台
#pragma only_renderers metal

我们会发现,Unity渲染丢失了,呈现洋葱紫
在这里插入图片描述

2、我们剔除一些平台,看看剔除后,编译的代码有没有减少

剔除前(945行):
在这里插入图片描述

剔除gles后(774行):

在这里插入图片描述


四、编译目标渲染器优化的好处

这样优化,并不能提高游戏在运行时的性能,但是可以节省打包编译时的时间,和编译文件所占的存储空间。

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

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

相关文章

C语言重点突破(六)文件操作

本章重点 1. 为什么使用文件 2. 什么是文件 3. 文件的打开和关闭 4. 文件的顺序读写 5. 文件的随机读写 6. 文本文件和二进制文件 7. 文件读取结束的判定 8. 文件缓冲区 1. 为什么使用文件 我们在前面的文章介绍了通讯录的程序,当通讯录运行起来的时候&#xff0c…

Mysql深入——7

count(*)为什么这么慢??? 在不同的MySQL引擎中,count(*)有不同的实现方式,MyISAM引擎将一个表的总行存在了磁盘上,需要的时候会直接返回,但InnoD…

ubuntu终端代理配置

ubuntu浏览器的无需手动设置,主要解决在终端中的配置问题,按照下面配置后可能会ping不通一些ip,但wget/git都是可以的,具体原因以后再分析 查找端口 首先要找到自己代理对应的HTTP端口,以QV2ray软件作为示例,我为8889 手动配置 # 配置系统proxy export http_proxy=1…

新版本svn使用gpg-agent存储密码

问题 自从开始使用debian11,应该是subversion版本的升级,导致不可以存储明文的密码,导致每次都要输入密码,很恼人。 Debian版本 ➜ .gnupg lsb_release -a No LSB modules are available. Distributor ID: Debian Description…

Java Swing管理系统万能模板 课程设计素材

JavaSwing管理系统万能模板 视频教程: 【课程设计】2小时学会JavaSwing课程设计-万能模板-图书管理系统-[你的课程我设计] 万能模板是用Java Swing开发的,包含管理系统常用的多角色登录、数据查询、添加、修改、删除。常用的管理系统都可以使用万能模板…

MySQL与其他数据库产品的比较,优势在哪里?

作为数据库管理领域的博主作家,我深知数据库在软件开发和数据管理中的重要性。在当今众多的数据库产品中,MySQL作为一种流行的开源关系型数据库管理系统,具有许多优势和特点。下面,我将通过对与其他数据库产品的比较以及MySQL的优…

原来字节跳动这么容易就能进····

“字节是大企业,是不是很难进去啊?” “在字节做软件测试,能得到很好的发展吗? 一进去就有12.5K,其实也没有想的那么难” 直到现在,心情都还是无比激动! 本人211非科班,之前在字节…

Redis 如何批量删除指定前缀的Key

批量删除指定前缀的Key有两中方法,一种是借助 redis-cli,另一种是通过 SCAN 命令来遍历所有匹配前缀的 key,并使用 DEL 命令逐个删除它们。 redis-cli 使用 Redis 自带的 redis-cli 命令行工具,你可以通过以下方式批量删除指定前…

CHEM 14 not know

Goals of this lab: • Create and use a calibration curve for the absorbance/concentration relationship for crystal violet • Evaluate absorbance versus time measurements to determine the order of a reaction • Analyze graphs of data to determine best linea…

TiDB专题---1、TiDB简介和特性

什么是TiDB TiDB 是一个分布式 NewSQL 数据库,它支持水平弹性扩展、ACID 事务、标准 SQL、MySQL 语法和 MySQL 协议,具有数据强一致的高可用特性,是一个不仅适合 OLTP 场景还适合 OLAP 场景的混合数据库。 TiDB 是 PingCAP 公司自主设计、研发…

一些sql记录

1.日期加减/只保留数字 select * from HDDA_J207_WS_3_FILE a inner join( select id, (ADD_MONTHS(formatrq, formatbmqx1))as gqrq, formatrq, formatbmqx1 from ( select id, (case when formatbmqx like %年% then REGEXP_REPLACE(formatbmqx, [^0-9], )* 12 else REGEXP_…

土壤养分分析仪:精准农业,从“土”开始

在农业生产中,土壤的质量是决定农作物产量和品质的关键因素。然而,传统的土壤检测方法耗时费力,且结果往往不够准确。随着科技的发展,土壤养分分析仪为现代农业带来了新的可能。 土壤养分分析仪是一种专门用于测量土壤中各种养分含…

C++和Python混合编程在数据采集程序中的应用

目录 一、引言 二、C和Python的特性及其在数据采集程序中的应用 1、C的特性及其在数据采集程序中的应用 2、Python的特性及其在数据采集程序中的应用 三、C和Python混合编程在数据采集程序中的实现方法 四、混合编程的优缺点以及未来发展趋势 五、代码示例 六、结论 一…

c语言通过前序遍历构建二叉树

前言: 在链式二叉树中,我们一般都是通过一个建立好的二叉树从而算出他的前序遍历,那么如何通过一个前序遍历来创建一个二叉树呢,本文将详细解读前序遍历每一个步骤是如何创建二叉树的。 1、分析前序遍历,构建出二叉树…

智慧垃圾分拣站:科技改变城市环境,创造更美好的未来

随着城市化进程的不断加快,垃圾处理问题日益凸显。为了更好地解决垃圾分类问题,越来越多的城市开始推广智慧垃圾分拣站,利用创新科技实现高效垃圾分类处理。 山海鲸使用三维建模技术,建立了一个智慧垃圾分拣站数字孪生模型&#x…

外包干了5个月,技术退步明显.......

先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…

pip安装、更新、卸载

目录 一、安装pip1. ensurepip2. get-pip.py2.1 下载get-pip.py2.2 pip安装2.3 检查pip版本 二、更新pip三、卸载pip 参考https://pip.pypa.io/en/stable/installation/ 一、安装pip 1. ensurepip python -m ensurepip --upgrade2. get-pip.py 2.1 下载get-pip.py 终端执行…

【算法题解】LeetCode169.多数元素——摩尔投票算法

169. 多数元素 题干 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入: nums [3,2,3] 输…

每天一点python——day81

#每天一点Python——81 #递归函数: 递归函数: 一个函数在该函数体内调用了该函数本身,这个函数称为递归函数 【释:我自己调用自己的函数】 递归函数的组成部分: 递归调用与递归终止条件。 【一定有一个跳出循环的终止条…

解决WPS拖动整行的操作

如上图,想要把第4行的整行内容,平移到第1行。 1.选中第4行的整行 2.鼠标出现如图的样子时,按住鼠标左键,上移到第1行位置后,放开左键即可。