//This file is automatically rebuilt by the Cesium build process.
|
export default "/**\n\
|
* Computes a value that scales with distance. The scaling is clamped at the near and\n\
|
* far distances, and does not extrapolate. This function works with the\n\
|
* {@link NearFarScalar} JavaScript class.\n\
|
*\n\
|
* @name czm_nearFarScalar\n\
|
* @glslFunction\n\
|
*\n\
|
* @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w).\n\
|
* @param {float} cameraDistSq The square of the current distance from the camera.\n\
|
*\n\
|
* @returns {float} The value at this distance.\n\
|
*/\n\
|
float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq)\n\
|
{\n\
|
float valueAtMin = nearFarScalar.y;\n\
|
float valueAtMax = nearFarScalar.w;\n\
|
float nearDistanceSq = nearFarScalar.x * nearFarScalar.x;\n\
|
float farDistanceSq = nearFarScalar.z * nearFarScalar.z;\n\
|
\n\
|
float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq);\n\
|
\n\
|
t = pow(clamp(t, 0.0, 1.0), 0.2);\n\
|
\n\
|
return mix(valueAtMin, valueAtMax, t);\n\
|
}\n\
|
";
|