Unity下tga和png格式图片打包成AB包大小和加载速度测试

unity 纹理压缩格式‘_游戏制作行业为什么使用TGA格式的贴图而不使用PNG格式?... PNG32也带有alpha通道,并且支持无损压缩,压缩率更高,存储体积更小,为什么游戏行业更多的是使用TGA格式存储贴图。大家的回答槽点太多了,我是来辟谣的:TLDR:只使用 TGA 不用其它格式的,只有一个原因,懒。具体解释下大家找的各种理由:理由1:PNG 的 alpha channel 会被优化掉,所以用不了?这个根本不是什么问题,大量的游戏用 PNG 存储纹理,有的游戏不用 PN... 阅读详情

测试素材

测试素材,一张tga格式,一张png格式,他们的图像尺寸一样都是8K图。
两张图在AssetBundles里显示
在这里插入图片描述
Tga格式的图明显大很多,我们打包成ab包看看。

在PC

在这里插入图片描述

打包后看,明显大小一样,我们进行ab包加载,看下时间。
在这里插入图片描述
在这里插入图片描述
两次加载时间也是基本一样的。

在Android

打包android的ASTC6x6格式,我们看到大小也是一样的,比PC下的默认格式小一半。
在这里插入图片描述
加载时间在PC上测试,如下图:
在这里插入图片描述
在小米12上加载测试,如图:
在这里插入图片描述
我们看到tga的加载快,防止干扰,我们连续加载3次看看。

多次加载测试

在PC上:
在这里插入图片描述
在小米上:
在这里插入图片描述
这次我们看到有时快有时慢,应该是安卓内部的读取周期问题(这个不确定)
大致的读取时间是一样的。

加载脚本:

using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.Networking;

public static class AsyncExtensionTask
{
    public static TaskAwaiter GetAwaiter(this AsyncOperation asyncOp)
    {
        var tcs = new TaskCompletionSource<object>();
        if (asyncOp != null) asyncOp.completed += obj => tcs?.SetResult(null);   //报空处理
        return ((Task)tcs.Task).GetAwaiter();
    }
}

public class loadtest : MonoBehaviour
{
    
    // Start is called before the first frame update
    async void Start()
    {
        await Task.Delay(3000);
        await picLoadAsync(1,"pngbig.p");
        await picLoadAsync(1,"tgabig.p");
        await picLoadAsync(2,"pngbig.p");
        await picLoadAsync(2,"tgabig.p");
        await picLoadAsync(3,"pngbig.p");
        await picLoadAsync(3,"tgabig.p");
    }

    private async Task picLoadAsync(int no,string path)
    {

        float btime = Time.realtimeSinceStartup;
        string localurl = Application.streamingAssetsPath;
        string url = string.Format("{0}/{1}", localurl, path);
       
        UnityWebRequest www;

        www = UnityWebRequest.Get(url);
        await www.SendWebRequest();

        if (www.result == UnityWebRequest.Result.Success)
        {
#if DEBUG
            Debug.Log("<color=#6780AB>taskloader本地下载成功:</color>" + url);
#endif
            AssetBundleCreateRequest abRequest = AssetBundle.LoadFromMemoryAsync(www.downloadHandler.data);

            while (!abRequest.isDone)
            {
                await Task.Delay(100);
            }
            AssetBundle ab = abRequest.assetBundle;

            float sub = Time.realtimeSinceStartup - btime;
            Debug.Log("加载文件,第"+ no+"次," + path + ",time:" + sub);

            ab.Unload(true);
            www.Dispose();
        }
        else
        {
#if DEBUG
            Debug.Log("TaskLoader 本地下载asset错误:" + www.error + "," + url);
#endif
        }
        
    }
}

总结

Unity下打包的图片打包格式,初步看来和格式已经没关系了,和图的分辨率大小密切相关。
不知道是否严谨。
欢迎讨论。

TGA文件格式分析 分析TGA文件 阅读详情

相关推荐

Unity 计算图片真实存储大小(Preview视图)

一张图片导入Unity,真实大小是怎么计算的,记录一下。图片中有分辨率,压缩格式,和大小,这里分别解释一下。 分辨率 这个应该都知道怎么回事,水平和垂直方向各有多少个像素。这里说一点,看到上方的Max Size 这个设置,指的是这个图片最大的分辨率是多少, 例如2048:2048x2048,这个值会影响图片大小,如果图片原始大小为4096x2048,那么这张图片分辨率就会被压缩到2048*1024,使用最大分辨率等比例缩放。 当然如果原始图小于设置的值,例如1000x1000,那么这张图片就不会

Sevol_Y 8584

Unity 图片相关

Windows支持的标准图片格式,特点是几乎不进行压缩,占磁盘空间大。其中Unity最常用的图片格式是:JPG、PNG、TGA三种格式。其他还支持:EXR、GIF、HDR、IFF、PICT等等。纹理类型、纹理形状、高级设置、平铺拉伸、平台设置、预览窗口。之后对这六部分进行学习~

Go_Accepted的博客 2485

Unity资源管理与APK逆向提取实战:从Addressable到AssetStudio全链路解析

在游戏开发与工程实践中,资源动态加载与热更新是核心技术需求,其原理基于将资源从主包分离并按需加载,以优化内存与包体大小。这项技术的核心价值在于支持应用迭代、提升用户体验,并广泛应用于手游、大型应用等需要资源分发的场景。通过AssetBundle和Addressable Assets System等方案,开发者可以实现高效的资源管理。而在APK逆向分析领域,借助AssetStudio等工具,可以提取并分析打包后的Unity资源,这对于技术学习、竞品分析和故障排查具有重要意义。本文结合资源管理与逆向提取,深入探

weixin_34377919的博客 385

Unity核心1——图片导入与图片设置

Non-Power of 2:如果纹理尺寸非 2 的幂该如何处理None:纹理尺寸大小保持不变To nearest:将纹理缩放到最接近 2 的幂的大小(PVRTC 格式要求纹理必须为正方形)To larger:将纹理缩放到最大尺寸大小值的 2 的幂的大小To smaller:将纹理缩放到最小尺寸大小值的 2 的幂的大小Read / Write Enabled:启用可以使用 Unity 中提供的一些方法从纹理中获取到数据,会占用额外内存Streaming Mipmaps:启用则可以使用纹理串流。

weixin_53163894的博客 1万+

2024广东省职业技能大赛云计算——集群部署GitLab

题目是这样的:在Kubernetes集群中新建命名空间gitlab-ci,将GitLab部署到该命名空间下,Deployment和Service名称均为gitlab,以NodePort方式将80端口对外暴露为30880,设置GitLab服务root用户的密码为admin@123,将项目包demo-2048.tar.gz导入到GitLab中并命名为demo-2048。GitLab是一个功能强大且灵活的 DevOps 平台,为开发团队和企业提供了从代码管理到持续集成、交付和部署的一整套解决方案。

kuuuugua的博客 4396

UFS 3.1协议分析(第一至四章) -- UFS概述

Contents协议规范规范参考术语和定义简单概述通用特性接口特性功能特性 协议规范     UFS3.1协议规定了UFS电气接口和存储器件的特性以及系统架构。 特性:低功耗、高数据吞吐量、低电磁干扰、大容量存储器子系统效率的优化 电气接口:使用基于MIPI M-PHY的高级差分接口;M-PHY作为物理层,MIPI UniPro作为链路层,二者结合形成UFS接口的互联。 架构模型:参考 INCITS T10(SCSI) SAM 标准,命令协议基于 INCITS T1

Frank_sample的专栏 1万+

Unity AssetBundle打包配置深度解析:策略、优化与实战管理

在Unity游戏开发中,资源管理是决定项目性能与可维护性的核心技术环节。其核心原理在于通过合理的资源分包与依赖管理,实现运行时的高效加载与内存控制。这项技术的核心价值在于,它能显著优化包体大小、提升加载速度,并为热更新提供基础支持,是构建中大型、长线运营项目的工程基石。其典型应用场景包括游戏资源动态加载、多平台适配以及内容热更新。本文将聚焦于Unity AssetBundle的配置策略,深入探讨资源粒度划分、依赖关系优化以及自动化构建管线等实战技巧,并结合内存生命周期管理与高级调试方法,帮助开发者构建稳健的

weixin_34050005的博客 327

Windows 11下manage-bde命令实战:BitLocker锁了别慌,手把手教你用命令行找回数据

本文详细介绍了在Windows 11系统下使用manage-bde命令解锁BitLocker加密驱动器的实战方法。通过命令行诊断、恢复密钥获取、解锁流程演示及高级故障排除,帮助用户在系统锁定后快速找回数据,特别适合IT技术人员和遇到紧急情况的用户。

weixin_30902251的博客 331

Unity中的图片压缩格式选择

图片格式 不同格式的本质区别在于压缩算法不一样,结果图片大小,还原度也各不相同。 常用图片格式有Png,Jpg,Tga,Psd等。平时主要用Png,Jpg。 Jpg是有损压缩不透明,Png是无损压缩有透明。 简单纹理格式 Png等图片压缩格式无法直接被GPU解码,需要先解压,便会造成消耗。 不论导入的图片是什么格式,Unity都会将其转换成纹理格式,便于GPU读取。(应该算解压成原始格式吧) 有R...

lizujun123的博客 2666

【WorkBuddy专栏27】WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

WorkBuddy 和 CodeBuddy 到底什么关系——一篇文章终结所有混淆

AI人人懂 2745

解锁激光加工密码:功率、频率、脉宽、占空比全解析

激光加工利用高能量激光束实现材料加工,具有无接触、高效率等特点。其核心参数包括功率(决定能量输出)、频率(控制脉冲重复)、脉宽(调节能量作用时间)和占空比(调控工作周期),这些参数相互协同影响加工效果。针对不同材料需采用差异化参数组合:金属材料需较高功率,塑料需低功率防过热,陶瓷需高频短脉宽减少热应力。实际操作中应通过小范围测试逐步优化参数,并注意解决烧损、切割不平整等常见问题。合理调节这些参数可实现高质量、高效率的激光加工。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 617

Unity 下获取tga,png,jpg的raw rgbadata数据

目前得出的结论是,暂时不可行,如果有其他方案,可以帮忙留言下。 之前自己做的有几个检查贴图原生图的一些问题,比如包围盒过大,或者透明区域过大,之类的检测算法,但是是直接用Python的PIL来做的。C#调用python的方式,但是这种方案效率比较低。所以考虑如何将python转成C#,但是调研了下,发现不可行。记录下 1,Unity下C#是裁剪过的,不支持Bitmap,Bitmap之前是在System.Drawing里面。Unity里不支持System.Drawing这个库。 2,Unity下都是通过A

wangqing008的专栏 1700

GLM-4本地部署的实战教程

本文主要介绍了GLM-4-9B本地部署的实战教程,希望对学习和使用大模型的同学们有所帮助。 文章目录 1. 前言 2. 配置环境 2.1 安装虚拟环境 2.2 安装依赖库 2.3 下载模型文件 3. 运行glm-4-9b-chat

herosunly的博客 25万+

Unity纹理优化:缩小包体

apk包体太大,经查证后发现纹理占比很高(82.8%),做出了纹理相关的优化

a0_67的博客 2779

RK3568平台(USB篇)USB基础知识

现象:把USB设备比如Android手机接到PC答1:是USB控制器,是USB控制器内嵌的root hub.答2. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone"提示你安装的是"设备驱动程序"。USB总线驱动程序负责:识别USB设备, 给USB设备找到对应的驱动程序。答3. PC的USB口内部,D-和D+接有15K的下拉电阻,未接USB设备时为低电平USB设备的USB口内部,D-或D+接有1.5K的上拉电阻;

weixin_49303682的博客 1658

强化学习从基础到进阶-案例与实践[4]:深度Q网络-DQN、double DQN、经验回放、rainbow、分布式DQN

强化学习从基础到进阶-案例与实践[4]:深度Q网络-DQN、double DQN、经验回放、rainbow、分布式DQN

丨汀、的博客 2067

关于Unity中后缀名PNG/TGA透明贴图导入粒子材质球后生成粒子依旧保留黑底的处理办法

unity导入材质球后出现黑底和Plane上材质的解决办法

qq_44684405的博客 1061

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

[Unity]将所有 TGA、TIFF、PSD 和 BMP(可自定义)纹理转换为 PNG,以减小项目大小,而不会在 Unity 中造成任何质量损失

只需在“项目”窗口中创建一个名为“编辑器”的文件夹,然后在其中添加此脚本即可。然后,打开窗口-Convert Textures to PNG,配置参数并点击“Convert to PNG!只要禁用“Keep Original Files”或将项目的资源序列化模式设置为“强制文本”,就会保留对转换后的纹理的引用。就我而言,它已将某些 3D 资源的总文件大小从 1.08 GB 减少到 510 MB。

主攻工具化、AI 辅助开发、团队效率提升与产品落地。 8116

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

unity 贴图格式及压缩后的图片像素比较

unity支持的贴图格式 1、png 是无损压缩  占用内存小  支持透明 2、jpg 是有损压缩  占用内存小  不支持透明 3、tga 是无损压缩  占用内存大  支持透明 4、dds 是无损压缩  占用内存最小  支持透明    但dds不支持IOS   图片压缩后的像素比较 PC端 DXT1: jpg 占用内存小(RGB) DXT5: png (RGBA )   IO...

qq_26900671的博客 3023

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

如何查看Unity打包生成的ab文件

问题来源于工作又回归到工作,当发现发布包里显示的资源和预期不符时便会怀疑是哪个步骤出了问题,通常是一些人为的失误,但是要验证失误在哪里需要一步步探索,其中有一步就是要看看最后打出来的包里是不是我们预想的文件,但不管是Android包、IOS包还是Windows包,一些图片、视频、音频等资源都被转化成了.ab文件,无法直接打开,这时就要借助工具来查看其中的内容了,查看的途径可能有许多,我这里只展示一种我觉得最方便的途径,也算是记录一下,方便日后查找...

AlbertS Home of Technology 5781

图片各种格式区别介绍:

其中N是整个高度上的像素数,M是整个宽度上的像素数,3表示通道数,在这种情况下,我们有3个通道R,G和B。PNG支持透明图像的制作,透明图像在制作网页图像的时候有用,可以把图象背景设为透明,用网页本身的颜色信息来代替设为透明的色彩,这样可让图像和网页背景很和谐地融合在一起。这是Photoshop图像处理软件的专用文件格式,文件扩展名是.psd,可以支持图层、通道、蒙板和不同色彩模式的各种图像特征,是一种非压缩的原始文件保存格式。尽管我们看到的是这种格式的图像,但计算机以数字的形式存储图像。

weixin_45788237的博客 3276

Unity异步加载AB包

Unity异步加载AB包

iiiiiiimp的博客 1594

Unity AB包详解

图8为LZ4,加载速度较快,跟NoCompression速度差不多,第二次加载速度很快,暂时不清楚原因。图6为No Compression,加载速度是最快的,并且第二次加载速度很快,暂时不清楚原因。③LZ4:包体压缩中等,速度较快,速度跟No Compression差不多(推荐使用)图1中的model为41.6MB,依照3个选项分别打成3个包,如图2,图3,图4,图5。②LZMA:包体压缩到最小,但是解压速度最慢,加载的时候会加载整个包。图7为LZMA,加载速度最慢,第二次加载速度稍快。

Sator1的博客 1976

Unity中图片压缩格式

图片格式 1.不同格式的本质区别在于压缩算法不一样,导致图片加载到内存中占用的内存空间大小不一样。 2.常用图片格式有Png,Jpg,Tga,Psd等。平时主要用Png,Jpg。 3.Jpg是有损压缩不透明,Png是无损压缩有透明。 Untiy中的纹理 无论导入的图片是什么格式,Unity都会将其转换成纹理格式 从外部导入图片到Unity中,图片大小都会变大,就是因为Unity把图转化成了纹理格式 untiy中看大小变成了1M 单位换算 bit “位” byte 字节 1 Byte = 8

MMMeKey博客园 3653

分析一个图像格式文件(PNG与TGA)

分析图片 89 50 4E 47 0D 0A 1A 0A,是png文件署名域,表示这是一个png图片 00 00 00 0D,描述了IHDR的大小,十六进制的0D转成十进制就是13,所以在IHDR后13个字节是描述存储图像的基本信息。 图片的宽高:02 EE(750);02 E3(739) 检查: 正确 紧接着后面的4个字节是对IHDR的CRC校验码,即4D 83 80 14。 后面就是辅助数...

zhaly615的博客 1666

TGA格式文件转材质

另外说明一下,每一个部位有很多个tga文件,如胳膊的,暂时没搞清楚都是干嘛的,因这里只能用其中的一个文件做材质球的贴图,因此统一选取了basecolor后缀的tga文件。(当然一切的前提是有texture),翻了一下淘宝给的源文件,里面有一个叫Assets文件夹,内容如下图所示,最后把此材质,拖动到fbx模型的相应位置,记得点击Inspector属性中最下边的apply按钮,胳膊上的材质颜色立马出来了,效果如下,今天淘宝上买了一个美女的模型,是blender的源文件,上面说有fbx格式的。

weixin_44345862的博客 1900
上一篇: Unity用相机实现的镜子效果
下一篇: Unity把UGUI在WorldSpace模式下显示到相机最前方
Thinbug
博客等级 码龄22年 2万+粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Thinbug

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值