资料介绍
作者:Ben Anuworakarn
导语:本文作者Ben Anuworakarn 是PowerVR 开发技术团队的技术作者,具有计算科学工程知识背景。文中,他针对移动端游戏画面的优化,介绍了图像纹理处理、Mipmapping以及渗色等相关技术。同时,通过充分利用PVRTexTool的优势,游戏开发者将更轻松地实现移动端高质量游戏画面。
一直以来,探索PVRTexTool和纹理贴图的使用,是低成本优化、提升游戏视觉效果的关键技术。通过将表面细节保存为2D图像即可实现,而且可以轻松的从内存中加载该2D图像,并应用于任何对象。自《毁灭战士》和《毁灭公爵》发布以来,沉浸感和图形质量一直是游戏开发重中之重。逼真的风景和高度细节化的墙壁,使这些游戏从屏幕展示的画面变成可身临其境的3D世界,让玩家能够沉浸其中。而现在,通过纹理贴图便可轻松的实现这一点。
多年来芯片的功能已经大大提高,尤其是GPU,让我们能够在屏幕上一次性存储和显示更多的信息。玩家对游戏画质的期望越来越高,而纹理贴图由于功耗较小、可进行日常画质处理,是以一直提升游戏画面质量和细节的关键技术。这是使移动端游戏达到与PC端游戏同等画面质量的核心要素。
为何纹理处理如此重要?
从内存中加载图像文件,然后将其转换并应用于3D模型,这在计算上是一项很简单的任务。但是当需要一次渲染多个表面和纹理时,纹理的预优化处理不仅可以提高运行效率,还可以避免渲染产生的意外错误。这为开发人员和图形设计人员提供了额外的的安全保障以确保流畅的游戏体验。
在本文中我们将研究游戏开发行业中常用的三种技术,以及它们如何能够显著提高游戏的图形质量,或减少开发一款可靠产品所需的工作量。
Mipmapping——轻松抗锯齿
对任何游戏开发人员而言,所有工作未保存或丢失大概是最可悲的情况。遗憾的是,开发者几乎无法控制屏幕显示的内容,以及它们的伸缩尺寸,这意味着通常纹理很少能够以设计时的尺寸显示。任何图像过度拉伸或收缩都可能导致失真或细节丢失。根据图像格式和图形引擎本身,提供的解决方案要么不太有效,要么根本没有帮助。放大图像时可以引入稍微更智能的系统,但是缩小几乎总是会删除特征或细节。在某些极端情况下,错误的纹理缩放会导致混叠:由于采样和错误细节的复制而导致的图案失真。
Mipmap是正确缩放图像的技术,这些图像事先进行了优化和计算。这个想法是通过在一个地方以不同的分辨率采集相同的纹理,使纹理对应屏幕上像素的过程中避免不必要的计算。这也有助于在较低分辨率下保持细节外表,否则自动计算会丢失这些细节。由于信息是预先分配的,因此Mipmap确实会占用磁盘上的更多内存开销——最多只增加33%。这是因为mipmap中的每个后续级别的大小是前一级别的一半,因此每个级别的大小是前一个级别的四分之一。作为交换小对象所需的计算级别下降,因为较小的mipmap级别通常与到相机的距离有关。不仅如此虽然内存存储开销增加了,但是带宽的使用率却下降了,因为不是每次都获取完整的纹理数据,而是可以访问较低分辨率的数据。这有利于减少缓存丢失,因为较小的纹理更可能适合缓存。图像质量也得到了改善,尤其是当纹理趋向于地平线时,否则会开始出现波纹图案(由稍微不同的线性图案引起的干涉效果)。
渗色——消除透明度问题
对于图形美工来说,最大的挑战之一是预估在哪里使用纹理。由于Alpha通道在基本RGB颜色信息的基础上提供了一层透明度信息,当在屏幕上渲染纹理时通常会对其进行过滤和处理。这通常意味着在美工绘制纹理时即使像素由于Alpha图层显示为透明,该像素仍将具有需要处理的RGB值。当由于缩放、移动或光栅化而必须采样纹理而不是直接显示纹理时,可以通过插值将多个纹理像素的RGB值组合在一起以生成屏幕上像素的值。在应用Alpha之前,纹理图像的这些透明部分RGB值已包含在周围区域计算中,这会导致他们的“背景色”通过Alpha混合“渗入”到周围区域。
以下方程式显示了如何在多个纹理上进行纹理采样的粗略近似值,其中Ω是纹理的权重,而RGBA是一维矩阵,表示该位置处纹理RGBA值。
下一个方程式显示了Alpha混合方程式以及其他透明像素的RGB值如何计入屏幕输出。
常见的解决方案是让美工将其图像的颜色扩展到边框之外并进入透明区域。从技术上讲,这也是渗色现象,因此肯定是“扑朔迷离”的情况!这依旧有效的原因是,即使像素在执行过程中最终渗入周围区域时,Alpha通道仍被认为是透明的,但至少会渗出与基础图像相同的颜色,从而使周围区域具有适当的颜色。例如,如果你的纹理是一棵树,则大多数透明度都应具有很深的绿色值,这样叶子周围的区域在混合渲染过程中便会产生绿色的效果(给人一种运动幻觉的感觉),或者叶子周围有种模糊的“光环”。例如,如果在白天显示这棵树,你用蓝色值将其包裹,这是毫无意义的,因为树在夜间显示时,会在叶子上留下青绿色或青色的边缘。
下面斯坦福大学演讲用到的幻灯片很好的突出了这个问题。
预乘Alpha值——简化计算
如今大多数图像由多层组成并且包含许多复杂的颜色信息。对于简单的纹理可以更轻松地将RGB数据与Alpha分开。如上所述Alpha通道通常被单独应用并且图像通常保留一些RGB信息。作为程序员,以预乘的形式存储纹理数据比依赖美工正确的渗出颜色要安全得多。
你不仅可以通过除以Alpha来返回原始图像数据,而且还可以确保纹理中的每个值都应用了一个消光层,从而可以将其排除在计算之外。预乘Alpha还可以在管道中更早的获得更多好处,例如使其更易于生成mipmap链或将多个半透明图像复合在一起。最后由于Alpha函数不再需要执行一组额外的矩阵乘法运算,所以预乘Alpha还减少了我们在运行时需要执行的计算量。现在Alpha混合方程式变为:
我们还可以确保因为Alpha值为零,所以透明区域现在只有黑色RGB值,这意味着它们不会影响最终输出。
PVRTexTool可提供怎样的方案?
Imagination为开发人员提供的PVRTexTool是PowerVR SDK和开发工具的一部分,可为开发人员优化应用程序使其能够在PowerVR架构上运行。尽管本质上不是很难的技术,但用户让该技术变得无价。
PVRTexTool的优势之一是它可以简单直接的提供上述所有功能。借助可用于实时可视化的GUI以及自动化批处理的命令行界面,PVRTexTool允许程序员和美术人员都能够提前准备纹理资源。
PVRTexTool使用.pvr文件格式(PowerVR专用的文件扩展名,使用PVRTC提供令人难以置信的纹理压缩功能),还支持多种其他文件类型,包括但不限于.ktx、.dds、.png、.tga等。我们还为一些流行的图像编辑软件开发了一些插件,例如Autodesk Maya和Adobe Photoshop,以便能够使用我们的PVRTC格式。当然PVRTexTool本身还支持各种图形API的大多数常见纹理格式,例如Vulkan和OpenGL ES以及通过PVRTC、ASTC和ETC输出的纹理压缩和编码。PVRTexTool将所有各种工具和组件整合在一起,可以进行多种不同的优化和编码操作。
PVRTexTool的优势不止于此——它还具有其他非常有用的功能,例如但不限于:
- 法线贴图生成
- 字体到纹理的优化
- 纹理数组生成
上手试试吧!
最好的学习方法是实践,快来上手试试吧!PVRTexTool包含在我们的SDK中,用户手册和其他相关指南可登陆官网查看及下载。
链接如下:
https://www.imgtec.com/developers/powervr-sdk-tools/installers/
原英文链接:https://www.imgtec.com/blog/three-key-techniques-for-improving-mobile-ga...
来源:电子创新网
- 利用按键控制8×8LED点阵屏显示图形 19次下载
- 基于手绘轮廓图的移动端图像检索方法 1次下载
- Scratch图形化编程软件安装包下载 0次下载
- 基于FPGA和DSP的机载图形显示系统 36次下载
- 图形芯片设计全过程 108次下载
- 基于深度神经网络的端到端图像压缩方法 16次下载
- 如何使用移动APP进行健康管理系统的设计与实现 4次下载
- AN1246中文手册之如何在Microchip图形库中创建控件
- Microchip图形库如何简化基于键盘的GUI的设计详细中文资料概述
- Aurea图形用户界面的安装与使用详细中文资料概述
- 第10章 图形用户界面设计课件资料下载.ppt 6次下载
- Microchip图形库与键盘的配合使用 0次下载
- 基于FPGA的机载视频图形显示系统设计 21次下载
- 移动端VR需要突破的五大技术及移动端VR设备发展趋势的介绍 8次下载
- JAVA教程之移动的遮照效果 2次下载
- 图形渲染的技术和原理:探索视觉效果的奇妙世界 683次阅读
- 30个MATLAB图形绘制 1439次阅读
- 如何优化和提升滤波器的效果? 1268次阅读
- 一种端到端的立体深度感知系统的设计 631次阅读
- 如何提升权限运行远程桌面客户端 1278次阅读
- 10分钟搞定如何在QT环境模拟LVGL V8 4613次阅读
- 在计算机图形学中GPGPU需要用到的OpenGL概念 811次阅读
- littleVGL开源图形库的主要特性与移植过程 3144次阅读
- 如何使用C672x有效地创建基于延迟的音频效果 1398次阅读
- PCB图形转移关键工艺过程分析 5551次阅读
- 图形显示控制器的性能分类 2061次阅读
- 常用电气电路的图形符号 5w次阅读
- 图形技术深度谈——主流(中端)移动平台上的极速后处理特效 4693次阅读
- 将TVM用于移动端常见的ARM GPU,提高移动设备对深度学习的支持能力 1w次阅读
- 图形处理器和显卡什么区别和联系 2.6w次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 95次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于单片机和 SG3525的程控开关电源设计
- 0.23 MB | 4次下载 | 免费
- 8基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537793次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多