12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #if defined(HAS_NORMALS) && !defined(HAS_TANGENTS) && !defined(LIGHTING_UNLIT)
- #ifdef GL_OES_standard_derivatives
- #extension GL_OES_standard_derivatives : enable
- #endif
- #endif
- czm_modelMaterial defaultModelMaterial()
- {
- czm_modelMaterial material;
- material.diffuse = vec3(1.0);
- material.specular = vec3(0.04); // dielectric (non-metal)
- material.roughness = 0.0;
- material.occlusion = 1.0;
- material.normalEC = vec3(0.0, 0.0, 1.0);
- material.emissive = vec3(0.0);
- material.alpha = 1.0;
- return material;
- }
- vec4 handleAlpha(vec3 color, float alpha)
- {
- #ifdef ALPHA_MODE_MASK
- if (alpha < u_alphaCutoff) {
- discard;
- }
- return vec4(color, 1.0);
- #elif defined(ALPHA_MODE_BLEND)
- return vec4(color, alpha);
- #else // OPAQUE
- return vec4(color, 1.0);
- #endif
- }
- SelectedFeature selectedFeature;
- void main()
- {
- #ifdef HAS_MODEL_SPLITTER
- modelSplitterStage();
- #endif
- czm_modelMaterial material = defaultModelMaterial();
- ProcessedAttributes attributes;
- geometryStage(attributes);
- FeatureIds featureIds;
- featureIdStage(featureIds, attributes);
- Metadata metadata;
- metadataStage(metadata, attributes);
- #ifdef HAS_SELECTED_FEATURE_ID
- selectedFeatureIdStage(selectedFeature, featureIds);
- #endif
- #ifndef CUSTOM_SHADER_REPLACE_MATERIAL
- materialStage(material, attributes, selectedFeature);
- #endif
- #ifdef HAS_CUSTOM_FRAGMENT_SHADER
- customShaderStage(material, attributes, featureIds, metadata);
- #endif
- lightingStage(material, attributes);
- #ifdef HAS_SELECTED_FEATURE_ID
- cpuStylingStage(material, selectedFeature);
- #endif
- #ifdef HAS_MODEL_COLOR
- modelColorStage(material);
- #endif
- vec4 color = handleAlpha(material.diffuse, material.alpha);
- #ifdef HAS_CLIPPING_PLANES
- modelClippingPlanesStage(color);
- #endif
- gl_FragColor = color;
- }
|