GLSL Hacker 0.5.0 (Windows / Mac OS X / Linux)
Despite the fact that cube maps are defined on the spherical domain, standard cubemap mipchain generation techniques perform filtering independently on each cube face. The main problem with this approach is that no information is propagated across edges, thus creating undesirable discontinuities along the cube face edges. A limitation of nearly all cube mapping hardware which makes the seam problem substantially worse is the fact that the bilinear texel filtering is not able to fetch across cube faces thus producing a hard seam artifact in addition to introducing aliasing artifacts. These two compounding problems limit the usefulness of cubemapping.Our pre-processing approach alleviates this problem using two techniques. The first, angular extent filtering, defines each tap’s filter kernel using an angular extent around the center tap as opposed to a fixed per-face pixel-based extent. The advantages of angular extent filtering are that the filtering kernels used for all taps have a constant solid angle as well as have the ability to pull texels from multiple faces. In addition to this, the filtering takes into account the solid angle subtended by each tap in the filter. Also, by varying the angular extent of the filter used to generate the base mip-level, pre-convolved reflections for a variety of materials can be precomputed. The second technique, edge seam fixup, uses a per mip-level seam averaging and smoothing algorithm in order to effectively hide the seam artifacts. This enables the lower-resolution cubemap miplevels (even 2x2 and 4x4) to be directly used for tarnished metal shaders, matte surfaces shaders, and even for diffuse lighting. In addition to this, by providing good quality cubemaps throughout the mipchain, miplevel selection via the texCUBEbias, and texCUBELOD instructions can be used for selective blurring.CubeMapGen is a tool for importing, filtering, visualizing, and exporting cubemaps, its list of features include:Cubemap Filtering and MipChain Generation: Angular extent filtering and edge seam fixup provides new high quality filtering results for prefiltered environment mapping, and cubemap mipchain generation. Interactive Cubemap Assembly: Cubemaps can be assembled from separate face images that can be loaded into each cubemap face and interactively flipped vertically, horizontally, and diagonally in order to align the faces.Cubemap Import: Import entire cube maps from HDRShop vertical cross cubemap images, DirectX .dds cubemap files, and separate image filesCubemap Export: Export cubemap with mipchain to single .dds file, cube cross images for each mip level, or a collection of separate images for each cubemap face for each mip level. Also supported is a specialized DXT compressor which allows for the creation of seamless DXT compressed cubemaps.Command Line Interface: Allows you to use CubeMapGen as a command line tool for processing cubemaps in scripts and batch files.HDR Image Support: All filtering is performed in high dynamic range.HDRShop v1.0 plugin functionality: CubeMapGen also functions as an HDRShop plugin that provides the filtering functionality of CubeMapGen to HDRShop.