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

Unity 贴图拷贝与性能对比

Cooooopy

  • 🌳GetPixels
  • 🌳GetRawTextureData
  • 🌳RenderTexture
  • 🌳Graphics.CopyTexture
  • 🌭性能对比

🌳GetPixels

 var pixels = tex.GetPixels();tex2.SetPixels(pixels);tex2.Apply();

🌳GetRawTextureData

 var pixels = tex.GetRawTextureData();tex2.LoadRawTextureData(pixels);tex2.Apply();

🌳RenderTexture

public static void textureToTexture2D(Texture texture, Texture2D texture2D)
{if (texture == null)throw new ArgumentNullException("texture");if (texture2D == null)throw new ArgumentNullException("texture2D");if (texture.width != texture2D.width || texture.height != texture2D.height)throw new ArgumentException("texture and texture2D need to be the same size.");RenderTexture prevRT = RenderTexture.active;if (texture is RenderTexture){RenderTexture.active = (RenderTexture)texture;texture2D.ReadPixels(new UnityEngine.Rect(0f, 0f, texture.width, texture.height), 0, 0, false);texture2D.Apply(false, false);}else{RenderTexture tempRT = RenderTexture.GetTemporary(texture.width, texture.height, 0, RenderTextureFormat.ARGB32);Graphics.Blit(texture, tempRT);RenderTexture.active = tempRT;texture2D.ReadPixels(new UnityEngine.Rect(0f, 0f, texture.width, texture.height), 0, 0, false);texture2D.Apply(false, false);RenderTexture.ReleaseTemporary(tempRT);}RenderTexture.active = prevRT;
}

🌳Graphics.CopyTexture

不需要apply!!!

Graphics.CopyTexture(tex1, tex2);

🌭性能对比

在测试环境每帧调用 把Texture2D拷贝到另一张Texture2D上。

Methodcpu (基于已有工程测试,只改变拷贝方法)
GetPixels20.3ms
RenderTexture7.9ms
GetRawTextureData8.8ms
Graphics.CopyTexture5.2ms

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python中的`while`循环:探索无限可能
  • 《深入理解 C++虚函数:开启多态之门的关键》
  • 双登集团IPO:铅酸电池业务仍为重心,暴露了成长天花板?
  • AD7606芯片驱动-FPGA实现
  • 打卡50天------图论
  • 【给女朋友讲C++】C++的调试之gdb
  • python socket 发生UDP 和 UDPServer接受UDP实例
  • 快速绘制思维导图:高效思考与信息整理的利器
  • LeetCode 热题 100 回顾
  • Qt详解QUrl
  • MS sqlserver备份软件 SQLBackupAndFTP
  • 开源模型应用落地-LlamaIndex学习之旅-LLMs-集成OpenAI(一)
  • Pictory AI——博客、文章等内容转换为视频,自动适配动态画面和字幕
  • 【STM32 Blue Pill编程】-UAR数据接收与发送(中断模式)
  • 力扣52-最大子序和(java详细题解)
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • create-react-app项目添加less配置
  • flask接收请求并推入栈
  • IOS评论框不贴底(ios12新bug)
  • JS字符串转数字方法总结
  • Laravel 菜鸟晋级之路
  • Linux链接文件
  • Linux下的乱码问题
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Spring Boot快速入门(一):Hello Spring Boot
  • Spring-boot 启动时碰到的错误
  • zookeeper系列(七)实战分布式命名服务
  • 搞机器学习要哪些技能
  • 经典排序算法及其 Java 实现
  • 区块链将重新定义世界
  • 设计模式(12)迭代器模式(讲解+应用)
  • 数据仓库的几种建模方法
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 硬币翻转问题,区间操作
  • MyCAT水平分库
  • 阿里云API、SDK和CLI应用实践方案
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • ​补​充​经​纬​恒​润​一​面​
  • (06)金属布线——为半导体注入生命的连接
  • (2/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (Java入门)抽象类,接口,内部类
  • (二) 初入MySQL 【数据库管理】
  • (二)linux使用docker容器运行mysql
  • (翻译)terry crowley: 写给程序员
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)计算机毕业设计SSM保险客户管理系统
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (六)vue-router+UI组件库
  • (数据结构)顺序表的定义
  • (五)关系数据库标准语言SQL
  • (转)菜鸟学数据库(三)——存储过程
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包