贴图、图集的处理

预过滤环境光贴图制作教程:第二步 - 生成环境贴图图集 本文提出了一种生成6级分辨率环境贴图图集(envAtlas)的方法,将立方体贴图转换为等矩形投影并处理HDR数据。关键技术包括:1)设计6级分辨率图集,既作距离相关的LOD又服务于粗糙度预过滤;2)采用RGBP编码压缩HDR数据;3)通过方向向量调整减少立方体贴图边缘接缝;4)使用UV扩展和视口控制确保各级别独立渲染。该方法在保持视觉质量的同时优化性能,为后续反射计算提供双重用途的多级贴图资源。 阅读详情

1、基本概念

     1)美术图片:jpg、png、位图

           纹理(Texture)“美术图片”反到unity目录中,它就是Texture类型

           贴图(Map)其功能就是把纹理通过 UV 坐标映射到3D 物体表面

           材质(Material)它是贴图+shader+一系列信息,是一个数据集;

                                         主要功能就是给渲染器提供数据和光照算法。

           图集(Atlas)不是图,而是个有UIAtlas组件的Prefab,它引用了一个材质(球),用于UI;

    2)NGUI中的UISprite和UITexture区别

          UISprite引用一个图集内的图片,是一个DrawCall,如果你做了一个图集是1024X1024的。此时你的界面上只用了图集中的一张很小的图,那么很抱歉1024X1024这张贴图都需要载入你的内存里面;

          UITexture没有图集的概念,只需要把图片挂上去就行了。这样内存里只会占用你这一张图的大小,内存虽然小了但是DrawCall就上去了,因为每一张UITexture是一次DrawCall

             那些重复性比较高的图片最好打成图集,而一些原画,或者背景图建议直接使用UITexture

2、贴图各种属性

       Read/Write可读可写:只有打开这个开关,才可以对贴图使用Texture2D.GetPixel,读取或改写贴图资源的像素,但这就需要系统在内存里保留一份贴图的拷贝,以供CPU访问

       Generate Mip Maps多重纹理格式:包含两张贴图,远的用小的贴图,近的用大的贴图。这样能减少传输给GPU中的数据和减少渲染,是牺牲内存换区CPU&GPU,但不能用于UI,因为它没有远近之分

       Occlusion Culling遮挡剔除:其实就是当某个物体在摄像机前被另外一个物体完全挡住的情况,挡住就不发送给GPU渲染,从而直接降低DRAW CALL。不过有些时候在CPU中计算其是否被挡住则会很耗计算,反而得不偿失

3、贴图的压缩

      1)必须符合以下条件才能压缩:图片的长宽为2的幂次方、没有透明通道、没有光照

      2)非GPU支持的纹理格式,需要经过CPU解码;而GPU支持的纹理格式,GPU直接解码和显示,GPU的解码有很多优化,随机访问、快速寻址和并行解码等,因此效率高得多

      3)在ios设备上,建议选择PVR格式。wp8和win8设备上,DXT格式。android设备,不透明贴图选择通用支持的ETC格式;而透明贴图,4大GPU厂商各自有自己的压缩格式,可以选择RGBA16

      4)贴图建议做成方形的,一般不要超过1024x1024,否则可能出现纹理丢失现象

      5)参考http://blog.sina.com.cn/s/blog_930ffa0b0102vass.html

4、图集的处理

      1)图集制作方式:方法1-NGUI; 方法2-代码:Texture2D.PackageTextures()这个API可以自动将你的几张贴图合并为一张大图

      2)那些重复性比较高的图片最好打成图集

5、优化建议

      1)如果你用U3D自带的SHADER,在表现不差的情况下选择Mobile或Unlit目录下的。它们更高效

      2)尽可能共用材质

      3)将不需要移动的物体设为Static,让引擎可以进行其批处理

      4)尽可能不用灯光,移动端优化可以采用用光照贴图(Lightmapping)去烘培一个静态的贴图,以代替每次的光照计算

      5)确保不要让不必要的贴图素材驻留内存

      6)降低贴图素材分辨率,前提是不影响我美术效果

      7)如果你需要通过脚本来控制单个材质属性,需要注意改变Renderer.material将会造成一份材质的拷贝。因此,你应该使用Renderer.sharedMaterial来保证材质的共享状态

6、优化算法


unity切割图集并且读取图集 此为unity切割和读取图集 阅读详情

相关推荐

饥荒Mod 开发(三):动画与贴图资源的高效处理

本文详细介绍了《饥荒》Mod开发中动画与贴图资源的高效处理方法。重点讲解了如何使用官方资源工具链,将PNG图片和Spriter动画源文件转换为游戏引擎可识别的格式,涵盖图片规格、自动编译流程、动画制作与代码关联等核心步骤,帮助开发者避免常见错误,提升Mod视觉内容开发效率。

weixin_29250573的博客 408

【Shader】图集UV错乱问题&支持MeshRenderer显示图集图片

shader 图片渲染问题 UV错乱

两水先木示的博客 4288

SketchUp 2021材质贴图全攻略:从‘导入图片’到‘投影贴图’,让你的模型告别‘塑料感’

本文详细介绍了SketchUp 2021中材质贴图的全套技术,从基础导入到高级投影贴图应用,帮助用户消除模型的'塑料感'。重点讲解了四色别针系统、圆柱体连续贴图、透明材质处理等专业技巧,并提供了Ruby脚本示例和工作流优化建议,是提升3D模型真实感的实用指南。

weixin_30908941的博客 490

Unity shader图集Atlas下的UV坐标归一化转换

unity中如果图片打入了图集中,在shader中取到的uv坐标默认是图集中的坐标,如果需要shader做一些类似流光的效果,需要转换成常用的0-1区间的归一化uv坐标,转换方法如下: 步骤一:C#中向shader中传入图片在图集中的Rect信息和Scale信息 Vector4 UVRect = UnityEngine.Sprites.DataUtility.GetOuterUV(spriteRenderer.sprite); Rect originRect = spriteRenderer...

yinfourever的专栏 4336

Materialize实战:从照片到无缝PBR贴图的全流程解析

本文详细解析了如何使用Materialize工具从照片生成高质量PBR贴图的全流程,包括法线图、AO图等关键贴图的生成技巧,以及实现无缝效果的高级方法。通过实战案例展示,Materialize能显著提升3D材质制作效率,是游戏开发和3D设计领域的强大工具。

wdx012345的博客 1007

Unity引擎C++层阴影贴图原理与实现详解

本文介绍了Unity中ShadowMap的实现原理。在Unity内置渲染管线中,ShadowMap是通过RenderTexture存储光源视角的深度信息,由Shader进行采样判断阴影遮挡。SRP(如URP/HDRP)提供了更灵活的ShadowMap管理方式,可通过源码查看相关类和方法。文章还展示了如何在Shader中采样ShadowMap,以及如何自定义ShadowMap的实现流程。总结指出Unity底层自动管理ShadowMap,开发者可通过RenderTexture和Camera组合实现自定义需求。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 395

Unity Shader(八)精灵图集(图片序列)动画效果

Shader "Custom/BasicDiffuse" { //属性 Properties { //主纹理贴图 _MainTex("_MainTex", 2D) = "white" {} //使用贴图的宽度 _TexWidth("Sheet Width",float) = 0.0 //使用纹理横向上的单元格数量 _CellAmount("Cell Amount",...

JPF29 2170

数字图像处理经典图集(全)

数字图像处理中常用到图片集,适合数字图像开发人员使用,比较全

Unity踩坑——使用shader修改图片效果

为了实现2D游戏一个需求,我需要对SpriteRenderer中的image做fill效果,因为SR的填充方式只有simple、tiled和sliced,所以考虑使用shader做修改。 可实现fill效果的shader很多,这里不贴代码了,主要是说明后续情况。后来的问题是,尝试将image合并成单一图集合批优化,但是这时候发现shader对图片的操作偏移了。 在网上找了很多资料,但是都没有用,只好自己通过git一个个提交去定位。经过多次定位后,发现直接用...

qq_25857847的博客 3753

[Shader]对NGUI的UISprite和UITexture进行裁剪

NGUI 对Sprite和Texture做遮罩的。具体可以看: http://blog.csdn.net/kakashi8841/article/details/44851885

无缝贴图处理

无缝贴图处理软件

UnityShader 图片像素化风格渲染

原理 图片像素化实际上与马赛克的生成一样,我们可以通过对图形UV值进行放大,然后截取整数部分,在缩放回原来大小,此时图片UV的精度丢失了,形成了马赛克的效果。 例如: 两个点P1(0.1,0),P2(0.12,0),先同时放大10倍获得,点为P1'(1.0,0),P2'(1.2,0),此时我们只取点的整数部分得到P1''(1,0),P2(1,0),最后再缩放回原来的大小那么P1,P2所对应的...

糯米团子的博客 7402

Ubuntu技巧-Ubuntu远程访问之SSH反向代理

💡大家好,我是可夫小子,《小白玩转ChatGPT》专栏作者,关注AIGC、互联网和自媒体。要把内网的一台的Ubuntu服务器让外面也能访问,总共有三种可行的方案,前面已经介绍了两种方式,今天就来介绍更健壮稳定的方式——ssh反向代理。大概的框架图如下,今天就从服务器购买到设置,手把手的教程,让你花费100块以内,就拥有一个强大的「云服务器」。

可夫小子的频道 1148

Unity从图集中读取资源

1.切割图集,先找一张图集来讲解如图所示,先把他在unity里面切割出来 2.将图片属性改为如图所示:然后点击Sprite进入切割界面,然后根据参数切割,然后应用生成如第一张图片一样 二:读取图集的哪一个 1.使用单例模式 2.用一个字典将所有图集和名字存起来 3.加载图集中的某个贴图 4.删除贴图缓存 5.从缓存中查找图集,并找出sprite 6.从图集中,并...

Happy_zailing的博客 6167

向量乘法器设计

同样基于Wallace树乘法器,我们来构造向量乘法器。 在一些矩阵运算中经常用到向量的相乘运算,本例以4维向量为例子介绍向量乘法器的verilog HDL设计。 设向量a = (a1, a2, a3, a4), b = (b1, b2, b3, b4)。 则a 与 b的点乘为:a * b = a1 b1 + a2 b2 + a3 b3 + a4 b4, 即向量对应位置的值相乘,再相加...

Reborn Lee 2959

Python爬虫实战:如何高效抓取拼多多商品信息、销量与价格数据,破解反爬虫挑战

**摘要:**本文介绍利用Python爬虫技术抓取拼多多商品数据(价格、销量等)的方法与应用价值。通过分析拼多多商品页面的HTML结构,使用Requests和Selenium获取数据,并应对反爬虫机制(IP代理、请求头伪装等)。数据可存储于MongoDB或CSV用于市场监控、竞品分析等场景。文章涵盖技术选型、实战代码示例及反爬策略,为电商数据分析提供实用指导。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1656

Rajawali纹理与贴图完全手册:从基础贴图到高级压缩技术

Rajawali是一款功能强大的Android OpenGL ES 2.0/3.0引擎,为开发者提供了丰富的纹理与贴图处理能力。本手册将带领你从基础贴图开始,逐步掌握高级压缩技术,让你的3D应用在视觉效果和性能之间取得完美平衡。 ## 纹理基础:让3D世界焕发生机 🎨 在3D图形中,纹理是赋予物体表面细节和真实感的关键。Rajawali提供了全面的纹理管理系统,位于[rajawali/src

gitblog_00001的博客 1018

日志异常检测详细整理,看这一篇就够了(附各项目代码链接)

对于不用的日志键,用它们的参数值向量训练一个参数值异常检测模型来检测有这些参数值反映的系统性能异常。与标准的GAN框架一样,D和G的参数是基于D的输出来更新的,因此鉴别器D可以被训练为尽可能敏感地将正确的标签分配给真实和虚假序列,而生成器将被训练为尽可能聪明地在经过足够多轮的迭代后欺骗鉴别器,即误导D将真实标签分配给虚假序列。LR:逻辑回归是有监督的模型,将处理后的特征矩阵以及标记作为模型的输入,得到训练后的模型,用此模型预测新出现的特征向量,以此判断特征向量是否为异常的,进而判断日志异常。

qq_20368489的博客 1万+

【游戏开发】一键式图集合并图集分割工具

【摘要】本文介绍了一款前后端分离的图集处理工具,支持图片智能打包与分离功能。该工具提供智能边框分割、紧凑合并等特色功能,并包含AI辅助的动画帧背景去除。相比常规在线工具,增加了更多可编辑参数和智能化处理方案。开发者可通过GitHub下载使用,欢迎反馈bug以持续优化。该工具旨在解决游戏开发中图集处理的常见痛点,提升开发效率。

qq_19915249的博客 106

普源精电DHO系列示波器选购指南:从学生党到工程师的完整对比

本文深入评测普源精电DHO系列示波器,从DHO800到DHO4000各型号的核心参数、功能特点及适用场景进行全面对比,帮助学生党和工程师根据实际需求选择最佳型号。重点分析带宽、采样率、存储深度等关键指标,并提供实用的选购建议和进阶使用技巧,帮助用户充分发挥示波器性能。

weixin_30485379的博客 163

UE4游戏开发:GameInstance与GameMode的实战应用与避坑指南

本文深入解析了UE4中GameInstance与GameMode的核心差异与实战应用。GameInstance作为贯穿游戏进程的全局单例,负责跨关卡数据持久化与系统管理;而GameMode则定义特定关卡内的游戏规则与逻辑,随关卡加载销毁。文章通过数据存储、动态模式切换及网络游戏等场景,提供了清晰的应用指南与常见避坑方案,帮助开发者构建更健壮的UE4游戏架构。

kubernetes8ctl的博客 226

DrawCall

Unity手游的DrawCall是影响手机CPU的重大参数。 硬件相关的一些概念: 1、显示芯片(GPU):具有图像处理能力,可协助CPU工作,提高整体的运行速度。 2、显存:存储显卡芯片处理过或即将提取的渲染数据。显存是计算机用来存储要处理的图形信息的部件。 3、显卡:显示芯片+显存+相关电路。 渲染相关的一些概念: 1、纹理:即纹路,每个物体表面上不同的样子。譬如说木头的...

a522452的博客 249

OpenClaw Manager Pro - 可视化管理工具

OpenClaw Manager Pro 是一个现代化的 Web 管理界面,用于管理多个 OpenClaw Gateway 实例。🎨美观的界面:深色主题,渐变设计,现代化 UI📡实时监控:WebSocket 实时推送状态和日志🔧完整管理:创建、编辑、删除、启动、停止 Gateway📊多渠道支持:飞书、Telegram、Discord、Slack、微信、钉钉🧩技能管理:可视化配置 61+ 个技能🌍跨平台:支持 macOS、Linux、Windows使用自定义模型系统会自动在中创建},

Maynor的博客 3074

Unity性能优化

1.Texture的长宽的大小最好是2次冥,2、4、8、16、32、64、128、256、512、1024、2048,如果不是由2次冥组成的贴图,那么图形将会多占用一些显卡的内存,读取贴图时也会变慢。 2.MipMaps,使用MipMaps的贴图会多占用百分之33的内存,但是可以大幅度提升效能,在UI的贴图下不使用MipMap。 MipMap的缺点会占用额外的内存,因为mipmap会根

别人家的思维 1161

Linux 设置双网卡通信,外网网卡和内网网卡

背景,Linux 主机已经安装了内网、外网 2 张网卡,目前外网网络已通,需要设置内网网卡转发通内网 内网需要通信的设备的网段,如果 10.99.0.0 代表 10.99 网段的所有 IP 表示 10.xx 网段走 10.xx.xx.xx 这个网关转发 :内网网卡设备示例 2、设置启动自动生效 打开 文件,如果没有则创建该文件,然后在文件内写入如下的内容修改上面的语句 为 即可 示例...

简简单单Onlinezuozuo 6588

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Unity优化(性能优化)

Drall Call是什么? DrallCall是CPU调用GPU执行渲染的指令,就是CPU调用底层图形程序的接口。而Unity中每次渲染都需要调用底层图形程序接口(DrallCall)。此时,CPU需要获取很多渲染物体的信息,非常占用CPU。因此主要优化DrallCall的方式:减少渲染次数,多个物体一起渲染。 Drall Call的优化...

weixin_41946900的博客 2517

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: DrawCall
下一篇: 【unity优化一】性能检测工具
usausa2
博客等级 码龄12年 7粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值