| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- #ifdef USE_FLOAT64
- in vec3 positionHigh;
- in vec3 positionLow;
- #else
- in vec3 position;
- #endif
- in vec4 pickColor;
- in vec4 showPixelSizeColorAlpha;
- in vec3 outlineWidthColorAlpha;
-
- out vec4 v_pickColor;
- out vec4 v_color;
- out vec4 v_outlineColor;
- out float v_innerRadiusFrac;
-
- void main()
- {
- // Unpack attributes.
- float show = showPixelSizeColorAlpha.x;
- float pixelSize = showPixelSizeColorAlpha.y;
- vec4 color = czm_decodeRGB8(showPixelSizeColorAlpha.z);
- float alpha = showPixelSizeColorAlpha.w;
- float outlineWidth = outlineWidthColorAlpha.x;
- vec4 outlineColor = czm_decodeRGB8(outlineWidthColorAlpha.y);
- float outlineAlpha = outlineWidthColorAlpha.z;
-
- ///////////////////////////////////////////////////////////////////////////
-
- float innerRadius = 0.5 * pixelSize * czm_pixelRatio;
- float outerRadius = (0.5 * pixelSize + outlineWidth) * czm_pixelRatio;
-
- ///////////////////////////////////////////////////////////////////////////
-
- #ifdef USE_FLOAT64
- vec4 p = czm_translateRelativeToEye(positionHigh, positionLow);
- vec4 positionEC = czm_modelViewRelativeToEye * p;
- #else
- vec4 positionEC = czm_modelView * vec4(position, 1.0);
- #endif
-
- ///////////////////////////////////////////////////////////////////////////
-
- gl_Position = czm_projection * positionEC;
- czm_vertexLogDepth();
-
- v_pickColor = pickColor / 255.0;
-
- v_color = color;
- v_color.a *= alpha * show;
-
- v_outlineColor = outlineColor;
- v_outlineColor.a *= outlineAlpha * show;
-
- v_innerRadiusFrac = innerRadius / outerRadius;
-
- gl_PointSize = 2.0 * outerRadius * show;
- gl_Position *= show;
- }
|