当前位置:首页 > 内存 > 正文

unity打图集内存会变大吗

  • 内存
  • 2024-06-08 21:09:10
  • 9761

一、unity导入图片后项目变大了很多是怎么回事如果MipMap被禁用,大小会更小。
ReadWriteEnable被禁用,运行时会稍微小一些。
如果图像大小是2的N次方,请将压缩设置为none以外的值,而且还会再缩小一点。
二、unity2d导出后图片大小改变无论导入的图像是什么格式,Unity都会将其转换为纹理格式。将外部图像导入Unity时,图像尺寸会增加。
Unity图片导入尺寸改变了修改方法。原始图像为791*531像素。直接导入Unity的图片尺寸为1024*512。在检查器中,单击“Nonpowerof2”并选择“无”。结果显示为正确的像素数,可用于防止Unity自动对图像进行插值。
Unity的2D工具易于使用,专为无缝协作而设计。


三、Unity关于图形渲染优化的建议摘录GraphicsWork如果选中,Unity将能够使用工作线程来处理最初在主线程和渲染线程上执行的任务
减少可见对象的数量
调整外部剪切相机平面并使用雾效果是为了补偿看不到远处物体的扭曲现象
使用相机组件的layerculldistance属性设置不同级别物体的裁剪距离可以减少需要在保持渲染对象场景真实性的同时进行裁剪
使用遮挡剔除技术
实时光照、阴影和反射等效果可能会导致对象被多次渲染,从而影响性能。选择正确的渲染路径对渲染性能影响巨大。一般来说,DefferedRendering更适合使用大量实时光照效果、阴影和反射的高端设备,而ForwardRendering更适合低端设备。
实时渲染阴影时,必须先渲染shadowmap中所有产生阴影的物体,因此渲染消耗是显而易见的。
对于静态物体(不移动的物体),可以利用烘焙技术预先计算光照,以减少实时光照计算。
对于使用实时阴影的项目,可以利用ShadowDistance、ShadowCascades等技术,有效优化实时阴影带来的渲染消耗。
反射探针可以创建非常逼真的反射效果,但会导致批处理开销,应尽可能少使用。
可以合并到同一批次的对象必须满足两个条件:使用相同材质的相同实例;具有完全相同的材质设置(纹理、着色器、着色器参数等)。尽量让尽可能多的物体使用相同的材​​质,以更好地利用批处理技术
通过Atlas技术可以增加批处理物体的数量:对于使用相同材质的物体,只有材质实例当使用不同的纹理时,利用图集技术将不同的纹理分组到一个图集中,这样就可以使用相同的材​​质实例来达到批处理的条件。
注意al和Material的区别,前者修改后,会创建一个新的材质实例(不能分组)。
对于ShadowCasterPass来说,只要内部使用的属性相同,即使是不同的材质,仍然可以归为一组。
静态批处理可能会导致内存和存储空间的消耗较高:在静态批处理之前,参与批处理的每个对象都会创建一个副本,因此不适合密集查看成组的对象(例如茂密森林中的树木)
动态批处理会导致一些CPU消耗。
当前支持批处理的组件包括MeshRenderer、TrailRenderers、LineRenderers、ParticleSystem和SpriteRenderers。
SkinnedMeshRenderer不支持批处理您可以使用sh方法创建合适的姿势,然后使用MeshRenderer支持批处理技术。
如果您的目标平台支持,请尝试在播放器设置中启用GPUSKinning,以允许GPU控制皮肤。
由于半透明物体必须严格从后向前渲染,因此它们比不透明物体更难满足批量条件。
降低片段着色器的计算复杂度
控制透明材质、粒子系统和UI元素的重叠,避免过度过度绘制
过多的post-处理很容易导致像素填充率问题。如果需要大量的后处理效果,可以考虑将它们合并到一个步骤中,例如Unity提供的PostProcessingStack
减少纹理。解决内存繁忙的内存带宽问题。
使用纹理压缩技术可以显着减小纹理的大小。
使用Mipmap技术可以减少远处物体占用内存带宽的问题。