資料介紹
作者: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次下載 | 免費
評論
查看更多