app/assets/javascripts/Shaders/EllipsoidFS.glsl in cesium-0.13.1 vs app/assets/javascripts/Shaders/EllipsoidFS.glsl in cesium-0.13.2

- old
+ new

@@ -1,40 +1,40 @@ -uniform vec3 u_radii; -uniform vec3 u_oneOverEllipsoidRadiiSquared; - -varying vec3 v_positionEC; - -void main() -{ - czm_ellipsoid ellipsoid = czm_ellipsoidNew(czm_modelView[3].xyz, u_radii); - vec3 direction = normalize(v_positionEC); - czm_ray ray = czm_ray(vec3(0.0), direction); - czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid); - - if (czm_isEmpty(intersection)) - { - discard; - } - - // Pick the intersection point based on if the viewer is outside or inside the ellipsoid - bool hitFrontFace = (intersection.start != 0.0); - vec3 positionEC = czm_pointAlongRay(ray, hitFrontFace ? intersection.start : intersection.stop); - vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; - vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); - vec3 normalMC = hitFrontFace ? geodeticNormal : -geodeticNormal; // normalized surface normal (always facing the viewer) in model coordinates - vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordiantes - - vec2 st = czm_ellipsoidWgs84TextureCoordinates(geodeticNormal); - vec3 positionToEyeEC = -positionEC; - - czm_materialInput materialInput; - materialInput.s = st.s; - materialInput.st = st; - materialInput.str = (positionMC + u_radii) / u_radii; - materialInput.normalEC = normalEC; - materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); - materialInput.positionToEyeEC = positionToEyeEC; - materialInput.positionMC = positionMC; - czm_material material = czm_getMaterial(materialInput); - - gl_FragColor = czm_phong(normalize(positionToEyeEC), material); -} +uniform vec3 u_radii; +uniform vec3 u_oneOverEllipsoidRadiiSquared; + +varying vec3 v_positionEC; + +void main() +{ + czm_ellipsoid ellipsoid = czm_ellipsoidNew(czm_modelView[3].xyz, u_radii); + vec3 direction = normalize(v_positionEC); + czm_ray ray = czm_ray(vec3(0.0), direction); + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid); + + if (czm_isEmpty(intersection)) + { + discard; + } + + // Pick the intersection point based on if the viewer is outside or inside the ellipsoid + bool hitFrontFace = (intersection.start != 0.0); + vec3 positionEC = czm_pointAlongRay(ray, hitFrontFace ? intersection.start : intersection.stop); + vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; + vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); + vec3 normalMC = hitFrontFace ? geodeticNormal : -geodeticNormal; // normalized surface normal (always facing the viewer) in model coordinates + vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordiantes + + vec2 st = czm_ellipsoidWgs84TextureCoordinates(geodeticNormal); + vec3 positionToEyeEC = -positionEC; + + czm_materialInput materialInput; + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = (positionMC + u_radii) / u_radii; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.positionMC = positionMC; + czm_material material = czm_getMaterial(materialInput); + + gl_FragColor = czm_phong(normalize(positionToEyeEC), material); +}