研究生: |
邱永豐 Chiu, Yung-Feng |
---|---|
論文名稱: |
基於GPU實作照片品質之繪圖及動畫演算法 GPU-Based Photo-Realistic Rendering and Animation |
指導教授: |
張鈞法
Chang, Chun-Fa 金仲達 King, Chung-Ta |
口試委員: |
簡韶逸
Chien, Shao-Yi 莊永裕 Chuang, Yung-Yu 李潤容 Lee, Ruen-Rone |
學位類別: |
博士 Doctor |
系所名稱: |
電機資訊學院 - 資訊工程學系 Computer Science |
論文出版年: | 2012 |
畢業學年度: | 100 |
語文別: | 英文 |
論文頁數: | 64 |
中文關鍵詞: | 以點為基礎之繪圖方式 、光線追蹤 、反鋸齒 、繪圖處理器 |
外文關鍵詞: | antialiasing, ocean rendering |
相關次數: | 點閱:67 下載:0 |
分享至: |
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
本研究主要是探討如何利用目前最新一代繪圖處理器(GPU)來產生即時高品質畫面及動畫效果,分別以『Hardware Accelerated EWA Surface Splatting』、 『GPU-Based Ocean Rendering』和『Subpixel Reconstruction Antialiasing for Ray Tracing』 為研究題目。針對這些項目的主要原因是在於它們不易在傳統採用fixed function 架構之GPU上加速產生抑或是採用CPU以軟體方式達成。然而,隨著GPU性能的提高以及可程式化能力日益提升,讓這些原屬於非即時(non-real-time)的繪圖效果透過GPU加速而出現在需要及時成像(real-time rendering)的應用中。
傳統GPU以三角形(triangle)為基本繪圖元素,在『Hardware Accelerated Elliptical Weighted Average (EWA) Surface Splatting』研究主題中,由於輸入幾何模型中的三度空間點數(point)遠遠超過輸出畫面pixel 的個數,所以我們改採用點為基本繪圖元素。其中提出LDC normal reduction簡化方式刪除原有輸入幾何模型多餘的三度空間點,透過該簡化方式,其三度空間點數可達到最少而無破圖瑕疵畫面產生,而繪圖所需時間也因點數變少而縮短。另外,由於以點為基礎之繪圖方法需為每一個三度空間中的點計算涵蓋該點在畫面footprint之二維方正區域,我們透過計算橢圓輪廓方式取代傳統採用距離計算方式,使得所求得的方正區域恰好涵蓋該三度空間點在畫面之footprint。接下來我們亦將解決鋸齒(aliasing)問題而採用之low-pass filter納入該點畫面footprint計算。最後我們採用object-space EWA filter 方式取代架構於screen-space EWA filter的作法以正確地計算每一個位於方正區域內之像素(pixel)是否座落於該點之footprint內及其混色比重(color blending weight)。透過上述幾項改進方式,我們提供一正確splat並同時可兼顧繪圖效能之以點為基礎的繪圖方法。
在『GPU-Based Ocean Rendering』研究主題中,我們只對目前可視範圍內之海面利用GPU計算其surface tessellation,該作法可達到最佳之level of detail(LOD)控制。接下來利用上述求得之海面取樣點的水平座標,以作為參數對預先計算之height maps進行取樣以求該點之海浪高度。另外,該架構於object-space 海浪高度計算方式使得我們不僅可正確計算橫跨海面物體之水面折射與反射效果,亦可根據該高度計算海水顏色。由於採用以水平座標計算海浪高度之方式並無法呈現浪花效果,我們結合一利用GPU計算之state-preserving particle system模擬浪花效果。透過以上幾項改進方式,我們提供一個即時又兼具高品質畫面效果之繪製海洋方法。
在『Subpixel Reconstruction Antialiasing for Ray Tracing』研究主題中,我們延伸Subpixel Reconstruction Antialiasing (SRAA)的作法提出一個採用GPU rasterization hybrid方式能夠有效率地解決 ray tracing上幾何鋸齒問題。首先透過GPU 以rasterization方式取得subpixel之除顏色以外的幾何資訊,其中包含深度(depth)與法向量(normal),相較於使用ray traced方式取得subpixel幾何資訊,該部分計算是可被忽略的。接下來結合這些幾何資訊於ray tracing演算法中計算權重值用以混合該subpixel周遭鄰近pixel顏色而求得其顏色值,其中權重值計算公式裡亦將陰影(shadow)邊界納入考慮,最後將隸屬該pixel之所有subpixel顏色依等比例混合為其最終之顏色,藉以達到消除鋸齒的效果。透過以上幾項改進方式,我們提供ray tracing 繪圖方式一個有效率解決幾何鋸齒問題之方法。
In this thesis, we investigate how to utilize the modern Graphics Process Units (GPU) to generate high quality images and animations in real-time rendering speed for the following three applications: “Hardware Accelerated Elliptical Weighted Average (EWA) Surface Splatting”, “GPU-Based Ocean Rendering”, and “Subpixel Reconstruction Antialiasing for Ray Tracing”. Although modern GPUs have great computational power as well as high memory bandwidth, they still require some tweaking to transform the problems into graphics-like shader programs that operate on textures and frame buffers to port the applications on GPUs listed above.
In the work of hardware accelerated EWA Surface Splatting, we look into the performance-quality trade-off between previous methods that use a vertex-based rasterization setup and the object-space EWA splatting that uses a quad-based rasterization setup. Our main contributions are the addition of accurate low-pass filtering to the vertex-based method and the modification of the (screen-space) bounding box setup that avoids improper clipping of the splat ellipses. The end result is a vertex-based surface splatting method that produces rendering quality indistinguishable from quad-based object-space EWA splatting, especially in terms of perspective accuracy and anti-aliasing. We achieve better rendering quality than other GPU-accelerated surface splatting methods with little impact to rendering speed, especially in high-resolution display.
In the work of real-time ocean rendering, we present an efficient algorithm using the newest features of GPU. It differs from previous works in three aspects: adaptive GPU-based ocean surface tessellation, sophisticated optical effects for shallow water, and effects of spray and spume for oscillating waves. Our tessellation scheme not only offers easier level-of-detail (LOD) control but also avoids the loading of vertex attributes from CPU to GPU at each frame. The object-space wave sampling approach allows us to produce sophisticated optical effects for shallow water and to implement a state-preserving particle system for simulating spray motions interactively.
In the work of subpixel reconstruction antialiasing for ray tracing, we introduce a practical antialiasing approach for interactive ray tracing and path tracing. Our method is inspired by the Subpixel Reconstruction Antialiasing (SRAA) method which separates the shading from visibility and geometry sampling to produce antialiased images at reduced cost. While SRAA is designed for GPU-based deferred shading renderer, we extend the concept to ray-tracing based applications. We take a hybrid rendering approach in which we add a GPU rasterization step to produce the depth and normal buffers with subpixel resolution. By utilizing those extra buffers, we are able to produce antialiased ray traced images without incurring performance penalty of tracing additional primary rays. Furthermore, we go beyond the primary rays and achieve antialiasing for shadow rays and reflective rays as well.
[1] Rudolph Balaz and Sam Glassenberg. Direct3D. Microsoft Corp. http://microsoft.sitestream.com/PDC05/PRS/PRS416_files/Botto_files/PRS416_Balaz_Glassenberg.ppt.
[2] M. Botsch, A. Wiratanaya, and L. Kobbelt. Efficient high quality rendering of point sampled geometry. Proceedings of the 13th Eurographics workshop on Rendering, 53–64, 2002.
[3] M. Botsch, and L. Kobbelt. High-quality point-based rendering on modern GPUs. Proceedings of the 11th Pacific Conference on Computer Graphics and Applications, IEEE Computer Society, 335–346, 2003.
[4] M. Botsch, M. Spernat, and L. Kobbelt. Phong splatting, Eurgraphics symposium on point-based graphics, 2004.
[5] M. Botsch, A. Hornung, M. Zwicker, and L. Kobbelt. High-quality surface splatting on today’s GPUs. Eurgraphics symposium on point-based graphics, 2005.
[6] B. Chen and M. X. Nguyen. POP: a hybrid point and polygon rendering system for large data. In Proc. IEEE Visulization 2001, pages 45.52, 2001.
[7] L. Coconu and H.-C. Hege. Hardware-accelerated point-based rendering of complex scenes. Proceedings of the 13th Eurographics workshop on Rendering, 43–52, 2002.
[8] C.-F. Chang, G. Bishop, and A. Lastra. LDI tree: a hierarchical representation for image-based rendering. Proceedings of the 26th annual conference on Computer graphics and interactive techniques, ACM Press/Addison-Wesley Publishing Co., 291–298, 1999.
[9] C. Dachsbacher, C. Vogelgsang, and M. Stamminger. Sequential point trees. ACM Trans. Graph. 22, 3, 657–662, 2003.
[10] N. Greene and P. Heckbert. Creating raster omnimax images from multiple perspective views using the elliptical weighted average filter. IEEE Computer Graphics & Applications, 6(6):21–27, June 1986.
[11] G. Guennebaud and M. Paulin. Efficient screen space approach for hardware accelerated surfel rendering. Vision, Modeling and Visualization, Munich, IEEE Signal Processing Society, 1–10, 2003.
[12] L. Kobbelt, M. Botsch. A survey of point-based techniques in computer graphics. Computers & Graphics 28, 6 (2004), 801–814.
[13] W. R. Mark., R. S. Glanville, K. Akeley, and M. J. Kilgard. Cg: a system for programming graphics hardware in a c-like language. ACM Trans. Graph. 22, 3, 896–907, 2003.
[14] Jason L. Mitchell and Pedro V. Sander. Applications of explicit early-Z culling. ATI Research. http://www.ati.com/developer/ siggraph04/ShadingCourse2004_EarlyZ.pdf.
[15] R. Pajarola., M. Sainz, P. Guidotti. Confetti: Object-space point blending and splatting. IEEE Transactions on Visualization and Computer Graphics 10, 5 (2004), 598–608.
[16] H. Pfister, M. Zwicker, V.B. Jeroen, and M. Gross. Surfels: surface elements as rendering primitives. Proceedings of the 27th annual conference on Computer graphics and interactive techniques, ACM Press/Addison-Wesley Publishing Co., 335–342, 2000.
[17] L. Ren, H. Pfister, and M. Zwicker. Object space EWA surface splatting: A hardware accelerated approach to high quality point rendering. Computer Graphics Forum 21, 3 Sept. Proc. Eurographics, 2002.
[18] S. Rusinkiewicz, and M. Levoy. Qsplat: a multiresolution point rendering system for large meshes. Proceedings of the 27th annual conference on Computer graphics and interactive techniques, ACM Press/Addison-Wesley Publishing Co., 343–352, 2000.
[19] M. Sainz, R. Pajarola. Point-based rendering techniques. Computers & Graphics 28, 6 (2004), 869–879.
[20] M. Zwicker, H. Pfister, V. B. Jeroen, and M. Gross. Surface splatting. Proceedings of the 28th annual conference on Computer graphics and interactive techniques, ACM Press, 371–378, 2001.
[21] M. Zwicker. Continuous reconstruction, rendering, and editing of point-sampled surfaces. Ph.D. Dissertation. No. 15135, University of ETH Zurich, Department of Computer Science, 2003.
[22] M. Zwicker, J. Ranen, M. Botsch, C. Dachsbacher, and M. Pauly. Perspective accurate splatting. Proceedings of the 2004 Conference on Graphics Interface, Canadian Human-Computer Communications Society, 247–254, 2004.
[23] Belyaev, V., “Real-time rendering of shallow water,” GraphiCon’2004 , Conference Proceedings, 2004.
[24] Demers, J., “The Making of ‘Clear Sailing,” Secrets of the NVIDIA Demo Team, CEDEC 2004.
[25] Fournier, A., and Reeves, W.T., “A simple model of ocean waves,” In Computer Graphics (Proceedings of SIGGRAPH 86), vol.20, pp. 75-84, 1986.
[26] Hu, Y., Velho, L., Tong, X., Guo, B., and Shum, H., “Realistic, real-time rendering of ocean waves,” Computer Animation and Virtual Worlds, Special Issue on Game Technologies, 2004.
[27] Johanson, C., “Real-time water rendering,” Master of science thesis, Lund University, March, 2004.
[28] Jason L. Mitchell, "Real-Time Synthesis and Rendering of Ocean Water," ATI Technical Report, April 2005.
[29] Jensen, L. S. and Goliáš, R., “Deep-water animation and rendering,” Gamasutra article on realtime water, Sept., http://www.gamasutra.com/gdce/jensen/jensen_01.htm, 2001.
[30] Jeschke, S., Birkholz, H., and Schmann, H., “A procedural model for interactive animation of breaking ocean waves,” WSCG’2003, Plzen, February 3-7, 2003.
[31] Kryachko, Y., “Using vertex texture displacement for realistic water rendering,” GPU Gems 2, Chapter 18, 2005.
[32] Latta, L., “Building a million particle systems,” Massive Development GmbH, http://www.2ld.de/gdc2004/, 2004.
[33] Nishita, T. and Nakamae, E., “Method of displaying optical effects within water using accumulation-buffer,” Proc. of ACM SIGGRAPH 1994, August, pp. 373–380, 1994.
[34] Preetham, A. J., Shirley P., and Smits, B., “A practical analytic model for daylight,” Proc. of ACM SIGGRAPH 1999, August, pp.91–100, 1999.
[35] Premože, S. and Ashikhmin, M., “Rendering natural waters,” Computer Graphics Forum 20, 4, pp. 189–200, 2001.
[36] Reeves, W. T., “Particle Systems - A Technique for Modeling a Class of Fuzzy Objects,” ACM SIGGRAPH Proceedings, 1983.
[37] Seafriends marine conservation and education centre, “Under water photography: water and light,” http://www.seafriends.org.nz/phgraph/water.htm
[38] Tessendorf, J., “Simulating ocean water,” ACM SIGGRAPH 2001 course notes, http://home1.get.net/tssndrf/, 2001.
[39] Carsten Benthin. Realtime Ray Tracing on Current CPU Architectures. PhD thesis, Saarland University, 2006.
[40] Jacco Bikker. Arauna real-time ray tracer and Brigade real-time path tracer.
[41] Matthäus G. Chajdas, Morgan McGuire, and David Luebke. Subpixel reconstruction antialiasing for deferred shading. In Symposium on Interactive 3D Graphics and Games, I3D ’11, pages 15–22, 2011.
[42] Marko Dabrovic. Sponza atrium, http://hdri.cgtechniques.com/ sponza/files/, 2002.
[43] Johannes Gunther, Stefan Popov, Hans-Peter Seidel, and Philipp Slusallek. Realtime ray tracing on gpu with bvh-based packet traversal. In Proceedings of the 2007 IEEE Symposium on Interactive Ray Tracing, pages 113–118, 2007.
[44] Daniel Reiter Horn, Jeremy Sugerman, Mike Houston, and Pat Hanrahan. Interactive k-d tree gpu raytracing. In Proceedings of the 2007 symposium on Interactive 3D graphics and games, I3D ’07, pages 167–174, 2007.
[45] Jorge Jimenez, Diego Gutierrez, Jason Yang, Alexander Reshetov, Pete Demoreuille, TobiasBerghoff, Cedric Perthuis, Henry Yu, Morgan McGuire, Timothy Lottes, Hugh Malan, Emil Persson, Dmitry Andreev, and Tiago Sousa. Filtering approaches for real-time anti-aliasing. In ACM SIGGRAPH Courses, 2011.
[46] Bongjun Jin, Insung Ihm, Byungjoon Chang, Chanmin Park,Wonjong Lee, and Seokyoon Jung. Selective and adaptive supersampling for realtime ray tracing. In Proceedings of the Conference on High Performance Graphics 2009, HPG ’09, pages 117–125, 2009.
[47] Gábor Liktor and Carsten Dachsbacher. Decoupled deferred shading for hardware rasterization. In Proceedings of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games, I3D ’12, pages 143–150, New York, NY, USA, 2012. ACM.
[48] Don P. Mitchell. Generating antialiased images at low sampling densities. In Proceedings of the 14th annual conference on Computer graphics and interactive techniques, SIGGRAPH ’87, pages 65–72, 1987.
[49] J. Painter and K. Sloan. Antialiased ray tracing by adaptive progressive refinement. In Proceedings of the 16th annual conference on Computer graphics and interactive techniques, SIGGRAPH ’89, pages 281–288, 1989.
[50] Steven G. Parker, James Bigler, Andreas Dietrich, Heiko Friedrich, Jared Hoberock, David Luebke, David McAllister, Morgan McGuire, Keith Morley, Austin Robison, and Martin Stich. Optix: a general purpose ray tracing engine. ACM Trans. Graph., 29:66:1–66:13, July 2010.
[51] Emil "Humus" Persson. Geometric postprocess anti-aliasing (GPAA), march 2011, http://www.humus.name/index.php?page=3d&id=86.
[52] Emil "Humus" Persson. Geometry buffer anti-aliasing (GBAA), july 2011, http://www.humus.name/index.php?page=3d&id=87.
[53] Jonathan Ragan-Kelley, Jaakko Lehtinen, Jiawen Chen, Michael Doggett, and Frédo Durand. Decoupled sampling for graphics pipelines. ACM Trans. Graph., 30(3):17:1–17:17, May 2011.
[54] Alexander Reshetov. Morphological antialiasing. In Proceedings of the Conference on High Performance Graphics 2009, HPG ’09, pages 109–116, 2009.
[55] Min Shih, Yung-Feng Chiu, Ying-Chieh Chen, and Chun-Fa Chang. Real-time ray tracing with CUDA. In Proceedings of the 9th International Conference on Algorithms and Architectures for Parallel Processing, ICA3PP ’09, pages 327–337, 2009.
[56] Styves. Normal filter anti-aliasing, http://www.gamedev.net/topic/580517-nfaa— a-post-process-anti-aliasing-filter-resultsimplementation-details, 2010.
[57] Ingo Wald. Realtime Ray Tracing and Interactive Global Illumination. PhD thesis, Saarland University, 2004.
[58] Sven Woop and Manfred Ernst. Embree - photo-realistic ray tracing kernels, http://software.intel.com/en-us/articles/embreehighly-optimized-visibility-algorithms-formonte-carlo-ray-tracing/, June 2011.
[59] Sven Woop, Jörg Schmittler, and Philipp Slusallek. RPU: a programmable ray processing unit for realtime ray tracing.
[60] Lei Yang, Pedro V. Sander, and Jason Lawrence. Geometry-aware framebuffer level of detail. Computer Graphics Forum (Proc. Of Eurographics Symposium on Rendering 2008), 27(4):1183–1188, 2008.
[61] DirectX HLSL, http://msdn.microsoft.com/en-us/library/bb509561(VS.85).aspx
[62] OpenGL GLSL, http://www.opengl.org/documentation/glsl/
[63] NVIDIA CUDA, http://www.nvidia.com/object/cuda_home.html#
[64] A. Lastra, S. Molnar, M. Olano, and Y. Wang, “Real-time programmable shading,” In Proceedings of the 1995 Symposium on interactive 3D Graphics (Monterey, California, United States, April 09 - 12, 1995). SI3D '95. ACM, New York, NY.
[65] M. Olano and A. Lastra, “A shading language on graphics hardware: the pixelflow shading system,” In Proceedings of the 25th Annual Conference on Computer Graphics and interactive Techniques SIGGRAPH '98. ACM, New York, NY, 159-168.
[66] S. Upstill, “The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics.” Addison-Wesley. 1990.