pbrBlockAlbedoOpacity.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // Do not edit.
  2. import { ShaderStore } from "../../Engines/shaderStore.js";
  3. import "./decalFragment.js";
  4. const name = "pbrBlockAlbedoOpacity";
  5. const shader = `struct albedoOpacityOutParams
  6. {vec3 surfaceAlbedo;float alpha;};
  7. #define pbr_inline
  8. void albedoOpacityBlock(
  9. in vec4 vAlbedoColor,
  10. #ifdef ALBEDO
  11. in vec4 albedoTexture,
  12. in vec2 albedoInfos,
  13. #endif
  14. #ifdef OPACITY
  15. in vec4 opacityMap,
  16. in vec2 vOpacityInfos,
  17. #endif
  18. #ifdef DETAIL
  19. in vec4 detailColor,
  20. in vec4 vDetailInfos,
  21. #endif
  22. #ifdef DECAL
  23. in vec4 decalColor,
  24. in vec4 vDecalInfos,
  25. #endif
  26. out albedoOpacityOutParams outParams
  27. )
  28. {vec3 surfaceAlbedo=vAlbedoColor.rgb;float alpha=vAlbedoColor.a;
  29. #ifdef ALBEDO
  30. #if defined(ALPHAFROMALBEDO) || defined(ALPHATEST)
  31. alpha*=albedoTexture.a;
  32. #endif
  33. #ifdef GAMMAALBEDO
  34. surfaceAlbedo*=toLinearSpace(albedoTexture.rgb);
  35. #else
  36. surfaceAlbedo*=albedoTexture.rgb;
  37. #endif
  38. surfaceAlbedo*=albedoInfos.y;
  39. #endif
  40. #ifndef DECAL_AFTER_DETAIL
  41. #include<decalFragment>
  42. #endif
  43. #if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)
  44. surfaceAlbedo*=vColor.rgb;
  45. #endif
  46. #ifdef DETAIL
  47. float detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);surfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo;
  48. #endif
  49. #ifdef DECAL_AFTER_DETAIL
  50. #include<decalFragment>
  51. #endif
  52. #define CUSTOM_FRAGMENT_UPDATE_ALBEDO
  53. #ifdef OPACITY
  54. #ifdef OPACITYRGB
  55. alpha=getLuminance(opacityMap.rgb);
  56. #else
  57. alpha*=opacityMap.a;
  58. #endif
  59. alpha*=vOpacityInfos.y;
  60. #endif
  61. #if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)
  62. alpha*=vColor.a;
  63. #endif
  64. #if !defined(SS_LINKREFRACTIONTOTRANSPARENCY) && !defined(ALPHAFRESNEL)
  65. #ifdef ALPHATEST
  66. #if DEBUGMODE != 88
  67. if (alpha<ALPHATESTVALUE)
  68. discard;
  69. #endif
  70. #ifndef ALPHABLEND
  71. alpha=1.0;
  72. #endif
  73. #endif
  74. #endif
  75. outParams.surfaceAlbedo=surfaceAlbedo;outParams.alpha=alpha;}
  76. `;
  77. // Sideeffect
  78. ShaderStore.IncludesShadersStore[name] = shader;
  79. /** @internal */
  80. export const pbrBlockAlbedoOpacity = { name, shader };
  81. //# sourceMappingURL=pbrBlockAlbedoOpacity.js.map