怎样给网站做优化,中国建筑集团有限公司排名,沈阳网站建设公司哪个好,制作网站注册登录模块的思维导图一、技术详解
ASTC#xff08;Adaptive Scalable Texture Compression#xff09;是一种先进的纹理压缩格式#xff0c;特别适用于OpenGL ES 3.0及更高版本。ASTC在2012年推出#xff0c;自那以后已经成为游戏开发中重要的纹理压缩技术。它不仅在iOS设备上得到广泛应用Adaptive Scalable Texture Compression是一种先进的纹理压缩格式特别适用于OpenGL ES 3.0及更高版本。ASTC在2012年推出自那以后已经成为游戏开发中重要的纹理压缩技术。它不仅在iOS设备上得到广泛应用从iPhone 6和iPad mini 4开始支持而且逐渐被Android设备采纳主流压缩格式正在从ETC2转向ASTC。
对惹这里有一个游戏开发交流小组希望大家可以点击进来一起交流一下开发经验呀
1. 压缩特性
压缩比率和质量ASTC提供多种压缩比率用户可以根据需求选择适合的压缩块大小从4x4到12x12。较小的块可以提供更高的图像质量但压缩率较低较大的块可以显著提高压缩率但可能会牺牲一些图像质量。颜色通道支持ASTC支持RGBA颜色通道并且适用于2的幂次方长宽等比尺寸和无尺寸要求的NPOT非2的幂次方纹理。灵活性ASTC压缩分块的大小灵活支持LDR低动态范围、HDR高动态范围、2D和3D纹理。每个块有端点对endpoints这些端点对不一定是RGBA的也可以是部分通道比如RG通道从而可以对法线贴图进行更好的压缩。
2. 块大小选择
无Alpha通道的贴图推荐使用ASTC 8x8。法线贴图建议使用ASTC 5x5或4x4以避免丢失过多数据。带Alpha通道的贴图推荐使用ASTC 5x5。一般的贴图选择6x6或8x8。无关紧要但尺寸特别大的图可以考虑8x8、10x10、12x12以减小打包后的文件大小。
3. 压缩原理
ASTC采用BISEBlock Image Store Encoding算法进行压缩。在压缩过程中ASTC会对块内颜色分布进行分析并根据颜色分布进行分区分别存储对应的端点对。解码时通过插值计算出每个像素的颜色值。对于较大的块权重网格会被双线性放大到块的大小。
二、代码实现
在Unity3D中实现ASTC贴图压缩主要通过设置TextureImporter的压缩格式来完成。以下是一个示例代码展示如何在Unity3D中设置贴图的ASTC压缩格式
using UnityEngine;using UnityEditor;public class ASTCCompressionSetter : EditorWindow{[MenuItem(Window/Set ASTC Compression)]public static void ShowWindow(){GetWindowASTCCompressionSetter(ASTC Compression Setter);}private void OnGUI(){if (GUILayout.Button(Set ASTC Compression)){string[] guids Selection.assetGUIDs;foreach (string guid in guids){string assetPath AssetDatabase.GUIDToAssetPath(guid);TextureImporter importer AssetImporter.GetAtPath(assetPath) as TextureImporter;if (importer ! null){importer.textureCompression TextureImporterCompression.ASTC_RGBA_4x4; // 或者其他ASTC格式importer.SaveAndReimport();}}}}} 代码说明
菜单项通过[MenuItem(Window/Set ASTC Compression)]创建一个菜单项方便在Unity编辑器中调用。窗口GetWindowASTCCompressionSetter(ASTC Compression Setter)创建一个新的窗口。按钮在窗口中添加一个按钮当点击按钮时遍历当前选中的资产Texture并设置其压缩格式为ASTC。设置压缩格式importer.textureCompression TextureImporterCompression.ASTC_RGBA_4x4;可以设置具体的ASTC压缩格式。Unity支持多种ASTC格式如ASTC_RGBA_4x4、ASTC_RGBA_6x6等可以根据需要选择。
请注意在实际项目中可能需要根据具体需求调整压缩格式和块大小以达到最佳效果。同时要确保目标设备支持所选的ASTC格式。
通过上述技术详解和代码实现你可以在Unity3D项目中有效地使用ASTC贴图压缩格式以减小游戏包的大小并提高加载速度。
更多教学视频
Unity3Dwww.bycwedu.com/promotion_channels/2146264125