用Compute Shader处理图像数据后在安卓机上不能正常显示渲染纹理

1)用Compute Shader处理图像数据后在安卓机上不能正常显示渲染纹理
2)折叠屏适配问题
3)Prefab对DLL中脚本的引用丢失
4)如何优化Unity VolumeManager中的ReplaceData


这是第378篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

Shader

Q:我用Compute Shader来做2D游戏图像数据的处理工作。

这是一款老2D游戏,客户端资源中大量图像都是以UShort[]数组存储的。读取后数组中的一个UShort值对应一个像素颜色值,通过写一个Compute Shader,将这些像素颜色值写到RenderTexture上,然后用Canvas+RawImage显示在主摄像机中。

在编辑器中已经正常运行了,每帧渲染耗时8-10ms(因为换装游戏的关系,需要对颜色值做很多叠加计算等处理)。

我打包出APK包,在安卓手机真机上却无法像在编辑器里一样显示图像。

在安卓手机运行时,打Log检测:

SystemInfo.supportsComputeShaders

安卓真机系统是支持这个Compute Shader的。

用FrameDebugger查看时,在编辑器里:

可以看到运行了Compute Shader,而且显示了这个Compute Shader的名称:XImageComputeShader。

上图第二红框中就是渲染出的RenderTexture图像内容。通过绑定RawImage,在游戏画面中可以正常显示。

但在安卓机里,看不到运行Compute Shader的地方,而RenderTexture的图像内容全部为空。

而游戏画面中,也是空白内容,没有图像。请教各位大佬,问题可能出在哪里?

另外,我用了华佗热更,再用IL2CPP,是否会因为某些原因被裁剪掉?如何验证修复呢?

针对以上问题,有经验的朋友欢迎转至社区交流分享:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


UI

Q:请问大家有处理过折叠屏的适配吗?有没有好的思路?

目前项目直接SetResolution后,无法自适应折叠屏开关变化;但又不想一直Update监听屏幕的尺寸。请问大家还有更好的思路吗?

针对以上问题,有经验的朋友欢迎转至社区交流分享:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


Prefab

Q:开发时,不希望策划看到源码,于是将源码替换成DLL,但是这样挂在Prefab上的脚本引用会丢失,请问怎么解决?

A1:写了个Demo测试了下,如果工程里的DLL对应GUID维持不变(对应Meta文件不变),DLL重新构建并导入替换,并不会影响Prefab上挂接的DLL里的Mono脚本。

感谢JGIbhXxT@UWA问答社区提供了回答

A2:思路可以参考该以下工具,实际使用需要修改一下源码。

DLLSwitcher | 实用工具 工具 | Unity Asset Store
DLLSwitcher | Utilities Tools | Unity Asset Store

感谢草莓声明@UWA问答社区提供了回答


Script

Q:请问Unity VolumeManager中ReplaceData怎么优化?为什么每帧都会更新所有的参数?

A:优化方式是减少项目中VolumeComponent,有一些没有用到的就不需要加入到type[]中了,本身CPU耗时就是For循环所有的参数和VolumeComponent开销比较大。

感谢菜鸟@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com

 

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

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

相关文章

css的box-shadow详解

CSS的box-shadow属性用于在元素框上添加阴影效果。它可以为元素提供外阴影或内阴影,并且可以控制阴影的颜色、偏移距离、模糊半径以及扩展半径。 box-shadow属性的基本语法如下: box-shadow: h-shadow v-shadow blur spread color inset;下面是各个参数…

超快的 AI 实时语音转文字,比 OpenAI 的 Whisper 快4倍 -- 开源项目 Faster Whisper

faster-whisper 这个项目是基于 OpenAI whisper 的模型,在上面的一个重写。 使用的是 CTranslate2 的这样的一个库,CTranslate2 是用于 Transformer 模型的一个快速推理引擎。 在相同精度的情况下,faster-whisper 的速度比 OpenAI whisper …

web开发必备之跨域

1.什么是跨域? 当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域 举个例子或许比较生动 当前所在页面请求的页面是否同域原因https://www.csdn.net/https://blog.csdn.net/weixin_56703682√同源(同域名同协议同端口&#x…

【网站项目】294火车票订票系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

EI Scopus双检索| 2024年智能交通与未来出行国际会议(CSTFM 2024)

会议简介 Brief Introduction 2024年智能交通与未来出行国际会议(CSTFM 2024) 会议时间:2024年10月18日-20日 召开地点:中国杭州 大会官网:CSTFM 2024-2024 International Conference on Smart Transportation and Future Mobility(CSTFM 202…

解决修改数据后,前端页面不显示问题

如图,修改数据后,在前端页面不显示的问题,可能是因为缓存问题 解决方案 以为Edge浏览器为例 打开设置左边栏点击隐私,搜索和服务选择清除 Internet Explorer 的浏览数据点击删除,重新启动前端界面即可。

大数据专家3个月自学计划

本人有6年Java开发经验,目前在岗中,之前通过视频教学自学过Hadoop生态技术、flume、kafka、Redis、hive、spark、flink、sqoop、azkaban、ozie、habse、presto、kylin等大数据相关技术,希望利用3个月时间复习,成为大数据专家。以下…

3.18作业

一、网络属性(getsockopt、setsockopt) 1> 由于在网络通信过程中,套接字是服务于各个层的,但是,每一层中对套接字选项都有一定的权限控制,例如,应用层中对端口号快速重用的限制 2> 如何…

日志收集监控告警平台的选型思考

目前市面上比较常见的日志收集系统有:ELK,Grafana Loki,OpenObserve,SigNoz,Graylog ,Syslog-ng,Highlight,接下来我会对这几个一一做分析。 1. ELK ELK 是 Elasticsearch、Logsta…

Linux系统及操作 (10)

Linux系统及操作 (09) [ ping ] [ ping -c ]指定数量 [ ping -c5 192.168.88.2 ] 指定五次交互 DNS服务器 Domain Name System 域名系统 用于实现域名和IP地址相互映射的一个分布式数据库 将域名翻译成可由计算机识别的IP地址,方便用户间的互相访问 计算机无法直接识别**[…

vue2 自定义 v-model (model选项的使用)

效果预览 model 选项的语法 每个组件上只能有一个 v-model。v-model 默认会占用名为 value 的 prop 和名为 input 的事件,即 model 选项的默认值为 model: {prop: "value",event: "input",},通过修改 model 选项,即可自定义v-model …

php 各种魔术函数的触发条件

2024.3.20 1、__construct() __construct() 用于在创建对象时自动触发 当使用 new 关键字实例化一个类时&#xff0c;会自动调用该类的 __construct() 方法 <?php class MyClass {public function __construct() {echo "已触发 __construct 一次";} }$obj new …

js实现旋转矩形,圆形交集并集差集运算并使用canvas展示

region 使用0代表空 1代表有 复制到codepen执行 // 创建三个 Canvas 元素 const intersectionCanvas document.createElement(canvas); const unionCanvas document.createElement(canvas); const differenceCanvas document.createElement(canvas);intersectionCanvas.wid…

Springboot集成Rabbitmq

Springboot集成Rabbitmq实现请求异步处理 一、Docker部署rabbitmq 1. docker pull rabbitmq:3.7.8rabbitmq为需要拉取的镜像名称&#xff0c;3.7.8为版本号 2. docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:3.7.8运行拉取到的镜像文件&#xff1b;-d…

本人用编译

板子方 修改ip&#xff08;保证板子和主机在同一个网段&#xff09; mount -t nfs -o rw,nolock,nfsvers3 192.168.1.200:/home/violet/nfs get/ 互通的文件在~目录下get文件内 电脑方 使用arm-linux-gnueabihf-gcc 编译

外部提供控制程序

外部提供控制程序 文件编号&#xff1a;XXX 1、目的和适用范围 规范在研发与生产过程中所涉及到的采购、外包行为方式&#xff0c;对外部提供过程和产品进行控制&#xff0c;评估、选择及控制外部提供方&#xff0c;并对采购活动及外包过程进行有效地控制&#xff0c;确保外部…

性能优化(CPU优化技术)ARM Neon 详解

原文来自ARM neon详解 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础教程 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xff1a;学习的本质就是极致重…

AI新工具(20240322) 免费试用Gemini Pro 1.5;先进的AI软件工程师Devika;人形机器人Apptronik给你打果汁

✨ 1: Gemini Pro 1.5 免费试用Gemini Pro 1.5 Gemini 1.5 Pro是Gemini系列模型的最新版本&#xff0c;是一种计算高效的多模态混合专家&#xff08;MoE&#xff09;模型。它能够从数百万个上下文Token中提取和推理细粒度信息&#xff0c;包括多个长文档和数小时的视频、音频…

ASP.NET控件

目录 TextBox 控件 Button 控件 HyperLink 控件 CheckBox 控件 RadioButton 控件 ListBox 控件 DropDownList 控件 Repeater 控件 DataList 控件 GridView 控件 RequiredFieldValidator 控件 RangeValidator 控件 CompareValidator 控件 RegularExpressionValidat…

C++读取文本文件中的汉字出现乱码的原因及解决措施

大家好&#xff01; 作者今天在写代码时遇到了读取文本文件中的汉字时出现乱码的情况&#xff0c;所以本文介绍Windows操作系统中&#xff0c;C读取文本文件中的汉字出现乱码情况原因及解决措施。 下面代码可以读取Stu.txt中的内容并输出&#xff1a; ifstream ifs; ifs.open(…