| Support Forum G3D Web Page |
Names of fields that may be present in a GBuffer.
More...
Public Types | |
| enum | Value { WS_NORMAL = 0, CS_NORMAL, WS_FACE_NORMAL, CS_FACE_NORMAL, WS_POSITION, CS_POSITION, LAMBERTIAN, GLOSSY, TRANSMISSIVE, EMISSIVE, CS_POSITION_CHANGE, SS_POSITION_CHANGE, CS_Z, DEPTH_AND_STENCIL, TS_NORMAL, SVO_POSITION, FLAGS, SVO_COVARIANCE_MAT1, SVO_COVARIANCE_MAT2, TEXCOORD0, COUNT } |
Public Member Functions | |
| Field (const G3D::String &x) | |
| Field (const G3D::Any &a) | |
| Field (const Value v) | |
| Field (int v) | |
| Field (char v) | |
| Field () | |
| void | deserialize (G3D::BinaryInput &b) |
| unsigned int | hashCode () const |
| bool | isUnitVector () const |
| operator int () const | |
| bool | operator!= (const Field ::Value other) const |
| bool | operator!= (const Field other) const |
| Field | operator+ (const int x) const |
| Field & | operator++ () |
| Field & | operator+= (const int x) |
| Field | operator- (const int x) const |
| Field & | operator-- () |
| Field & | operator-= (const int x) |
| bool | operator< (const Field other) const |
| bool | operator< (const Value other) const |
| bool | operator<= (const Field other) const |
| bool | operator<= (const Value other) const |
| Field & | operator= (const G3D::Any &a) |
| bool | operator== (const Field other) const |
| bool | operator== (const Field ::Value other) const |
| bool | operator> (const Field other) const |
| bool | operator> (const Value other) const |
| bool | operator>= (const Value other) const |
| bool | operator>= (const Field other) const |
| void | serialize (G3D::BinaryOutput &b) const |
| G3D::Any | toAny () const |
| const char * | toString () const |
Static Public Member Functions | |
| static const char * | classname () |
| static int | count () |
| static Value | nthValue (int n) |
| static const char * | toString (int i, Value &v) |
Public Attributes | |
| enum G3D::GBuffer::Field::Value | value |
Names of fields that may be present in a GBuffer.
These use the abbreviations CS = camera space, WS = world space, SS = screen space, TS = tangent space.
Normals are always encoded as n' = (n+1)/2, even if they are in floating point format, to simplify the implementation of routines that read and write GBuffers.
| Enumerator | |
|---|---|
| WS_NORMAL | Shading normal, after interpolation and bump-mapping. |
| CS_NORMAL | Shading normal, after interpolation and bump-mapping. |
| WS_FACE_NORMAL | Geometric normal of the face, independent of the vertex normals. |
| CS_FACE_NORMAL | Geometric normal of the face, independent of the vertex normals. |
| WS_POSITION | Must be a floating-point format. |
| CS_POSITION | Must be a floating-point format. |
| LAMBERTIAN | Must be a floating-point or normalized fixed-point format.
|
| GLOSSY | RGB = magnitude; A = exponent. Fresnel has not been applied. Must be a floating-point or normalized fixed-point format.
|
| TRANSMISSIVE | Must be a RGBA floating-point or normalized fixed-point format. Index of refraction is in the A channel.
|
| EMISSIVE | Must be a floating-point or normalized fixed-point format.
|
| CS_POSITION_CHANGE | World-space position change since the previous frame, according to a Surface. Must be RGB floating-point. The name "velocity" is reserved for future use as
instantaneous velocity.
There is no "WS_POSITION_CHANGE" because there is no
application (for a screen-space buffer of position
changes that don't take the camera's own movement into
account) to justify the added implementation
complexity required for that. |
| SS_POSITION_CHANGE | Texture storing the screen-space pixel displacement since the previous frame. As a result, floating-point textures will store the sub-pixel displacement and signed integers (e.g., ImageFormat::RG8UI) will round to the nearest pixel. |
| CS_Z | Camera-space Z. Must be a floating-point, R-only texture. This is always a negative value if a perspective transformation has been applied. |
| DEPTH_AND_STENCIL | The depth buffer, used for depth write and test. Not camera-space Z. This may include stencil bits. |
| TS_NORMAL | Shading normal, after interpolation and bump-mapping, in tangent-space. Note that tangent space is based on interpolated vertex normals. If no bump mapping is applied the shading normal will always be (0, 0, 1). |
| SVO_POSITION | Position within the normalized [0, 1] oct tree cube for SVO. |
| FLAGS | Application-specific flags (e.g., "anisotropic", "water shader", "ray trace this pixel". These may actually use individual bits, or be four values that can be 0, 1, or interpolated between them.
|
| SVO_COVARIANCE_MAT1 | Covariance matrix for voxel based filtering. |
| SVO_COVARIANCE_MAT2 | |
| TEXCOORD0 | |
| COUNT | Not a valid enumeration value. |
|
inlineexplicit |
|
inlineexplicit |
|
inlineexplicit |
|
inline |
|
inline |
|
inlineexplicit |
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
|
inline |
| enum G3D::GBuffer::Field::Value G3D::GBuffer::Field::value |
Referenced by G3D::GBuffer::attachmentPoint(), and isUnitVector().
1.8.15