了解OpenGL ES 开发人员工具(2 )
8.2 Adreno SDK
8.2.1 Adreno纹理压缩和可视化工具
Adreno纹理压缩和可视化工具可将纹理压缩为Adreno GPU支持的以下格式:
- 3Dc (single-component)
- 3Dc (two-component)
- ASTC LDR
- ASTC HDR
- ATC RGBA (explicit)
- ATC RGBA (interpolated)
- EAC (single-component)
- EAC (two-component)
- ETC1 RGB8
- ETC2 RGBA8
- ETC2 RGB8
- ETC2 RGB8 Punchthrough Alpha
- S3TC (DXT1 RGBA)
- S3TC (DXT3 RGBA)
- S3TC (DXT5 RGBA)
该应用程序允许用户:
- 在视觉上将压缩纹理的外观与原始非压缩版本进行比较
- 放大纹理以获得详细视图
- 根据纹理大小或质量进行最合适的压缩分析
- 分别可视化每个颜色通道,包括alpha(如果可用)
- 同时打开多个工作区
- 保存可以在美工管线中处理的纹理工作区
- 在纹理中生成Mipmap
- 将文件保存为开放标准的.ktx和.dds格式
- 设置用于批处理的项目,因此可以一次运行压缩多个纹理
还包括一个32位和64位Photoshop插件,可用于加载压缩的纹理格式。
8.2.2 Adreno 纹理转换器
压缩和可视化工具允许按需对压缩数据进行可视化检查。这对于决定特定图像应该使用哪种纹理压缩格式非常有用,但它在制作管道中的使用有限:
- 未来可能会改变;使用GUI定期压缩数百个更新的纹理是很麻烦的
- 可能需要被压缩成许多不同的内部格式,例如,由于可移植性的原因
- 可能需要以低于原始资产精度的非压缩内部格式存储,例如,如果想要将RGB888纹理压缩为RGB565格式
- 需要在运行时压缩,考虑到特定平台的功能;与OpenGL不同,OpenGL ES不支持运行时纹理压缩,如果需要,应用程序必须处理编码过程
Adreno纹理转换器是一个动态库提供解决这些问题。它允许一个名为Qonvert的函数,该函数接受两个参数来描述源图像和目标图像属性。此函数执行转换并使用压缩数据填充目标。
Adreno纹理转换器可以执行以下任务:
- 如果目标图像必须小于原始图像,则将原图像缩小
- 水平和垂直翻转源图像和目标图像
- 混合源和目标图像组件
- 对源和目标图像数据使用非默认的行步长
- 将源数据转换为法线贴图
以下过滤器可用于缩小源图像: - Bicubic
- Bilinear
- Kaiser window
- Mean
- Nearest-neighbor
可以使用以下算法从输入图像生成法线贴图:
- Prewitt operator
- Roberts cross operator
- Sobel operator
二进制库文件,头文件和详细文档可在Adreno SDK中找到。