資料介紹
作者:Ben Anuworakarn
導(dǎo)語(yǔ):本文作者Ben Anuworakarn 是PowerVR 開(kāi)發(fā)技術(shù)團(tuán)隊(duì)的技術(shù)作者,具有計(jì)算科學(xué)工程知識(shí)背景。文中,他針對(duì)移動(dòng)端游戲畫面的優(yōu)化,介紹了圖像紋理處理、Mipmapping以及滲色等相關(guān)技術(shù)。同時(shí),通過(guò)充分利用PVRTexTool的優(yōu)勢(shì),游戲開(kāi)發(fā)者將更輕松地實(shí)現(xiàn)移動(dòng)端高質(zhì)量游戲畫面。
一直以來(lái),探索PVRTexTool和紋理貼圖的使用,是低成本優(yōu)化、提升游戲視覺(jué)效果的關(guān)鍵技術(shù)。通過(guò)將表面細(xì)節(jié)保存為2D圖像即可實(shí)現(xiàn),而且可以輕松的從內(nèi)存中加載該2D圖像,并應(yīng)用于任何對(duì)象。自《毀滅戰(zhàn)士》和《毀滅公爵》發(fā)布以來(lái),沉浸感和圖形質(zhì)量一直是游戲開(kāi)發(fā)重中之重。逼真的風(fēng)景和高度細(xì)節(jié)化的墻壁,使這些游戲從屏幕展示的畫面變成可身臨其境的3D世界,讓玩家能夠沉浸其中。而現(xiàn)在,通過(guò)紋理貼圖便可輕松的實(shí)現(xiàn)這一點(diǎn)。
多年來(lái)芯片的功能已經(jīng)大大提高,尤其是GPU,讓我們能夠在屏幕上一次性存儲(chǔ)和顯示更多的信息。玩家對(duì)游戲畫質(zhì)的期望越來(lái)越高,而紋理貼圖由于功耗較小、可進(jìn)行日常畫質(zhì)處理,是以一直提升游戲畫面質(zhì)量和細(xì)節(jié)的關(guān)鍵技術(shù)。這是使移動(dòng)端游戲達(dá)到與PC端游戲同等畫面質(zhì)量的核心要素。
為何紋理處理如此重要?
從內(nèi)存中加載圖像文件,然后將其轉(zhuǎn)換并應(yīng)用于3D模型,這在計(jì)算上是一項(xiàng)很簡(jiǎn)單的任務(wù)。但是當(dāng)需要一次渲染多個(gè)表面和紋理時(shí),紋理的預(yù)優(yōu)化處理不僅可以提高運(yùn)行效率,還可以避免渲染產(chǎn)生的意外錯(cuò)誤。這為開(kāi)發(fā)人員和圖形設(shè)計(jì)人員提供了額外的的安全保障以確保流暢的游戲體驗(yàn)。
在本文中我們將研究游戲開(kāi)發(fā)行業(yè)中常用的三種技術(shù),以及它們?nèi)绾文軌蝻@著提高游戲的圖形質(zhì)量,或減少開(kāi)發(fā)一款可靠產(chǎn)品所需的工作量。
Mipmapping——輕松抗鋸齒
對(duì)任何游戲開(kāi)發(fā)人員而言,所有工作未保存或丟失大概是最可悲的情況。遺憾的是,開(kāi)發(fā)者幾乎無(wú)法控制屏幕顯示的內(nèi)容,以及它們的伸縮尺寸,這意味著通常紋理很少能夠以設(shè)計(jì)時(shí)的尺寸顯示。任何圖像過(guò)度拉伸或收縮都可能導(dǎo)致失真或細(xì)節(jié)丟失。根據(jù)圖像格式和圖形引擎本身,提供的解決方案要么不太有效,要么根本沒(méi)有幫助。放大圖像時(shí)可以引入稍微更智能的系統(tǒng),但是縮小幾乎總是會(huì)刪除特征或細(xì)節(jié)。在某些極端情況下,錯(cuò)誤的紋理縮放會(huì)導(dǎo)致混疊:由于采樣和錯(cuò)誤細(xì)節(jié)的復(fù)制而導(dǎo)致的圖案失真。
Mipmap是正確縮放圖像的技術(shù),這些圖像事先進(jìn)行了優(yōu)化和計(jì)算。這個(gè)想法是通過(guò)在一個(gè)地方以不同的分辨率采集相同的紋理,使紋理對(duì)應(yīng)屏幕上像素的過(guò)程中避免不必要的計(jì)算。這也有助于在較低分辨率下保持細(xì)節(jié)外表,否則自動(dòng)計(jì)算會(huì)丟失這些細(xì)節(jié)。由于信息是預(yù)先分配的,因此Mipmap確實(shí)會(huì)占用磁盤上的更多內(nèi)存開(kāi)銷——最多只增加33%。這是因?yàn)閙ipmap中的每個(gè)后續(xù)級(jí)別的大小是前一級(jí)別的一半,因此每個(gè)級(jí)別的大小是前一個(gè)級(jí)別的四分之一。作為交換小對(duì)象所需的計(jì)算級(jí)別下降,因?yàn)檩^小的mipmap級(jí)別通常與到相機(jī)的距離有關(guān)。不僅如此雖然內(nèi)存存儲(chǔ)開(kāi)銷增加了,但是帶寬的使用率卻下降了,因?yàn)椴皇敲看味极@取完整的紋理數(shù)據(jù),而是可以訪問(wèn)較低分辨率的數(shù)據(jù)。這有利于減少緩存丟失,因?yàn)檩^小的紋理更可能適合緩存。圖像質(zhì)量也得到了改善,尤其是當(dāng)紋理趨向于地平線時(shí),否則會(huì)開(kāi)始出現(xiàn)波紋圖案(由稍微不同的線性圖案引起的干涉效果)。
滲色——消除透明度問(wèn)題
對(duì)于圖形美工來(lái)說(shuō),最大的挑戰(zhàn)之一是預(yù)估在哪里使用紋理。由于Alpha通道在基本RGB顏色信息的基礎(chǔ)上提供了一層透明度信息,當(dāng)在屏幕上渲染紋理時(shí)通常會(huì)對(duì)其進(jìn)行過(guò)濾和處理。這通常意味著在美工繪制紋理時(shí)即使像素由于Alpha圖層顯示為透明,該像素仍將具有需要處理的RGB值。當(dāng)由于縮放、移動(dòng)或光柵化而必須采樣紋理而不是直接顯示紋理時(shí),可以通過(guò)插值將多個(gè)紋理像素的RGB值組合在一起以生成屏幕上像素的值。在應(yīng)用Alpha之前,紋理圖像的這些透明部分RGB值已包含在周圍區(qū)域計(jì)算中,這會(huì)導(dǎo)致他們的“背景色”通過(guò)Alpha混合“滲入”到周圍區(qū)域。
以下方程式顯示了如何在多個(gè)紋理上進(jìn)行紋理采樣的粗略近似值,其中Ω是紋理的權(quán)重,而RGBA是一維矩陣,表示該位置處紋理RGBA值。
下一個(gè)方程式顯示了Alpha混合方程式以及其他透明像素的RGB值如何計(jì)入屏幕輸出。
常見(jiàn)的解決方案是讓美工將其圖像的顏色擴(kuò)展到邊框之外并進(jìn)入透明區(qū)域。從技術(shù)上講,這也是滲色現(xiàn)象,因此肯定是“撲朔迷離”的情況!這依舊有效的原因是,即使像素在執(zhí)行過(guò)程中最終滲入周圍區(qū)域時(shí),Alpha通道仍被認(rèn)為是透明的,但至少會(huì)滲出與基礎(chǔ)圖像相同的顏色,從而使周圍區(qū)域具有適當(dāng)?shù)念伾@纾绻愕募y理是一棵樹(shù),則大多數(shù)透明度都應(yīng)具有很深的綠色值,這樣葉子周圍的區(qū)域在混合渲染過(guò)程中便會(huì)產(chǎn)生綠色的效果(給人一種運(yùn)動(dòng)幻覺(jué)的感覺(jué)),或者葉子周圍有種模糊的“光環(huán)”。例如,如果在白天顯示這棵樹(shù),你用藍(lán)色值將其包裹,這是毫無(wú)意義的,因?yàn)闃?shù)在夜間顯示時(shí),會(huì)在葉子上留下青綠色或青色的邊緣。
下面斯坦福大學(xué)演講用到的幻燈片很好的突出了這個(gè)問(wèn)題。
預(yù)乘Alpha值——簡(jiǎn)化計(jì)算
如今大多數(shù)圖像由多層組成并且包含許多復(fù)雜的顏色信息。對(duì)于簡(jiǎn)單的紋理可以更輕松地將RGB數(shù)據(jù)與Alpha分開(kāi)。如上所述Alpha通道通常被單獨(dú)應(yīng)用并且圖像通常保留一些RGB信息。作為程序員,以預(yù)乘的形式存儲(chǔ)紋理數(shù)據(jù)比依賴美工正確的滲出顏色要安全得多。
你不僅可以通過(guò)除以Alpha來(lái)返回原始圖像數(shù)據(jù),而且還可以確保紋理中的每個(gè)值都應(yīng)用了一個(gè)消光層,從而可以將其排除在計(jì)算之外。預(yù)乘Alpha還可以在管道中更早的獲得更多好處,例如使其更易于生成mipmap鏈或?qū)⒍鄠€(gè)半透明圖像復(fù)合在一起。最后由于Alpha函數(shù)不再需要執(zhí)行一組額外的矩陣乘法運(yùn)算,所以預(yù)乘Alpha還減少了我們?cè)谶\(yùn)行時(shí)需要執(zhí)行的計(jì)算量。現(xiàn)在Alpha混合方程式變?yōu)椋?/p>
我們還可以確保因?yàn)锳lpha值為零,所以透明區(qū)域現(xiàn)在只有黑色RGB值,這意味著它們不會(huì)影響最終輸出。
PVRTexTool可提供怎樣的方案?
Imagination為開(kāi)發(fā)人員提供的PVRTexTool是PowerVR SDK和開(kāi)發(fā)工具的一部分,可為開(kāi)發(fā)人員優(yōu)化應(yīng)用程序使其能夠在PowerVR架構(gòu)上運(yùn)行。盡管本質(zhì)上不是很難的技術(shù),但用戶讓該技術(shù)變得無(wú)價(jià)。
PVRTexTool的優(yōu)勢(shì)之一是它可以簡(jiǎn)單直接的提供上述所有功能。借助可用于實(shí)時(shí)可視化的GUI以及自動(dòng)化批處理的命令行界面,PVRTexTool允許程序員和美術(shù)人員都能夠提前準(zhǔn)備紋理資源。
PVRTexTool使用.pvr文件格式(PowerVR專用的文件擴(kuò)展名,使用PVRTC提供令人難以置信的紋理壓縮功能),還支持多種其他文件類型,包括但不限于.ktx、.dds、.png、.tga等。我們還為一些流行的圖像編輯軟件開(kāi)發(fā)了一些插件,例如Autodesk Maya和Adobe Photoshop,以便能夠使用我們的PVRTC格式。當(dāng)然PVRTexTool本身還支持各種圖形API的大多數(shù)常見(jiàn)紋理格式,例如Vulkan和OpenGL ES以及通過(guò)PVRTC、ASTC和ETC輸出的紋理壓縮和編碼。PVRTexTool將所有各種工具和組件整合在一起,可以進(jìn)行多種不同的優(yōu)化和編碼操作。
PVRTexTool的優(yōu)勢(shì)不止于此——它還具有其他非常有用的功能,例如但不限于:
- 法線貼圖生成
- 字體到紋理的優(yōu)化
- 紋理數(shù)組生成
上手試試吧!
最好的學(xué)習(xí)方法是實(shí)踐,快來(lái)上手試試吧!PVRTexTool包含在我們的SDK中,用戶手冊(cè)和其他相關(guān)指南可登陸官網(wǎng)查看及下載。
鏈接如下:
https://www.imgtec.com/developers/powervr-sdk-tools/installers/
原英文鏈接:https://www.imgtec.com/blog/three-key-techniques-for-improving-mobile-ga...
來(lái)源:電子創(chuàng)新網(wǎng)
- 利用按鍵控制8×8LED點(diǎn)陣屏顯示圖形 19次下載
- 基于手繪輪廓圖的移動(dòng)端圖像檢索方法 1次下載
- Scratch圖形化編程軟件安裝包下載 0次下載
- 基于FPGA和DSP的機(jī)載圖形顯示系統(tǒng) 36次下載
- 圖形芯片設(shè)計(jì)全過(guò)程 108次下載
- 基于深度神經(jīng)網(wǎng)絡(luò)的端到端圖像壓縮方法 16次下載
- 如何使用移動(dòng)APP進(jìn)行健康管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 4次下載
- AN1246中文手冊(cè)之如何在Microchip圖形庫(kù)中創(chuàng)建控件
- Microchip圖形庫(kù)如何簡(jiǎn)化基于鍵盤的GUI的設(shè)計(jì)詳細(xì)中文資料概述
- Aurea圖形用戶界面的安裝與使用詳細(xì)中文資料概述
- 第10章 圖形用戶界面設(shè)計(jì)課件資料下載.ppt 6次下載
- Microchip圖形庫(kù)與鍵盤的配合使用 0次下載
- 基于FPGA的機(jī)載視頻圖形顯示系統(tǒng)設(shè)計(jì) 21次下載
- 移動(dòng)端VR需要突破的五大技術(shù)及移動(dòng)端VR設(shè)備發(fā)展趨勢(shì)的介紹 8次下載
- JAVA教程之移動(dòng)的遮照效果 2次下載
- 圖形渲染的技術(shù)和原理:探索視覺(jué)效果的奇妙世界 683次閱讀
- 30個(gè)MATLAB圖形繪制 1439次閱讀
- 如何優(yōu)化和提升濾波器的效果? 1268次閱讀
- 一種端到端的立體深度感知系統(tǒng)的設(shè)計(jì) 631次閱讀
- 如何提升權(quán)限運(yùn)行遠(yuǎn)程桌面客戶端 1278次閱讀
- 10分鐘搞定如何在QT環(huán)境模擬LVGL V8 4613次閱讀
- 在計(jì)算機(jī)圖形學(xué)中GPGPU需要用到的OpenGL概念 811次閱讀
- littleVGL開(kāi)源圖形庫(kù)的主要特性與移植過(guò)程 3144次閱讀
- 如何使用C672x有效地創(chuàng)建基于延遲的音頻效果 1398次閱讀
- PCB圖形轉(zhuǎn)移關(guān)鍵工藝過(guò)程分析 5551次閱讀
- 圖形顯示控制器的性能分類 2061次閱讀
- 常用電氣電路的圖形符號(hào) 5w次閱讀
- 圖形技術(shù)深度談——主流(中端)移動(dòng)平臺(tái)上的極速后處理特效 4693次閱讀
- 將TVM用于移動(dòng)端常見(jiàn)的ARM GPU,提高移動(dòng)設(shè)備對(duì)深度學(xué)習(xí)的支持能力 1w次閱讀
- 圖形處理器和顯卡什么區(qū)別和聯(lián)系 2.6w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1491次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說(shuō)明
- 4.28 MB | 18次下載 | 4 積分
- 5開(kāi)關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費(fèi)
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機(jī)和 SG3525的程控開(kāi)關(guān)電源設(shè)計(jì)
- 0.23 MB | 4次下載 | 免費(fèi)
- 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論
查看更多