Octahedron Environment Maps
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Octahedron Environment Maps Thomas Engelhardt, Carsten Dachsbacher Visualization Research Center, University of Stuttgart Email: {thomas.engelhardt, dachsbacher}@visus.uni-stuttgart.de Abstract 2 Previous Work The very first environment map has been introduced In this paper, we examine the octahedron as a by Blinn and Newell [1] who transformed a reflec- parameterization scheme to represent environment tion vector into spherical coordinates to access a maps in real-time rendering applications. We dis- two dimensional texture. This method suffers from cuss two projection schemes and show two conve- texture distortions in polar regions and visible tex- nient unfold mappings to pack the platonic solid ture seams. Williams [12] and Hoffmann [9] in- into quadratic or rectangular textures. We carry troduced spherical environment maps storing an or- out an analysis and consider rendering performance thogonal view onto a perfect mirror sphere in a tex- for interactive applications as well as the quality of ture. This technique was the first to receive hard- representation. We further discuss applications and ware support, however, this method exhibits strong scenarios which benefit from this parameterization. non-uniform sampling and a singularity in the view- ing direction. Greene [3] introduced the cube map which ma- tured to the most popular technique used today. 1 Introduction It neither suffers from severe under-sampling, nor from singularities. It combines speed and ease of use, both in creation and look up. Above all it lends Environment mapping is an established and well itself to capturing real world as well as synthetic known technique widely used in rendering. In gen- scenarios naturally. eral the entire environment seen from one point in Because the cube map consists of six textures space is projected onto a parametric surface and (which have to be rendered in dynamic scenes) Hei- stored in one or more textures which can be easily drich and Seidel [5] developed the dual-paraboloid accessed. It is equally important in interactive ren- map projecting the environment onto two mirror dering as an efficient means to approximate reflec- paraboloids. This approach does not share the draw- tions of distant objects onto geometry of arbitrary backs inherent to spherical environment mapping shape, as well as a means for storing directional and no singularities or severe undersampling oc- data in general. It plays an essential role in illumi- curs. The creation of such maps is rather involved nation algorithms capturing environmental lighting and not without limitations, because the underlying and has found further applications, such as omni- projection does not allow direct creation with cam- directional shadow mapping for example. eras (no such lenses exist) as cube maps do, and This paper is structured as follows: First we give they are not based on a linear perspective projection. a short overview on environment mapping tech- That is, either high geometry tessellation to reduce niques and related work. In Section 3 we discuss the approximation error or more involved rendering the new octahedron representation for environment algorithms [2] are necessary. maps and describe the necessary transformations, followed by Section 4 addressing issues which arise 3 Octahedron Environment Maps when implementing this technique. In Section 5 we present our results concluding with a short discus- The octahedron as a possible parameterization sion in Section 6. scheme for the spherical domain has already been VMV 2008 O. Deussen, D. Keim, D. Saupe (Editors)
Y v6 v5 v2 v5 v2 v1 v2 v6 Z P 3 4 6 5 1 5 X v3 2 1 v6 2 v6 4 8 v5 6 P' v2 v3 v1 v1 r P'' v4 3 4 3 7 v3 r v1 v3 v4 v3 7 8 7 8 1 - 4: posive hemisphere v4 v5 v5 v4 v5 5 - 8: negave hemisphere v5 Figure 1: We project the environment on the octahedron, which can be unfolded and packed into a single quadratic or rectangular texture. We show how to directly render into these textures and how to efficiently lookup octahedron environment maps. For the projection, a point p is first projected onto the octahedron faces, and next projected orthogonally on the XZ-plane. used by Praun et al. [10], who utilized the 1-to-1 are orthogonally projected onto the XZ-plane (Fig- mapping of the spherical domain to a 2D texture to ure 1). The lower hemisphere is unfolded by split- store spherical geometry images. We examine the ting all edges adjacent to (0, −r, 0)T . Hence the octahedron with regard to the use as environment projected points p00 are obtained by: maps for real-time rendering applications, including 0 0 T the generation of, and look-up to octahedron envi- (px , 0, pz ) p0y ≥ 0 00 0 0 0 ronment maps (OEMs) with graphics hardware (see pq = (σ(px )(1 − σ(pz ))pz , 0 p0y < 0 Figure 7 for an example application). σ(p0z )(1 − σ(p0x ))p0x )T Each side of the octahedron represents one oc- (2) tant of directions and we describe two projections where σ(x) is the sign function. to map directions to points on the sides. Further, Our second unfolding approach maps the octa- the octahedron sides may be arranged differently in hedron to a rectangular texture with an aspect ratio two-dimensional textures (see Figure 1). of 2 : 1 as shown in Figure 1. First equation 1 is In the following, we assume that all coordinates applied, then the points p0 are projected orthogo- are given relative to the octahedron’s coordinate nally on the XZ-plane and the coordinates from the system as illustrated in Figure 1 (right). This of 2 hemispheres are mapped into the layout by fol- course can be easily achieved setting up the appro- lowing transformations. priate transformations during rendering. ( T 00 (p0x − p0z − 1, 0, p0x + p0z ) p0y ≥ 0 pr = 0 0 0 0 T (pz − px + 1, 0, px + pz ) p0y < 0 3.1 Planar Projection (3) The first projection scheme that we analyze uses a According to the layout mapping p00r ∈ [−2; 2] × projection similar to a spherical projection. A point [−1; 1] and p00q ∈ [−1; 1]2 have to be mapped to the p = (px , py , pz )T lies on the sphere with radius r, respective texture coordinates for access and ren- if p2x + p2y + p2z = r 2 . Similarly, for a octahedron dering. with vertices (±r, 0, 0)T , (0, ±r, 0)T , (0, 0, ±r)T , a point resides on the surface of the platonic solid, if 3.2 Perspective Projection |px | + |py | + |pz | = r. Thus, we derive this projec- In allusion to the cube map the perspective projec- tion scheme, which we denote as planar projection, tion can be thought of as another means to obtain for a point p with (see also Figure 1): an octahedron environment map. The scene can be p rendered once for each octahedron side, each set p0 = (1) |px | + |py | + |pz | up with its own projection matrix. In this case, the frusta - in contrast to the cube mapping - are of tetra- To unfold the octahedron into a quadratic texture, hedral shape, i.e., we have a triangular view port, for points on the positive hemisphere, i.e. py > 0, which clipping is not natively supported by graphics
hardware and has thus to be performed manually, such that each output triangle resides in a single oc- either in object or image space. tant only. After the clipping, the projected coor- The look up to octahedron maps using these pro- dinates are computed and the affine transformation jections works analogously to cube maps: First the according to the layout (quadratic or rectangular) is octant of a look up vector has to be determined, and applied. Please observe that for point-based render- next the the projection transformation and the map- ing techniques special octant boundary treatment ping to the octahedron layout (as described above) may not be mandatory, if the error is neglectable, is computed. due to the small size of point sprites. We examined this parameterization for the sake of completeness, but compared to a cube map, there 4.2 Texture Look-ups are no advantages to be expected (8 projections in- stead of 6, plus additional clipping). Thus, in the Unfiltered Texture Lookup The texture coordi- remainder of this paper, we focus on the planar pa- nates for the lookup into an octahedron map for rameterization, which is simpler and thus beneficial a given direction vector can be computed analo- for some applications. gously to the aforementioned projection and layout transformation. The unfiltered lookup is very effi- 4 Implementation cient when used together with the quadratic layout. Computing the texture coordinates for a direction 4.1 Direct Rendering of Octahedron Maps vector d given in the octahedron coordinate system can be achieved with the following few instructions The planar projection cannot be expressed with the (shader pseudo code): matrix machinery, as the absolute value (see Eq. 1) // projection onto octahedron cannot be expressed accordingly, however it can be d /= dot( 1, abs(d) ); easily used with programmable graphics hardware. // out-folding of the downward faces Furthermore, triangles overlapping octant bound- if ( d.y < 0.0f ) aries cannot be handled correctly: Transformations d.xy = (1-abs(d.zx)) * sign(d.xz); and projections on GPUs are performed per-vertex // mapping to [0;1]ˆ2 texture space and the scan-line conversion or rasterization stage d.xy = d.xy * 0.5 + 0.5; (assuming linear triangle edges) produces wrong re- color = tex2D( octaMap, d.xy ); sults whenever a triangle intersects more than oc- tant (illustrated in Figure 2). Please note, that this Filtered Texture Lookup For a mip-mapped is somewhat similar to the projection errors with lookup, we need to consider two aspects. First, paraboloid mapping. Similarly, we can keep the er- when determining the required mip-level for a tex- ror low by using finely tessellated geometry, but in ture lookup, the decision is based on the extend order to produce correct results additional effort is of the quadrilateral region spanned by the screen necessary, which is described in the following. space pixel cell transformed into texture space. It is computed from the texture coordinate and its partial derivatives [8]. Please note, that for per-pixel com- puted reflections, the mip-level is typically com- puted manually depending on surface curvature or glossiness. We denote the partial derivatives in tex- Boundary Overlapp Per-Vertex Projecon Correct Projecon ture space by dX and dY . The mip map level l is then derived by: Figure 2: Ignoring octant boundaries leads to incor- rect projections. e = max(hdX, dXi , hdY, dY i) √ l = log2 e (4) Linear interpolation is correct within each octant, i.e., we can solve the problem by splitting triangles However, in the case of the octahedron map the at octant boundaries. We can leverage this by us- quadrilateral region might cross two adjacent oc- ing geometry shaders: A triangle is split at the XY- tants which have been separated due to the unfold- , YZ-, ZX-plane into smaller triangles (up to 27), ing. For the quadratic layout, this case occurs when
the quadrilateral resides in the negative hemisphere. 8 5 1 2 6 7 A possible situation is depicted in Figure 3 (center) for the quadratic layout, but similar configurations 7 6 5 8 occur for the rectangular layout as well. 3 2 1 4 s 2 1 Thus, we need a special treatment when a cell 3 4 spans two disjoint regions in the texture space. For- 6 7 8 5 tunately, the symmetry of the octahedron allows us b 5 8 4 3 7 6 to reflect the coordinates of pixel cells in the lower b s to the upper hemisphere, thus resulting in a contigu- Figure 4: The OEM texture of dimensions s × s is ous quadrilateral which is then used to compute the extended with a texture border of width b correct mip-level (Figure 3, right). In practice, we compute the mip-level of both, the original and the tions [6]. In this case we used a safety-border mirrored cell, and use the minimum of both values. width determined by the maximum glossiness of For the rectangular layout both hemispheres are the BRDF (Figure 7 shows an example). Please mapped to contiguous regions. Thus, when texture note, that for accurate BRDF modeling, multiple arrays (supported by DirectX 10) are used – one SAT queries are required which holds for all spheri- texture per hemisphere – then filtering is automati- cal parameterizations and (pre)filtered environment cally handled correctly, also for the per-vertex tex- mappings. ture coordinate computation. If no texture arrays are used, then similar treatment as described above for the quadratic layout is necessary. 5 Results dX1 5.1 Sampling P1 P2 dX dY P1 dY P3 P1 dY P3 In order to evaluate the sampling quality of the oc- P4 dX1 P3 dX2 P2 tahedron map, we compute the solid angle covered P4 P4 by each pixel (relative to the solid angle of a sphere P2 dX2 dX2 over the total number of pixels). The comparison of the octahedron parameterization to a cube map is shown in Figure 5. The highest sampling rate Figure 3: The quadrilateral region in texture space is close to the octahedron vertices, but stays within corresponding to a pixel cell in the negative hemi- an acceptable range across the entire surface. As sphere is mapped to disjoint regions (center). This expected, the planar projection yields a more bal- yields to incorrect mip-levels, however, by exploit- anced sampling than the perspective projection; the ing symmetry we reflect at the XZ-plane and obtain overall quality is comparable to a cube map. the correct area estimate for mip map level determi- nation (right). 5.2 Direct Rendering The second aspect for a filtered texture look-up We further measured the rendering performance is that due to the unfolding a wrap-around access to for an adequately complex scene (Figure 8) creat- the texture does not yield correctly bi-linearly inter- ing three environment maps of approximately equal polated color values (this applies to parabolic, and pixel count. We directly render a 512 × 512 to some extend to cube maps as well). This can be quadratic layout (QL) OEM, a rectangular layout best solved by introducing a ”safety-border”, that (RL) OEM of two 362 × 362 textures and a cube is by duplicating pixels as shown in Figure 4 such map of six 209 × 209 textures. The timings are that samples for bi-linear interpolation and mip- listed in Table 1. We have implemented both, the mapping are available. planar and perspective projection with explicit clip- Please note, that the maximum correctly rep- ping in the geometry shader stage as described in resented mip-level depends on the width of the Section 4.1. We denote this approach, which gener- safety-border. We also used octahedron maps with ates up to 81 vertices, strict split. As mentioned in summed area tables for rendering glossy reflec- Section 3.2 the clipping for perspective OEMs can
YX/YZ-Plane ¼ΩAvg ½ΩAvg ΩAvg 2ΩAvg 4ΩAvg XZ-Plane triangle to be split XZ-split edge-split triangle strip Figure 6: The triangle is split at the XZ-plane. The Planar Projecon Perspecve Projecon Cube Map Surface Side convex polygons obtained in the positive (red ver- Figure 5: Dark blue and purple regions indicate ar- tices) and negative (orange vertices) half-space are eas of undersampling while regions of green to yel- either directly triangulated or after the boundaries low indicate areas of directional oversampling. have been split by all remaining split planes. e.g. with the method by Scheuermann et al. [6], also be done in image space by discarding pixels the input and output parameterization can be cho- that do not fall into the triangular viewport. We call sen independently. This is because multiple ren- this method clip mask. der passes are required for the generation and the For the rectangular layout we present results for first one can include a reparameterization, i.e. also the planar projection and only examine two less ac- easily renderable cube or paraboloid maps can be curate clipping techniques: The clipping in the ge- used as input. Furthermore, a lookup to an OEMs ometry shader whose performance heavily depends is an efficient means to make directional data avail- on the amount of vertices output to the succeeding able to all shader stages. For vertex or geometry pipeline stages proved to be the bottleneck in our shaders there is no support for cube maps and the implementation. Exploiting the fact that both hemi- OEM lookup presented in Section 4.2 is more effi- spheres are mapped to contiguous regions we only cient than any lookup to cube or paraboloid maps split triangles mapped to both textures due to in- computed by hand. tersecting the XZ-plane. We denote this approach, The octahedron parameterization also provides which outputs two triangle strips of at most 7 ver- compact storage when multiple (hemi-)spherical tices, XZ-split (Figure 6, XZ-split). domains are to be stored, e.g. (hemi-)spherical The second approach, called edge strip, proceeds shadow maps for instant radiosity methods [7] or with the vertices created by the XZ-split in both for sparse-sampling of scene radiance [4]. Instead half-spaces (positive and negative y-axis) indepen- of parabolic parameterizations which waste up to dently. Those vertices form convex polygons whose 20 percent of texture space, OEMs can be packed edges are split by the remaining split planes (Fig- without wasting texture space into texture atlases. ure 6, edge-split). Afterwards two triangle strips are As OEMs, latitude-longitude environment maps directly created from the obtained points (Figure 6, allow to parameterize the spherical domain to a rect- triangle strip). Please note, that while this naı̈ve angular texture, and consequently, they would also stripping preserves the correctness of the projec- allow to compute SATs, provide compact storage, tion on both polygon boundaries, it does not guar- and lookup in vertex and geometry shaders. How- antee correct interpolation, e.g. of texture coordi- ever, the sampling is worse and exhibits two singu- nates, within the triangle strips. Of course this is larities in polar regions, the lookup requires trigono- not correct, but rather tolerable than a wrong primi- metric, and thus expensive, operations and render- tive shape. This approach outputs a maximum of 15 ing to latitude-longitude maps requires clipping and vertices in total. splitting as well. 5.3 Applications and Advantages 6 Conclusions Despite the difficulties introduced with the direct We examined octahedron environment maps as an rendering of OEMs, they provide two unique fea- alternative for environment map rendering which tures. First, OEMs have the ability to generate represent the entire spherical domain of directions summed area tables (SATs) over the the entire in a single quadratic or rectangular texture while spherical domain. When creating SATs on GPUs, providing efficient texture look-ups. Although the
EnvMap Clipping FPS[s] Planar QL strict split 16 Planar RL XZ-split 34 Planar RL edge strip 3 Perspective QL strict split 16 Perspective QL clip mask 95 Cube Map 250 Table 1: Rendering performance of our test scene for a screen resolution of 1920 × 1200. All timings were taken on an Intel Q6600 Core2Duo processor with 2.4GHz, a GeForce 8800GTX running Vista Figure 8: Our test scene of approximately 105k tri- x64 with 4GB of main memory. angles for dynamic environment map generation. IEEE Computer Graphics and Applications, 6(11):21–29, 1986. [4] Gene Greger, Peter Shirley, Philip M. Hub- bard and Donald P. Greenberg. The Ir- radiance Volume. IEEE Comput. Graph. Appl.,18(2):32–43, 1998. Figure 7: Screenshot of a rendering with SATs cre- [5] Wolfgang Heidrich. View-Independent Envi- ated from octahedron environment maps to adjust ronment Maps. Proceedings of Eurograph- surface glossiness at real-time. The creation of ics/SIGGRAPH Workshop on Graphics Hard- the 512 × 512 pixel SAT takes about 3.3ms on a ware ’98, 1998. NVIDIA 8800GTX. [6] Justin Hensley, Thorsten Scheuermann, G. Coombe, M. Singh, and Anselmo Lastra. Fast Summed-Area Table Generation and its Ap- planar projection and unfolding transformations are plications. Eurographics ’05, 2005 rather simple and provide good sampling (compa- [7] Samuli Laine, Hannu Saransaari, Janne Kon- rable to the cube map), the direct rendering is not tkanen, Jaakko Lehtinen and Timo Aila. Incre- yet suitable for interactive applications due to the mental Instant Radiosity for Real-Time Indi- geometry shader performance. rect Illumination. Proceedings of Eurograph- Nonetheless OEMs offer benefits not known ics Symposium on Rendering 2007, 2007 from other techniques, namely the ability to create [8] Microsoft Corporation. DirectX Software De- spherical summed area tables, efficient look-ups in velopment Kit 10. all shader stages on GPUs, and tight-packing into [9] Gene S. Miller and C. Robert Hoffman. Il- texture atlases. lumination and Reflection Maps: Simulated Objects in Simulated and Real Environments. SIGGRAPH ’84 Advanced Computer Graph- References ics Animation course notes, 1984. [1] James F. Blinn and Martin E. Newell. Texture [10] Emil Praun and Hugues Hoppe. Spherical and reflection in computer generated images. parametrization and remeshing. ACM Trans. Communications of the ACM, 19(10):542– Graph.,22(3):340–349, 2003. 547, 1976. [11] Nicolai Steiner. Pyramidal Environment [2] Jean-Dominique Gascuel, Nicolas Maps. Diploma Thesis, University of Holzschuch, Gabriel Fournier and Bernard Stuttgart, 2008. Peroche. Fast Non-Linear Projections using [12] Lance Williams. Pyramidal Parametrics. SIG- Graphics Hardware. ACM Symposium on GRAPH Comput. Graph., 17(3):1–11, 1983. Interactive 3D Graphics and Games, 2008 [3] Ned Greene. Environment Mapping and Other Applications of World Projections.
You can also read