160 likes | 273 Views
Per-Pixel Evaluation of Parametric Surfaces on GPU. Takashi Kanai. Yusuke Yasui. Keio University SFC. ASTOM Inc. ACM Workshop on General Purpose Computing on Graphics Processors Los Angeles, USA, 7-8 August, 2004. Per-Pixel Evaluation of Parametric Surfaces on GPU. Takashi Kanai.
E N D
Per-Pixel Evaluation of Parametric Surfaces on GPU Takashi Kanai Yusuke Yasui Keio University SFC ASTOM Inc. ACM Workshop on General Purpose Computing on Graphics Processors Los Angeles, USA, 7-8 August, 2004
Per-Pixel Evaluation of Parametric Surfaces on GPU Takashi Kanai Yusuke Yasui Keio University SFC ASTOM Inc. ACM SIGGRAPH 2004 Poster Los Angeles, USA, 8-12 August, 2004
Surface Rendering • In the rendering of parametric surfaces, in general, we often use a polygon to draw the approximation of its original surface. However, such rendering of a polygon does not represent its original surface exactly. This occurs notably in the case that a polygon is coarse or that a view position becomes closer to a surface.
Our Contribution Use of GPU (Programmable Graphics Hardware) • Fragment-based evaluation (position, derivatives) of parametric surfaces on GPU • Robust and high-quality evaluation • Interactive computation
Parametric Surfaces on GPU • Linear form of parametric surfaces (Bezier, B-spline, Coons, … ) Control points stored to texture(s) Basis functions directly provided in a fragment program
Control points eigenvalues for A subdivision matrix Coefficients of eigenbasis functions Bi-cubic B-spline basis functions Subdivision Surface on GPU #1 Parametric Form of Subdivision Surface [Stam98] • u,v n,k (n: subdivision level, k: domain id) • 1st derivatives of both u, v directions can also be computed
Subdivision Surface on GPU #2 Implementation on GPU • : computed in advance • Computed for all patterns of n, k (n = 1…15, k = 1, 2, 3. … 45 patterns) →stored in a texture • In the fragment program, • Fetch 16 control points from a textureby n, k • Basis functions … directly computed in FP • Linear combination of basis functions and control points
Subdivision Surface on GPU #3 Texture Storage
Subdivision Surface on GPU #3’ Texture Storage (Close-up View)
Rasterization • Subdivided Polygon - parameters u,v - face id Fragments fragment program #1 fragment program #2 • - Computen and k from u,v - Fetch control points from a texture • - Compute basis functions • → surface position - Compute n and k - Fetch control points - Compute basis functions →derivatives, normal→output Algorithm Overview
For each fragment, Compute a reflection vector Compute an intersection point Assign a color to a fragment A line on a surface with different color … a reflection line Application: Reflection Lines[Yasui and Kanai, SMI 2004]
Results wireframe polygon-based fragment-based
Polygon-based Pixel-based
Discussion • Position of a fragment Position of parametric surface computed on GPU Current solution: • input polygon: better approximation of a surface • run fragment program with bigger size of image
Conclusion and Future Work Conclusion • Fragment-based evaluation of parametric surfaces on GPU • Robust computation • High-quality even for low polygons • Interactive computation Future Work • The number of instruction sets in a fragment program 1,024 (GF 5x00) → 65,000 (GF 6x00) Processing on a single fragment program will be possible (cuurrently … two FPs) in the near future.
Contact & References Takashi Kanai Keio University SFC E-mail: kanai@sfc.keio.ac.jp Web: http://www.sfc.keio.ac.jp/~kanai/ References Yusuke Yasui and Takashi Kanai, "Surface Quality Assessment of Subdivision Surfaces on Programmable Graphics Hardware", Proc. International Conference on Shape Modeling and Applications 2004 (Genova, Italy, 7-9 June 2004), pp.129-136, 2004.