330 likes | 608 Views
Spherical Maps with the Near-Equal Solid-Angle Property. Liang Wan Tien-Tsin Wong The Chinese University of Hong Kong. Spherical Maps. Represent the surrounding environment Applications Environment mapping Precomputed radiance transfer (PRT) Image-based relighting … Spherical maps
E N D
Spherical Maps with the Near-Equal Solid-Angle Property Liang Wan Tien-Tsin Wong The Chinese University of Hong Kong
Spherical Maps • Represent the surrounding environment • Applications • Environment mapping • Precomputed radiance transfer (PRT) • Image-based relighting • … • Spherical maps • Cubemap, longitude/latitude map, dual paraboloid map, sphere map, …
Criteria • Uniform distribution • How uniformly the samples are distributed? • Equal-area property • Whether the texels span the same solid-angle • Stretch • Measure the mapping distortion of texel shapes • Query efficiency • Speed of querying a point in the map • Base face number • 6-face map fits nicely into the hardware
Cubemap • Properties • 6 base faces • Fast look-up • Hardware cubemap • Drawbacks • Not uniformlydistributed • Not equal-area • Distortion at corners
Rhombic dodecahedron Isocube HEALPix Three Spherical Maps Equal-area Similar distortion Six-face,Equal-area
Base Faces 6 12 Cubemap HEALPix 12 6 Rhombic dodecahedron Isocube
Cubemap HEALPix Rhombic dodecahedron Isocube Sample Distribution Uneven sampling
Cubemap HEALPix Rhombic dodecahedron Shape Distortion Quadrilateral Not equal-area Shape distortion Similar distortion Isocube
HEALPix Construction • Originated in astrophysics • Curvilinear partitioning of the sphere
HEALPix Mapping 01 float3 hpmap(float3 dir) 02 { 03 float fn, u, v, iu, iv, x, y, z, t; 04 float tt, tn, tf, za, tmp, zone, south; 06 float3 res; 07 08 x=dir.x; y=dir.z; z=dir.y; 09 t = atan2(-y, x)/1.571; 10 t += step(t, 0.f) * 4.0; 11 za = 3.0 * abs(z); 12 tf = modf(t, tn); 13 // Equatorial or polar zone 15 if ( za < 2.0 ) { 16 // Equatorial zone 17 tt = t + 0.5; 18 tmp= z * 0.75; 19 u = modf(tt + tmp, iu); 20 v = modf(tt - tmp, iv); 21 fn = min(iu, iv); 22 fn+= 4 + (sign(iv-iu) - floor(fn/4))*4; 23 res= float3(fn, u, v); 24 } else { 25 // Polar zone 26 tmp= sqrt(3.0f - za); 27 // If in south pole zone 28 south = ( z < 0 ); 29 tt = tmp * tf; 30 tmp= 1.0 - tmp; 31 tf = tmp * south; 32 res= float3(tn+8*south, tmp-tf+tt, tf+tt); 33 } 34 return res; 35 }
HEALPix • Characteristics • Equal area • A hierarchical structure • Samples on parallel small circles • Facilitate spherical harmonic transform • Drawback • Texels in different base faces have different shapes
1 6 2 0 5 9 10 7 3 8 11 4 Rhombic Dodecahedron Construction • Great circle subdivision
Rhombic Dodecahedron • Characteristics • All texels are distorted similarly • Identical base faces • Geodesic property
HEALPix & Rhombic Dodecahedron • Drawbacks • Both consist of 12 base faces • Tailor-made programs for texture lookup • Difficult for mipmap construction and tri-linear filtering • What we desire? • 6 faces so as to fully utilize the hardware cubemap • Retain good properties
Isocube Construction • Spherical partitioning
R Q Isocube Mapping 01 float3 R2Q( float3 R ) 02 { 03 float2 I; 04 float3 Q; 05 float4 coef; 06 float phi, y, ya, bequ,quar; 07 08 // Compute azimuth angle and convert it in the range [0,4) 09 phi = 2*atan2(R.z, R.x)/PI; 10 phi+= step(phi, -0.5) * 4; 11 12 // Decide whether the pixel is in the equatorial region 13 y = R.y * 1.5; 14 ya = abs(y); 15 bequ= step(ya, 1.); 16 17 // Convert R → I 18 I.x = sqrt(3 - 2*ya); 19 I.x = lerp(I.x, 1, bequ); 20 I.y = phi * I.x; 21 22 // Map I → Q 23 quar= floor(phi + 0.5); 24 coef= texRECT(signTBL, float2(quar, 0)); 25 Q.x = dot(coef.xy, I); 26 Q.y = lerp(sign(y), y, bequ); 27 Q.z = dot(coef.zw, I); 28 29 return Q; 30 }
Isocube • Characteristics • Equalarea • 6 faces • Extremely fast look-up • Drawback • Distortion in polar regions
Environment Mapping HEALPix Rhombic Dodecahedron
Environment Mapping Isocube Cubemap
Rendering Comparison Demo Cubemap
Discussions • Performance comparison • All three maps are resampled from a high-resolution cubemap The timing test context: object with 106,466 vertices, Pentium IV 2.6 GHz CPU, nVidia GeForceFX 6800 Ultra.
Potential Applications • Equal-area, uniform sampling • OmniMax video HEALPix, isocube • Similar distortion • Shadow mapping HEALPix, rhombic dodecahedron • Hemicube Cubemap, isocube
References • HEALPix • K. M. Górski, E. Hivon, and B. D. Wandelt, Analysis issues for large CMB data sets. In Proc. of the MPA/ESO Conference on Evolution of Large-Scale Structure: from Recombination to Garching, 1998 • T.T. Wong, L. Wan, C.S. Leung, and P.M. Lam, Real-time environment mapping with equal solid-angle spherical quad-map, Shader X4: Lighting & Rendering, Edited by W. Engel, Charles River Media, 2006 • L. Wan, T.T. Wong, and C.S. Leung, Spherical Q2tree for sampling dynamic environment sequences, in Proc. of Eurographics Symposium on Rendering 2005 (EGSR 2005), Konstanz, Germany, pp. 21-30, 2005 • Isocube • L. Wan, T.T. Wong, and C.S. Leung, Isocube: Exploiting the Cubemap Hardware, IEEE Transactions on Visualization and Computer Graphics, to appear
Webpage • The updated document can be found in the website http://www.cse.cuhk.edu.hk/~ttwong/papers/spheremap/spheremap.html • The demo code is free to download from the link http://www.cse.cuhk.edu.hk/~ttwong/demo/spheremap/spheremap.html
Credits & Acknowledgments • Rhombic dodecahedron is a joint work with Chi-Wing Fu (HKUST) and Chi-Sing Leung (CityU) • Isocube is a joint work with Chi-Sing Leung (CityU) • Thanks to Lai-Sze Ng and Ping-Man Lam for implementing part of the codes • Thanks to Xuemiao Xu for capturing some of the panoramas • This work is supported by Research Grants Council of the Hong Kong Special Administrative Region, under RGC Earmarked Grants (Project No. CUHK416806)