3分钟认识KTX2纹理

news2025/1/11 5:51:17

作者:游梦

图片与纹理区别

日常沟通中通常把图片与纹理混为一谈,实际在图形学中,它俩是严格意义上的两个对象,主要有以下两个方面的区别:

文件格式:

图片:JPG、JPEG、PNG、bmp、webp、SVG等常见格式

纹理:ETC(安卓)、DXT(Windows)、PVRTC(VR设备)、ASTC(跨平台)、Basis Universal(跨平台)

而常见的纹理文件如KTX、KTX2、DDS等,只是纹理存储介质俗称纹理容器,本文主要讲解KTX2纹理。

(图片生命周期,图源:PVRTexTool现支持KTX™2.0和 Basis Universal超级压缩_ktx2压缩-CSDN博客)

使用方式:
图片:先从硬盘加载到内存中,通过解析成GPU可识别的纹理再供着色器程序使用
纹理:直接供着色器程序使用

纹理格式

在生产过程中见不到非压缩纹理,因为图形学中带宽与内存占用是一个引擎必须考虑的点,出于性能考虑所以通常会对图片与纹理进行压缩用于节省带宽与内存。

纹理压缩算法

纹理压缩算法主要用于减少纹理图像在计算机图形处理中所占用的存储空间,‌同时保持或接近原始图像的质量。‌这些算法通过不同的技术来压缩纹理数据,‌从而在保证图像质量的前提下,‌提高图形渲染的效率和性能。‌以下是一些常见的纹理压缩算法及其特点:‌

  1. DXT系列:‌包括DXT1、‌DXT2、‌DXT3、‌DXT4和DXT5,‌这些算法主要用于PC游戏和图形应用。‌DXT2和DXT3的主要区别在于Alpha信息的处理方式,‌而DXT4和DXT5则侧重于处理复杂的透明信息。‌DXT系列算法通过颜色和Alpha值的压缩,‌以及线性插值计算,‌实现了高效的纹理压缩。‌
  2. ETC系列:‌包括ETC1和ETC2,‌这些算法主要用于移动设备和嵌入式系统,‌如安卓设备。‌ETC2是ETC1的扩展,‌支持Alpha通道的压缩,‌并且对硬件要求较高,‌需要OpenGL ES 3.0或更高版本的支持。‌
  3. ASTC:‌由ARM和AMD联合开发,‌是一种灵活的纹理压缩格式,‌可以根据不同的图片选择不同的压缩率算法。‌ASTC不需要图片尺寸为2的幂次,‌同时支持LDR和HDR。‌其数据块大小固定为128位,‌但像素数量可变,‌从4×4到12×12像素都有。‌
  4. PVRTC:‌专为PowerVR显卡设计,‌仅支持iPhone、‌iPad和部分安卓机。‌PVRTC将图像分为低频信号和高频信号,‌通过不同的处理方式实现压缩。‌PVRTC分为4-bpp和2-bpp两种,‌提供了较高的压缩率。‌

KTX2纹理:

KTX 2.0增加了对Basis Universal超压缩GPU纹理的支持。这种压缩技术由Google与Binomial合作开发,可以产生紧凑的纹理,在运行时可以有效地转码为各种GPU压缩的纹理格式。此外,Khronos还发布了KHR_texture_basisu扩展,使glTF能够包含KTX 2.0纹理,从而产生可普遍分发的glTF资产,减少下载大小,并使用本机支持的纹理格式来减少GPU内存大小,提高不同设备和平台上的渲染速度,又因3DTiles瓦片使用的是glTF,从而为GIS行业常用的3DTiles模型提供了轻量化方案。

(压缩对比图,图源:Google与Binomial合作开源Basis Universal GPU纹理编解码器-腾讯云开发者社区-腾讯云)

KTX2纹理格式优势:

1. 高效压缩:KTX2提供了先进的纹理压缩算法,例如ASTC(Adaptive Scalable Texture Compression)、BC(Block Compression)系列(如BC6/BC7)、ETC2(Embedded Texture Compression 2),这些算法可以显著减小纹理数据的大小,从而减少带宽需求和存储空间。

2. 多格式支持:KTX2不仅支持上述压缩格式,还支持非压缩格式,这使得它非常灵活,可以根据不同的应用场景选择最优的压缩方案。

3. GPU友好:KTX2格式直接与现代图形API(如OpenGL、Vulkan)兼容,这意味着它可以被GPU高效读取和处理,减少了CPU预处理的开销。

4. 多维度纹理:KTX2可以包含各种类型的纹理,包括2D、3D、立方体贴图以及纹理数组,甚至可以包含Mipmap层次结构,使得它成为一种非常全面的纹理存储格式。

5. 元数据嵌入:KTX2文件可以包含有关纹理的元数据,如纹理格式、尺寸、像素格式等,这样可以避免在加载时需要额外的信息,简化了纹理加载过程。

6. 跨平台:由于KTX2是Khronos Group制定的标准,它被设计为跨平台的,可以在不同的操作系统和硬件上使用,提高了纹理的可移植性和兼容性。

7. 未来兼容性:KTX2格式设计时考虑到了未来的发展,预留了空间用于添加新特性或支持新的压缩格式,确保了长期的可用性和可扩展性。

需要注意的是,KTX2的优势主要体现在现代硬件和软件环境中,对于老旧的系统或设备,可能因为硬件不支持这些高级压缩格式而无法完全利用KTX2的所有优点。

Mapmost SDK for WebGL 在多源数据支持上经过多年研发以及多个版本迭代,目前是市面上唯二支持DDS与KTX2纹理模型加载的引擎,相比于另一个CesiumJS引擎,Mapmost SDK for WebGL同时支持矢量瓦片渲染,CesiumJS目前尚不支持矢量瓦片渲染且没有研发规划。

(矢量瓦片 + DDS纹理的i3s格式数据渲染,图源:Mapmost SDK for WebGL)

(KTX2纹理的b3dm格式数据渲染,图源:Mapmost SDK for WebGL)

参考文献:

PVRTexTool现支持KTX™2.0和 Basis Universal超级压缩_ktx2压缩-CSDN博客

KTX Overview - The Khronos Group Inc

https://zhuanlan.zhihu.com/p/665140982DXT纹理压缩-CSDN博客


  关注Mapmost,持续更新GIS、三维美术、计算机技术干货

Mapmost是一套以三维地图和时空计算为特色的数字孪生底座平台,包含了空间数据管理工具(Studio)、应用开发工具(SDK)、应用创作工具(Alpha)。平台能力已覆盖城市时空数据的集成、多源数据资源的发布管理,以及数字孪生应用开发工具链,满足企业开发者用户快速搭建数字孪生场景的切实需求,助力实现行业领先。

欢迎进入官网体验使用:Mapmost——让人与机器联合创作成为新常态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1959901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

gstreamer 配置+解析编解码

一. 安装gstreamer 1.1 Windows下安装 官网链接:https://gstreamer.freedesktop.org/download/#windows 两个都要下载。安装的时候,在custom选择安装路径。然后返回上一步选择complete完全安装,两个安装方式一样。 1.2 配置环境 将 D:\…

python3 pyside6图形库学习笔记及实践(二)

目录 前言常用控件下拉框(QComboBox)复选框(QCheckBox)单选框(QRadioButton)文本框(QTextEdit和QPlainTextEdit)滑块(QSlider) 布局常见布局控件示例布局的好处 对话框消息框(QMessageBox)输入对话框(QInputDialog)文件对话框(QFileDialog)字体对话框(QFontDialog)颜色对话框(Q…

一文精通Python print函数的N种玩法

文末赠免费精品编程资料~~ 今天我们要探索的是编程世界中最常被忽略的英雄——print函数。别看它简单,其实藏着不少有趣的玩法和高级技巧,能让你的代码更加灵活和高效。准备好了吗?让我们一起深入这个看似平凡却又不凡的功能。 基础篇&…

SuperGlue网络+FPN+SIFT(特征匹配)

SuperGlue网络+FPN+SIFT(特征匹配) 摘要1. FPNFPN具体实现思路2. SIFT2.1 尺度空间极值检测2.1.1 尺度空间2.1.2 高斯金字塔2.1.4 局部极值检测2.2 精确的关键点定位2.2.1 消除边缘响应2.2.2 确定关键点(极值点)方向2.3 关键点描述2.4 关键点匹配2.5 SIFT代码实现2.6 SIFT的…

贪心算法-买卖股票问题

贪心算法(Greedy Algorithm)是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。贪心算法并不保证总是能得到全局最优解,但它通常能得到不错的解…

新版PyTorch:AI任务加速与Intel GPU集成

--->更多内容&#xff0c;请移步“鲁班秘笈”&#xff01;&#xff01;<--- 最近的Pytorch 2.4 推出AI任务加速&#xff0c;提供对Intel GPU的支持。为了进一步加速 AI任务&#xff0c;PyTorch 2.4现在为Intel数据中心GPU Max系列提供支持&#xff0c;该系列将Intel GPU…

Java答题系统练习模拟考试系统

&#x1f4dd;【学霸秘籍】答题系统模拟考试系统&#xff0c;你的提分神器来啦&#xff01;&#x1f680; &#x1f4da; 开篇引入&#xff1a;学习路上的得力助手 嘿&#xff0c;小伙伴们&#xff01;是不是又在为即将到来的考试焦头烂额&#xff1f;&#x1f623; 是不是觉…

二分查找(多版本)

1.基础版 public class erfenchazhao {public int test(int arr[],int target){int i 0; //定义左指针int j arr.length-1;//定义右指针int m; //定义中间值while(i<j){ //判断条件m (ij)>>>1;if(target < arr[m]){ //目标值在左边j m - 1;}else…

【python】在Python代码中执行Linux命令的详细用法教程

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

昇思25天学习打卡营第01天|昇思MindSpore大模型基础介绍

昇思MindSpore和华为昇思MindSpore大模型学习打卡系列文章&#xff0c;本文仅供参考~ 文章目录 前言一、昇思MindSpore是什么&#xff1f;二、执行流程三、设计理念四、层次结构五、Huawei昇腾AI全栈 前言 随着计算机大模型的不断发展&#xff0c;Ai这门技术也越来越重要&#…

免费【2024】springboot 宠物领养救助平台的开发与设计

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

Prozyme糖样本检测平台--GlykoPrep® Rapid N-Glycan Preparation with APTS

单克隆抗体已成为生物制药行业具有潜力的新兴蛋白候选药物。其药物研发流程包括一系列精细的控制和评估步骤&#xff0c;需要仔细、严格地监测目标化合物的治疗稳定性及有效性。因此&#xff0c;在商业化前的每个阶段对单克隆抗体进行全面表征是极其有益的。在大量研究成熟的蛋…

用Python打造精彩动画与视频,3.1 安装和设置 MoviePy

第3章 开始你的第一个视频项目 MoviePy 3.1 安装和设置 MoviePy 视频处理在多媒体内容创作中起着至关重要的作用。MoviePy 是一个用于视频编辑的 Python 库&#xff0c;它可以让你轻松地进行视频剪辑、合并、特效添加等操作。通过 MoviePy&#xff0c;你可以用简单的 Python…

基于Java+SpringBoot+Vue的的课程作业管理系统

前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 哈喽兄弟们&#xff0c;好久不见哦&#xff5…

IEEE 快刊合集!期刊选的好,JCR1区照样轻松拿下~

【SciencePub学术】今天小编给大家推荐2本计算机领域的SCI&#xff0c;均隶属于IEEE出版社&#xff0c;虽比不上前几日给大家介绍的IEEE-Trans系列的那本期刊优秀&#xff0c;但是放在行业内还是很拿得出手的。 现在提交&#xff0c;可免费预审&#xff0c;预审通过后录用率100…

失业负债女孩,下班后用AI做副业,快速翻身上岸

** - 我们应该把负债看成是成长的助力&#xff0c;而不是搞垮骆驼的稻草。 负债上岸&#xff0c;没有更多的捷径&#xff0c;唯有“开源节流”&#xff0c;节流就是尽可能节约花费&#xff0c;把生活支出减少&#xff0c;开源就是尽可能多的增加自己的副业收入。 负债后的至…

【通俗理解】“多即不同”观念的科学内涵——从对称破缺到科学层次结构的探索

【通俗理解】“多即不同”观念的科学内涵——从对称破缺到科学层次结构的探索 对称破缺与科学层次结构的类比 你可以把对称破缺比作一个“建筑师”&#xff0c;它构建了科学大厦的基础框架。而科学层次结构则是一个“城市规划师”&#xff0c;它规划了这些基础框架如何组合成一…

【附精彩文章合辑】跨界对话:黄仁勋与扎克伯格的“外套交换”与未来展望

跨界对话&#xff1a;黄仁勋与扎克伯格的“外套交换”与未来展望 在科技界的浩瀚星空中&#xff0c;两位璀璨的名字如同双子星般交相辉映——NVIDIA的创始人兼CEO黄仁勋&#xff08;Jensen Huang&#xff09;与Facebook&#xff08;现更名为Meta&#xff09;的掌舵人马克扎克伯…

快速开启react+electron应用,搭建启动问题

注意&#xff1a; React 本地启动在 3000端口Electron 在创建 BrowserWindow 的时候&#xff0c;可以读取本地的文件或者是 url开发环境 读取localhost: 3000生产环境 需要加载本地成型以后的本地文件&#xff0c;打包的时候再考虑 一 react 脚手架 create-react-app 快速搭建…

iTerm2使用手册

iTerm2字体 参考文章&#xff1a;iTerm2 安装 SF Mono 字体 iTerm2默认的字体不太好看&#xff0c;感觉Mac自带的终端的字体看起来很舒服&#xff0c;于是让iTerm2和Mac自带终端保持一致 找到Terminal.app下面的字体 执行 cp *.otf ~/Library/Fonts/ 然后在iTerm2中设置字…