1.1 研究背景
近年來手機遊戲已經成為市場的主流,隨著手機晶片越來越厲害,功能越來 越強大,手機 APP 已經成為大家生活不可或缺的一部分。隨著手機遊戲的快速進 步,從 2D 進步到 3D 的手機遊戲,對於畫面品質和效能也是越來越苛求。光跡追 蹤(ray tracing)在電腦圖學領域中扮演著重要的角色,它是一種用於渲染(rendering) 的演算法,藉由數學式子和物理理論運算光的折射、反射與各種變化,藉以得到 高品質的畫面且增加場景的真實性。然而光跡追蹤在渲染速度上是相對於其他渲 染效果較慢,需要大量計算一些數學公式,所以使用了開放式計算語言(OpenCL) 來提升效能,且在 GPU 上能讓設計程式功能便利許多,並且藉由多核心平行化的 方式將能夠有效的處理計算機圖學龐大的計算量,已達到硬體加速的效果。讓手 機也能在短時間內達到相當真實的畫面效果。
1.2 研究目的
光跡追蹤(ray tracing)一直是讓 3D 場景有很高擬真度的渲染方法,電腦圖學 很早就開始在針對光跡追蹤去做研究,並將他們用在現今電腦遊戲中,以達到真 實渲染效果。可是現今手機如此發達卻幾乎沒有將此技術運用在手機遊戲中。主 要有開發上的限制,促使開發者不願去嘗試。因為光跡追蹤本身需要耗費大量的 計算能力導致渲染時間過長,非常難以即時互動。所以本研究想在手機中嘗試使 用光跡追蹤畫出高擬真度的畫面效果,並盡可能達到即時互動,讓手機上的遊戲 或是渲染效果能更加逼真。本研究透過手機 GPU 的平行計算方式並配合開放式 的計算語言(OpenCL)去加速光跡追蹤,讓手機上的畫面也可以在短時間內達到高 品質的效果。本研究主要探討兩個方向,第一,光跡追蹤搭配 OpenCL 在手機上 的運算效果和畫面真實度。第二,將實做出來的手機效能與電腦效能做比較,並 歸納出一份分析報告,且找出光跡追蹤在手機性能上部分資源不足的情況。
1.3 論文架構
本篇論文一共分為五個章節:第一章為簡介,說明本篇論文的研究背景以及 目的,和論文架構概述。第二章為文獻探討,主要針對所要移植的光線追蹤演算 法做概論和分析,且針對 Android 的相關移植和跨平台技術,如何使用 Android NDK 將 OpenCL 移植到 Android 系統上等相關論文概述。以及針對 OpenCL 跨平 台的彈性基礎上,配合 GPU 平行化架構特性(SIMT),有效利用共享記憶體區塊,
加速最終彙集的步驟。第三章為系統實作,針對本研究所採用的技術,以及所實 作的演算法和平台進行介紹。第四章為實驗數據分析,針對不同手機晶片加以測 試,找出適合用於手機架構的 ray tracing 演算法。第五章為本研究的結論與未來 展望的探討。