ModelExperimentalFS.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. //This file is automatically rebuilt by the Cesium build process.
  2. export default "#if defined(HAS_NORMALS) && !defined(HAS_TANGENTS) && !defined(LIGHTING_UNLIT)\n\
  3. #ifdef GL_OES_standard_derivatives\n\
  4. #extension GL_OES_standard_derivatives : enable\n\
  5. #endif\n\
  6. #endif\n\
  7. \n\
  8. czm_modelMaterial defaultModelMaterial()\n\
  9. {\n\
  10. czm_modelMaterial material;\n\
  11. material.diffuse = vec3(1.0);\n\
  12. material.specular = vec3(0.04); // dielectric (non-metal)\n\
  13. material.roughness = 0.0;\n\
  14. material.occlusion = 1.0;\n\
  15. material.normalEC = vec3(0.0, 0.0, 1.0);\n\
  16. material.emissive = vec3(0.0);\n\
  17. material.alpha = 1.0;\n\
  18. return material;\n\
  19. }\n\
  20. \n\
  21. vec4 handleAlpha(vec3 color, float alpha)\n\
  22. {\n\
  23. #ifdef ALPHA_MODE_MASK\n\
  24. if (alpha < u_alphaCutoff) {\n\
  25. discard;\n\
  26. }\n\
  27. return vec4(color, 1.0);\n\
  28. #elif defined(ALPHA_MODE_BLEND)\n\
  29. return vec4(color, alpha);\n\
  30. #else // OPAQUE\n\
  31. return vec4(color, 1.0);\n\
  32. #endif\n\
  33. }\n\
  34. \n\
  35. SelectedFeature selectedFeature;\n\
  36. \n\
  37. void main()\n\
  38. {\n\
  39. #ifdef HAS_MODEL_SPLITTER\n\
  40. modelSplitterStage();\n\
  41. #endif\n\
  42. \n\
  43. czm_modelMaterial material = defaultModelMaterial();\n\
  44. \n\
  45. ProcessedAttributes attributes;\n\
  46. geometryStage(attributes);\n\
  47. \n\
  48. FeatureIds featureIds;\n\
  49. featureIdStage(featureIds, attributes);\n\
  50. \n\
  51. Metadata metadata;\n\
  52. metadataStage(metadata, attributes);\n\
  53. \n\
  54. #ifdef HAS_SELECTED_FEATURE_ID\n\
  55. selectedFeatureIdStage(selectedFeature, featureIds);\n\
  56. #endif\n\
  57. \n\
  58. #ifndef CUSTOM_SHADER_REPLACE_MATERIAL\n\
  59. materialStage(material, attributes, selectedFeature);\n\
  60. #endif\n\
  61. \n\
  62. #ifdef HAS_CUSTOM_FRAGMENT_SHADER\n\
  63. customShaderStage(material, attributes, featureIds, metadata);\n\
  64. #endif\n\
  65. \n\
  66. lightingStage(material, attributes);\n\
  67. \n\
  68. #ifdef HAS_SELECTED_FEATURE_ID\n\
  69. cpuStylingStage(material, selectedFeature);\n\
  70. #endif\n\
  71. \n\
  72. #ifdef HAS_MODEL_COLOR\n\
  73. modelColorStage(material);\n\
  74. #endif\n\
  75. \n\
  76. vec4 color = handleAlpha(material.diffuse, material.alpha);\n\
  77. \n\
  78. #ifdef HAS_CLIPPING_PLANES\n\
  79. modelClippingPlanesStage(color);\n\
  80. #endif\n\
  81. \n\
  82. gl_FragColor = color;\n\
  83. }\n\
  84. ";