phong.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. //This file is automatically rebuilt by the Cesium build process.
  2. export default "float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material)\n\
  3. {\n\
  4. return czm_getLambertDiffuse(lightDirectionEC, material.normal);\n\
  5. }\n\
  6. float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material)\n\
  7. {\n\
  8. return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess);\n\
  9. }\n\
  10. vec4 czm_phong(vec3 toEye, czm_material material)\n\
  11. {\n\
  12. float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material);\n\
  13. if (czm_sceneMode == czm_sceneMode3D) {\n\
  14. diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material);\n\
  15. }\n\
  16. float specular = czm_private_getSpecularOfMaterial(czm_sunDirectionEC, toEye, material) + czm_private_getSpecularOfMaterial(czm_moonDirectionEC, toEye, material);\n\
  17. vec3 materialDiffuse = material.diffuse * 0.5;\n\
  18. vec3 ambient = materialDiffuse;\n\
  19. vec3 color = ambient + material.emission;\n\
  20. color += materialDiffuse * diffuse;\n\
  21. color += material.specular * specular;\n\
  22. #ifdef HDR\n\
  23. float sunDiffuse = czm_private_getLambertDiffuseOfMaterial(czm_sunDirectionEC, material);\n\
  24. color += materialDiffuse * sunDiffuse * czm_sunColor;\n\
  25. #endif\n\
  26. return vec4(color, material.alpha);\n\
  27. }\n\
  28. vec4 czm_private_phong(vec3 toEye, czm_material material)\n\
  29. {\n\
  30. float diffuse = czm_private_getLambertDiffuseOfMaterial(czm_sunDirectionEC, material);\n\
  31. float specular = czm_private_getSpecularOfMaterial(czm_sunDirectionEC, toEye, material);\n\
  32. vec3 ambient = vec3(0.0);\n\
  33. vec3 color = ambient + material.emission;\n\
  34. color += material.diffuse * diffuse;\n\
  35. color += material.specular * specular;\n\
  36. return vec4(color, material.alpha);\n\
  37. }\n\
  38. ";