簡易檢索 / 詳目顯示

研究生: 許志遠
Chih-Yuan Hsu
論文名稱: OpenGL ES著色語言於Android之應用與分析
Application and Analysis of OpenGL ES Shading Language on Android
指導教授: 張鈞法
Chang, Chun-Fa
學位類別: 碩士
Master
系所名稱: 資訊工程學系
Department of Computer Science and Information Engineering
論文出版年: 2013
畢業學年度: 101
語文別: 中文
論文頁數: 46
中文關鍵詞: 馮式著色凹凸映射紋理映射立方環境映射安卓開放式圖形語言於嵌入式系統
英文關鍵詞: Phong Shading, Bump Mapping, Relief Mapping, Cube Mapping, Android, OpenGL ES
論文種類: 學術論文
相關次數: 點閱:650下載:6
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • Android發展自2003年,廣用於手機、平板等mobile裝置,其市占率於2013年已達75%,可見其重要性。在使用者對於解析度、畫質等需求越高的情況下,純粹使用2D繪圖已稍嫌不足夠,如何將3D繪圖加以應用已為趨勢。
    嵌入式系統在硬體上較受限制,所以我們考量如何在效能與畫質兼具的情況下達到3D視覺效果,經過介紹OpenGL ES的繪圖環境,本論文透過使用OpenGL ES Shading Language(GLSL ES),讓3D繪圖的應用在Android有更大的展現,實現Phong Shading、Bump Mapping、Relief Mapping、Cube Mapping等不同的繪圖(render)方式,分別介紹不同繪圖理論及作法。
    除了上述提供各種適用於嵌入式的繪圖作法外,透過實作的FPS測量數據以提供硬體規格上效能考量的切換,並可作為程式開發人員選用何種繪圖方式開發的參考依據,另外,介紹Android NDK(Android Native Development Kit),由C++所寫的程式專案能夠過NDK移植到Android,帶來另一種在Android上開發3D繪圖的想法。

    附圖目錄 V 附表目錄 VI 第一章 緒論 1 1.1背景 1 1.2研究動機 1 1.3論文架構 2 第二章 文獻探討 3 2.1 OpenGL ES 3 2.1.1 OpenGL ES 1.X 3 2.1.2 OpenGL ES 2.X 4 2.1.3 OpenGL ES 3.X 6 2.2 Shader 6 2.2.1 Vertex Shader 7 2.2.2 Fragment Shader 7 2.3 Android NDK 8 2.4 Precomputed Light Transport For All-Frequency Relighting 10 第三章 技術討論 11 3.1 Phong Shading 11 3.1.1 Phong interpolation 11 3.1.2 Phong reflection model 13 3.1.3實作細節 13 3.2 Bump Mapping 14 3.2.1 Bump mapping basics 15 3.2.2實作細節 17 3.3 Relief Mapping 18 3.3.1 Relief mapping basics 18 3.3.2 binary search 19 3.3.3 linear search 20 3.3.4 Self shadow 21 3.3.5實作細節 22 3.4 Cube Mapping 23 3.4.1 Cube mapping basics 23 3.4.2貼圖方式 23 3.4.3反射環境貼圖 24 3.4.4實作細節 25 3.5 Android繪圖環境設置 26 3.5.1基礎設置 26 3.5.2進階設置 28 3.5.3其他設置 29 第四章 實驗結果與分析 30 4.1 Phong Shading 30 4.2 Bump Mapping 31 4.3 Relief Mapping 32 4.4 Cube Mapping 33 4.5 分析比較 34 第五章 結論與未來方向 38 附錄 39 參考文獻 44 其他參考資料 45

    參考文獻

    [Bli78] Blinn, J.-F.: Simulation of Wrinkled Surfaces, Computer Graphics, Vol. 12 (3), pp. 286-292 SIGGRAPH-ACM, August 1978.
    [BM08] Blythe, D., Munshi, A.: OpenGL ES Common/Common-Lite Profile Specification Version 1.1.12 (Difference Specification) (Annotated), 2008.
    [Gre86] Greene, N.: Environment mapping and other applications of world projections, 1986.
    [Mik08] Mikkelsen, M.: Simulation of Wrinkled Surfaces Revisited, March 26, 2008
    [ML08] Munshi, A., Leech, J.:OpenGL ES Common/Common-Lite Profile Specification Version 1.1.12 (Full Specification), 2008
    [ML10] Munshi, A., Leech, J.: OpenGL ES Common Profile Specification Version 2.0.25 (Full
    Specification), November 2, 2010.
    [NRH04] Ng, R., Ramamoorthi, R., Hanrahan, P.: Triple Product Wavelet Integrals for All-Frequency Relighting. ACM SIGGRAPH, 2004.
    [Pho75] Phong, B.-T.: Illumination for Computer Generated Pictures, Comm. ACM, Vol 18(6):311-317, June 1975.
    [POC05] Policarpo, F., Oliveira, M.-M, Comba, J.-L.: Real-Time Relief Mapping on Arbitrary Polygonal Surfaces, ACM 2005.

    其他參考資料

    [1] ARIESS.: OpenGL ES:Tegra 5才完全支援,未來或融合到OpenGL中 - 電腦硬體情報版 - 鐵之狂傲. http://www.gamez.com.tw/thread-580832-1-1.html.
    [2] Android and Me.: HTC leaks new features of Android 4.3 [Updated] | Android and Me. http://androidandme.com/2013/05/news/htc-leaks-new-features-of-android-4-3/.
    [3] Android Developers.: Android NDK | Android Developers. http://developer.android.com/tools/sdk/ndk/index.html.
    [4] Andreassen, Ø., Helgeland, A.: Introduction to UNIK-4660/TMA-4235. http://prosjekt.ffi.no/unik-4660/lectures04/chapters/Introduction.html.
    [5] Android Developers.: Building an OpenGL ES Environment | Android Developers. http://developer.android.com/training/graphics/opengl/environment.html.
    [6] Android Developers.: OpenGL | Android Developers.
    http://developer.android.com/guide/topics/graphics/opengl.html.
    [7] Construct Wiki.: SourceForge.net: Bumpmapping - construct. http://sourceforge.net/apps/mediawiki/construct/index.php?title=Bumpmapping.
    [8] Friedrich, A.-L.: How to create realistic skies with POV-Ray - part 9 - Cubic Environment Mapping: skyboxes and cubemaps. http://www.f-lohmueller.de/pov_tut/backgrnd/p_sky9.htm.
    [9] IDL Online Help.: About Shader Programs.
    http://climserv.ipsl.polytechnique.fr/documentation/idl_help/About_Shader_Programs.html. 2007.
    [10] iOS Developer Library.: OpenGL ES Programming Guide for iOS: OpenGL ES on iOS. http://developer.apple.com/library/iOS/#documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/OpenGLESontheiPhone/OpenGLESontheiPhone.html.
    [11] Javed , S.: OpenGL ES 2.0 examples for Android, 2011. https://code.google.com/p/androidshaders/source/browse/?r=dfb2745160cb5f98da1b135218a0d192922a5e36.
    [12] Khronos Group.: OpenGL ES - The Standard for Embedded Accelerated 3D Graphics. http://www.khronos.org/opengles/1_X/.
    [13] Khronos Group.: OpenGL ES 2_X - The Standard for Embedded Accelerated 3D Graphics. http://www.khronos.org/opengles/2_X/.
    [14] Khronos Group.: Khronos Releases OpenGL ES 3.0 Specification to Bring Mobile 3D Graphics to the Next Level - Khronos Group Press Release. http://www.khronos.org/news/press/khronos-releases-opengl-es-3.0-specification.
    [15] Oliveira, M.-M.: Manuel's Relief Texture Mapping Page. http://www.inf.ufrgs.br/~oliveira/RTM.html.
    [16] OpenGL Wiki.: Vertex Shader - OpenGL.org. http://www.opengl.org/wiki/Vertex_Shader.
    [17] Photonics Wiki.: Propagation, Reflection and Refraction - CMDITRWIKI. http://photonicswiki.org/index.php?title=Propagation,_Reflection_and_Refraction.
    [18] Wikipedia.: Bump mapping - Wikipedia, the free encyclopedia. Retrieved July 19, 2013, from http://en.wikipedia.org/wiki/Bump_mapping#cite_note-Mikkelsen-2.
    [19] Wikipedia.: Cube mapping - Wikipedia, the free encyclopedia. Retrieved July 19, 2013, from http://en.wikipedia.org/wiki/Cube_mapping.
    [20] Wikipedia.: Normal mapping - Wikipedia, the free encyclopedia. Retrieved July 19, 2013, from http://en.wikipedia.org/wiki/Normal_mapping.
    [21] Wikipedia.: OpenGL - Wikipedia, the free encyclopedia. Retrieved July 19, 2013, from http://zh.wikipedia.org/wiki/OpenGL.
    [22] Wikipedia.: OpenGL ES - Wikipedia, the free encyclopedia. Retrieved July 19, 2013, from http://en.wikipedia.org/wiki/OpenGL_ES.
    [23] Wikipedia.: Phong shading - Wikipedia, the free encyclopedia. Retrieved July 19, 2013, from http://en.wikipedia.org/wiki/Phong_shading#cite_ref-3.
    [24] Wikipedia.: Phong reflection model - Wikipedia, the free encyclopedia. Retrieved July 19, 2013, from http://en.wikipedia.org/wiki/Phong_reflection_model.
    [25] Wikipedia.: Reflection mapping - Wikipedia, the free encyclopedia. Retrieved July 19, 2013, from http://en.wikipedia.org/wiki/Reflection_mapping.
    [26] Wikipedia.: Shader - Wikipedia, the free encyclopedia. Retrieved July 19, 2013, from http://en.wikipedia.org/wiki/Shader.

    下載圖示
    QR CODE