All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.opengles.AMDCompressed3DCTexture Maven / Gradle / Ivy

Go to download

A royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles.

There is a newer version: 3.3.4
Show newest version
/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.opengles;

/**
 * Native bindings to the AMD_compressed_3DC_texture extension.
 * 
 * 

Two compression formats are introduced:

* *
    *
  • A compression format for two component textures. When used to store normal vectors, the two components are commonly used with a fragment shader * that derives the third component.
  • *
  • A compression format for single component textures. The single component may be used as a luminance or an alpha value.
  • *
* *

There are a large number of games that use luminance only and/or alpha only textures. For example, monochrome light maps used in a few popular games * are 8-bit luminance textures. This extension describes a compression format that provides a 2:1 compression ratio for 8-bit single channel textures.

* *

Normal maps are special textures that are used to add detail to 3D surfaces. They are an extension of earlier "bump map" textures, which contained per- * pixel height values and were used to create the appearance of bumpiness on otherwise smooth surfaces. Normal maps contain more detailed surface * information, allowing them to represent much more complex shapes.

* *

Normal mapping is one of the key features that makes the current generation of games look so much better than earlier titles. A limitation to the * effectiveness of this technique is the size of the textures required. In an ideal case where every surface has both a color texture map and a normal * texture map, the texture memory and bandwidth requirements would double compared to using color maps alone.

* *

In fact, the problem is much worse because existing block based compression methods such as DXTc, ETC, and S3TC are ineffective at compressing normal * maps. They tend to have trouble capturing the small edges and subtle curvature that normal maps are designed to capture, and they also introduce * unsightly block artifacts.

* *

Because normal maps are used to capture light reflections and realistic surface highlights, these problems are amplified relative to their impact on * color textures. The results are sufficiently poor that game artists and developers would rather not use normal map compression at all on most surfaces, * and instead limit themselves to lower resolution maps on selected parts of the rendered scene.

* *

3DC provides an ideal solution to the normal map compression problem. It provides up to 4:1 compression of normal maps, with image quality that is * virtually indistinguishable from the uncompressed version. The technique is hardware accelerated, so the performance impact is minimal. Thus, * developers are freed to use higher resolution, more detailed normal maps, and/or use them on all of the objects in a scene rather than just a select * few.

*/ public final class AMDCompressed3DCTexture { /** Accepted by the {@code internalFormat} parameter of CompressedTexImage2D and CompressedTexImage3DOES. */ public static final int GL_3DC_X_AMD = 0x87F9, GL_3DC_XY_AMD = 0x87FA; private AMDCompressed3DCTexture() {} }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy