Sha256: 1ec2136668dd324c4f75183c24c0c8ed1018e25a2cde5a6facc50fb73ff039c3

Contents?: true

Size: 1.45 KB

Versions: 12

Compression:

Stored size: 1.45 KB

Contents

/**
 * Transforms a position from window to eye coordinates.
 * The transform from window to normalized device coordinates is done using components
 * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating
 * the inverse of <code>czm_viewportTransformation</code>. The transformation from 
 * normalized device coordinates to clip coordinates is done using <code>positionWC.w</code>,
 * which is expected to be the scalar used in the perspective divide. The transformation
 * from clip to eye coordinates is done using {@link czm_inverseProjection}.
 *
 * @name czm_windowToEyeCoordinates
 * @glslFunction
 *
 * @param {vec4} fragmentCoordinate The position in window coordinates to transform.
 *
 * @returns {vec4} The transformed position in eye coordinates.
 *
 * @see czm_modelToWindowCoordinates
 * @see czm_eyeToWindowCoordinates
 * @see czm_inverseProjection
 * @see czm_viewport
 * @see czm_viewportTransformation
 *
 * @example
 * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord);
 */
vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate)
{
    float x = 2.0 * (fragmentCoordinate.x - czm_viewport.x) / czm_viewport.z - 1.0;
    float y = 2.0 * (fragmentCoordinate.y - czm_viewport.y) / czm_viewport.w - 1.0;
    float z = (fragmentCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2];
    vec4 q = vec4(x, y, z, 1.0);
    q /= fragmentCoordinate.w;
    q = czm_inverseProjection * q;
    return q;
}

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
cesium-1.24.0 app/assets/javascripts/Cesium/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-1.23.0 app/assets/javascripts/Cesium/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-1.18.0 app/assets/javascripts/Cesium/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-1.17.0 app/assets/javascripts/Cesium/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-0.25.0 app/assets/javascripts/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-0.24.1 app/assets/javascripts/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-0.24.0 app/assets/javascripts/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-0.23.0 app/assets/javascripts/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-0.22.0 app/assets/javascripts/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-0.21.1 app/assets/javascripts/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-0.21 app/assets/javascripts/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl
cesium-0.20.0 app/assets/javascripts/Shaders/Builtin/Functions/windowToEyeCoordinates.glsl