当前位置: 首页 > article >正文

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.kler.cn/a/152558.html

相关文章:

  • Vue3-数据交互请求工具设计
  • linux审计工具aureport
  • 一个没正常处理tcp对端关闭的bug
  • 【Linux】快速上手自动化构建工具make/makefile
  • 大势鹰眼纵横股份:应急现场实时三维建模解决方案及应用
  • STM32---时钟树
  • 【论文阅读笔记】清单
  • SpringBoot学习笔记-实现微服务:匹配系统(中)
  • PTA-6-46 手机接口-适配器模式
  • 如何计算数据泄露的成本
  • python使用sox对指定路径下的音频进行重采样
  • 【Java】集合 之 使用 Map
  • 新时代物联网区块链如何链接底层商业?传统商家如何利用区块链实现转型?
  • python执行shell
  • ClassNotFoundException: org.apache.hive.spark.client.Job
  • 读取ini配置文件----c++
  • arm-eabi-gcc 和 arm-none-eabi-gcc 都是基于 GCC 的交叉编译器
  • 【android开发-01】android中toast的用法介绍
  • web项目添加防调试
  • 腾讯云年末感恩回馈:2核2G4M云服务器118元1年,新老用户同享!