@babylonjs/core 7.15.2 → 7.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/Animations/animationGroup.d.ts +1 -0
  2. package/Animations/animationGroup.js +4 -1
  3. package/Animations/animationGroup.js.map +1 -1
  4. package/Collisions/gpuPicker.js +1 -1
  5. package/Collisions/gpuPicker.js.map +1 -1
  6. package/Compute/computeEffect.js +1 -1
  7. package/Compute/computeEffect.js.map +1 -1
  8. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +32 -0
  9. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +32 -0
  10. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  11. package/Engines/abstractEngine.js +2 -2
  12. package/Engines/abstractEngine.js.map +1 -1
  13. package/Engines/engine.d.ts +1993 -1993
  14. package/Engines/nativeEngine.d.ts +7 -0
  15. package/Engines/nativeEngine.js +24 -1
  16. package/Engines/nativeEngine.js.map +1 -1
  17. package/Engines/thinEngine.js +2 -2
  18. package/Engines/thinEngine.js.map +1 -1
  19. package/Engines/webgpuEngine.js +3 -3
  20. package/Engines/webgpuEngine.js.map +1 -1
  21. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +6 -6
  22. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
  23. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +4 -7
  24. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  25. package/Materials/Node/Blocks/Dual/textureBlock.js +1 -1
  26. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  27. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +4 -4
  28. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  29. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +46 -40
  30. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  31. package/Materials/Node/Blocks/PBR/iridescenceBlock.d.ts +2 -1
  32. package/Materials/Node/Blocks/PBR/iridescenceBlock.js +10 -9
  33. package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
  34. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -0
  35. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +85 -69
  36. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  37. package/Materials/Node/Blocks/PBR/reflectionBlock.js +54 -38
  38. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  39. package/Materials/Node/Blocks/PBR/refractionBlock.js +2 -2
  40. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  41. package/Materials/Node/Blocks/PBR/sheenBlock.d.ts +2 -1
  42. package/Materials/Node/Blocks/PBR/sheenBlock.js +40 -32
  43. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  44. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +53 -45
  45. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  46. package/Materials/Node/nodeMaterial.d.ts +2 -1
  47. package/Materials/Node/nodeMaterial.js +4 -1
  48. package/Materials/Node/nodeMaterial.js.map +1 -1
  49. package/Materials/Node/nodeMaterialBuildState.d.ts +1 -0
  50. package/Materials/Node/nodeMaterialBuildState.js +12 -3
  51. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  52. package/Materials/Textures/rawTexture.d.ts +5 -0
  53. package/Materials/Textures/rawTexture.js +13 -0
  54. package/Materials/Textures/rawTexture.js.map +1 -1
  55. package/Materials/effect.js +2 -2
  56. package/Materials/effect.js.map +1 -1
  57. package/Meshes/Builders/decalBuilder.js +12 -12
  58. package/Meshes/Builders/decalBuilder.js.map +1 -1
  59. package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +10 -1
  60. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +50 -11
  61. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  62. package/Meshes/Node/nodeGeometry.d.ts +6 -0
  63. package/Meshes/Node/nodeGeometry.js +7 -0
  64. package/Meshes/Node/nodeGeometry.js.map +1 -1
  65. package/Meshes/mesh.d.ts +1 -0
  66. package/Meshes/mesh.js +138 -134
  67. package/Meshes/mesh.js.map +1 -1
  68. package/Meshes/subMesh.js +1 -1
  69. package/Meshes/subMesh.js.map +1 -1
  70. package/Misc/khronosTextureContainer2.js +1 -1
  71. package/Misc/khronosTextureContainer2.js.map +1 -1
  72. package/Rendering/GlobalIllumination/giRSMManager.js +1 -1
  73. package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -1
  74. package/Rendering/edgesRenderer.js +1 -1
  75. package/Rendering/edgesRenderer.js.map +1 -1
  76. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +1 -1
  77. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  78. package/Shaders/ShadersInclude/lightFragment.js +3 -3
  79. package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
  80. package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -1
  81. package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  82. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +13 -14
  83. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  84. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +4 -5
  85. package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
  86. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +4 -5
  87. package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
  88. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +4 -5
  89. package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
  90. package/Shaders/ShadersInclude/pbrBlockClearcoat.js +34 -35
  91. package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
  92. package/Shaders/ShadersInclude/pbrBlockIridescence.js +10 -11
  93. package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
  94. package/Shaders/ShadersInclude/pbrBlockReflection.js +23 -24
  95. package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
  96. package/Shaders/ShadersInclude/pbrBlockReflectivity.js +12 -13
  97. package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
  98. package/Shaders/ShadersInclude/pbrBlockSheen.js +31 -32
  99. package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
  100. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +43 -44
  101. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  102. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
  103. package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
  104. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
  105. package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
  106. package/Shaders/pbr.fragment.js +143 -153
  107. package/Shaders/pbr.fragment.js.map +1 -1
  108. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js +3 -3
  109. package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
  110. package/ShadersWGSL/ShadersInclude/decalFragment.d.ts +5 -0
  111. package/ShadersWGSL/ShadersInclude/decalFragment.js +18 -0
  112. package/ShadersWGSL/ShadersInclude/decalFragment.js.map +1 -0
  113. package/ShadersWGSL/ShadersInclude/depthPrePass.d.ts +5 -0
  114. package/ShadersWGSL/ShadersInclude/depthPrePass.js +12 -0
  115. package/ShadersWGSL/ShadersInclude/depthPrePass.js.map +1 -0
  116. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.d.ts +5 -0
  117. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js +24 -0
  118. package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js.map +1 -0
  119. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.d.ts +5 -0
  120. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +39 -0
  121. package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -0
  122. package/ShadersWGSL/ShadersInclude/helperFunctions.js +6 -2
  123. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  124. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +2 -2
  125. package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
  126. package/ShadersWGSL/ShadersInclude/importanceSampling.d.ts +5 -0
  127. package/ShadersWGSL/ShadersInclude/importanceSampling.js +12 -0
  128. package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -0
  129. package/ShadersWGSL/ShadersInclude/lightFragment.js +3 -3
  130. package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
  131. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +1 -1
  132. package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
  133. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.d.ts +5 -0
  134. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +139 -0
  135. package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -0
  136. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +6 -0
  137. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js +81 -0
  138. package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -0
  139. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.d.ts +5 -0
  140. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js +37 -0
  141. package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -0
  142. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.d.ts +5 -0
  143. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js +35 -0
  144. package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -0
  145. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.d.ts +5 -0
  146. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js +46 -0
  147. package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js.map +1 -0
  148. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.d.ts +5 -0
  149. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js +267 -0
  150. package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js.map +1 -0
  151. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.d.ts +5 -0
  152. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js +24 -0
  153. package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js.map +1 -0
  154. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.d.ts +5 -0
  155. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js +51 -0
  156. package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -0
  157. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.d.ts +5 -0
  158. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js +96 -0
  159. package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -0
  160. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.d.ts +5 -0
  161. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js +26 -0
  162. package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -0
  163. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.d.ts +5 -0
  164. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js +33 -0
  165. package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -0
  166. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.d.ts +5 -0
  167. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js +20 -0
  168. package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js.map +1 -0
  169. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.d.ts +5 -0
  170. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js +51 -0
  171. package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js.map +1 -0
  172. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.d.ts +5 -0
  173. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js +19 -0
  174. package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js.map +1 -0
  175. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.d.ts +5 -0
  176. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js +19 -0
  177. package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js.map +1 -0
  178. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.d.ts +5 -0
  179. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js +30 -0
  180. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js.map +1 -0
  181. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.d.ts +5 -0
  182. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js +18 -0
  183. package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js.map +1 -0
  184. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.d.ts +5 -0
  185. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +277 -0
  186. package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -0
  187. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.d.ts +5 -0
  188. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js +120 -0
  189. package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js.map +1 -0
  190. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.d.ts +5 -0
  191. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js +195 -0
  192. package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js.map +1 -0
  193. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.d.ts +5 -0
  194. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js +425 -0
  195. package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js.map +1 -0
  196. package/ShadersWGSL/ShadersInclude/pbrDebug.d.ts +5 -0
  197. package/ShadersWGSL/ShadersInclude/pbrDebug.js +193 -0
  198. package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -0
  199. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.d.ts +5 -0
  200. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js +43 -0
  201. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -0
  202. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.d.ts +5 -0
  203. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +68 -0
  204. package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -0
  205. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.d.ts +5 -0
  206. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js +30 -0
  207. package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -0
  208. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.d.ts +5 -0
  209. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +41 -0
  210. package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -0
  211. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.d.ts +5 -0
  212. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js +23 -0
  213. package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js.map +1 -0
  214. package/package.json +1 -1
@@ -127,25 +127,24 @@ vec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);
127
127
  #ifdef DECAL
128
128
  vec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);
129
129
  #endif
130
- albedoOpacityBlock(
131
- vAlbedoColor,
130
+ albedoOpacityOut=albedoOpacityBlock(
131
+ vAlbedoColor
132
132
  #ifdef ALBEDO
133
- albedoTexture,
134
- vAlbedoInfos,
133
+ ,albedoTexture
134
+ ,vAlbedoInfos
135
135
  #endif
136
136
  #ifdef OPACITY
137
- opacityMap,
138
- vOpacityInfos,
137
+ ,opacityMap
138
+ ,vOpacityInfos
139
139
  #endif
140
140
  #ifdef DETAIL
141
- detailColor,
142
- vDetailInfos,
141
+ ,detailColor
142
+ ,vDetailInfos
143
143
  #endif
144
144
  #ifdef DECAL
145
- decalColor,
146
- vDecalInfos,
145
+ ,decalColor
146
+ ,vDecalInfos
147
147
  #endif
148
- albedoOpacityOut
149
148
  );vec3 surfaceAlbedo=albedoOpacityOut.surfaceAlbedo;float alpha=albedoOpacityOut.alpha;
150
149
  #define CUSTOM_FRAGMENT_UPDATE_ALPHA
151
150
  #include<depthPrePass>
@@ -154,12 +153,11 @@ ambientOcclusionOutParams aoOut;
154
153
  #ifdef AMBIENT
155
154
  vec3 ambientOcclusionColorMap=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb;
156
155
  #endif
157
- ambientOcclusionBlock(
156
+ aoOut=ambientOcclusionBlock(
158
157
  #ifdef AMBIENT
159
158
  ambientOcclusionColorMap,
160
- vAmbientInfos,
161
- #endif
162
- aoOut
159
+ vAmbientInfos
160
+ #endif
163
161
  );
164
162
  #include<pbrBlockLightmapInit>
165
163
  #ifdef UNLIT
@@ -198,27 +196,26 @@ metallicReflectanceFactors.rgb*=metallicReflectanceFactorsMap.rgb;
198
196
  metallicReflectanceFactors*=metallicReflectanceFactorsMap.a;
199
197
  #endif
200
198
  #endif
201
- reflectivityBlock(
202
- vReflectivityColor,
199
+ reflectivityOut=reflectivityBlock(
200
+ vReflectivityColor
203
201
  #ifdef METALLICWORKFLOW
204
- surfaceAlbedo,
205
- metallicReflectanceFactors,
202
+ ,surfaceAlbedo
203
+ ,metallicReflectanceFactors
206
204
  #endif
207
205
  #ifdef REFLECTIVITY
208
- vReflectivityInfos,
209
- surfaceMetallicOrReflectivityColorMap,
206
+ ,vReflectivityInfos
207
+ ,surfaceMetallicOrReflectivityColorMap
210
208
  #endif
211
209
  #if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)
212
- aoOut.ambientOcclusionColor,
210
+ ,aoOut.ambientOcclusionColor
213
211
  #endif
214
212
  #ifdef MICROSURFACEMAP
215
- microSurfaceTexel,
213
+ ,microSurfaceTexel
216
214
  #endif
217
215
  #ifdef DETAIL
218
- detailColor,
219
- vDetailInfos,
216
+ ,detailColor
217
+ ,vDetailInfos
220
218
  #endif
221
- reflectivityOut
222
219
  );float microSurface=reflectivityOut.microSurface;float roughness=reflectivityOut.roughness;
223
220
  #ifdef METALLICWORKFLOW
224
221
  surfaceAlbedo=reflectivityOut.surfaceAlbedo;
@@ -228,12 +225,11 @@ aoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor;
228
225
  #endif
229
226
  #ifdef ALPHAFRESNEL
230
227
  #if defined(ALPHATEST) || defined(ALPHABLEND)
231
- alphaFresnelOutParams alphaFresnelOut;alphaFresnelBlock(
228
+ alphaFresnelOutParams alphaFresnelOut;alphaFresnelOut=alphaFresnelBlock(
232
229
  normalW,
233
230
  viewDirectionW,
234
231
  alpha,
235
- microSurface,
236
- alphaFresnelOut
232
+ microSurface
237
233
  );alpha=alphaFresnelOut.alpha;
238
234
  #endif
239
235
  #endif
@@ -243,7 +239,7 @@ anisotropicOutParams anisotropicOut;
243
239
  #ifdef ANISOTROPIC_TEXTURE
244
240
  vec3 anisotropyMapData=texture2D(anisotropySampler,vAnisotropyUV+uvOffset).rgb*vAnisotropyInfos.y;
245
241
  #endif
246
- anisotropicBlock(
242
+ anisotropicOut=anisotropicBlock(
247
243
  vAnisotropy,
248
244
  roughness,
249
245
  #ifdef ANISOTROPIC_TEXTURE
@@ -251,49 +247,47 @@ anisotropyMapData,
251
247
  #endif
252
248
  TBN,
253
249
  normalW,
254
- viewDirectionW,
255
- anisotropicOut
250
+ viewDirectionW
256
251
  );
257
252
  #endif
258
253
  #ifdef REFLECTION
259
254
  reflectionOutParams reflectionOut;
260
255
  #ifndef USE_CUSTOM_REFLECTION
261
- reflectionBlock(
262
- vPositionW,
263
- normalW,
264
- alphaG,
265
- vReflectionMicrosurfaceInfos,
266
- vReflectionInfos,
267
- vReflectionColor,
256
+ reflectionOut=reflectionBlock(
257
+ vPositionW
258
+ ,normalW
259
+ ,alphaG
260
+ ,vReflectionMicrosurfaceInfos
261
+ ,vReflectionInfos
262
+ ,vReflectionColor
268
263
  #ifdef ANISOTROPIC
269
- anisotropicOut,
264
+ ,anisotropicOut
270
265
  #endif
271
266
  #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
272
- NdotVUnclamped,
267
+ ,NdotVUnclamped
273
268
  #endif
274
269
  #ifdef LINEARSPECULARREFLECTION
275
- roughness,
270
+ ,roughness
276
271
  #endif
277
- reflectionSampler,
272
+ ,reflectionSampler
278
273
  #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
279
- vEnvironmentIrradiance,
274
+ ,vEnvironmentIrradiance
280
275
  #endif
281
276
  #ifdef USESPHERICALFROMREFLECTIONMAP
282
277
  #if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)
283
- reflectionMatrix,
278
+ ,reflectionMatrix
284
279
  #endif
285
280
  #endif
286
281
  #ifdef USEIRRADIANCEMAP
287
- irradianceSampler,
282
+ ,irradianceSampler
288
283
  #endif
289
284
  #ifndef LODBASEDMICROSFURACE
290
- reflectionSamplerLow,
291
- reflectionSamplerHigh,
285
+ ,reflectionSamplerLow
286
+ ,reflectionSamplerHigh
292
287
  #endif
293
288
  #ifdef REALTIME_FILTERING
294
- vReflectionFilteringInfo,
289
+ ,vReflectionFilteringInfo
295
290
  #endif
296
- reflectionOut
297
291
  );
298
292
  #else
299
293
  #define CUSTOM_REFLECTION
@@ -308,52 +302,51 @@ vec4 sheenMapData=texture2D(sheenSampler,vSheenUV+uvOffset);
308
302
  #if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)
309
303
  vec4 sheenMapRoughnessData=texture2D(sheenRoughnessSampler,vSheenRoughnessUV+uvOffset)*vSheenInfos.w;
310
304
  #endif
311
- sheenBlock(
312
- vSheenColor,
305
+ sheenOut=sheenBlock(
306
+ vSheenColor
313
307
  #ifdef SHEEN_ROUGHNESS
314
- vSheenRoughness,
308
+ ,vSheenRoughness
315
309
  #if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)
316
- sheenMapRoughnessData,
310
+ ,sheenMapRoughnessData
317
311
  #endif
318
312
  #endif
319
- roughness,
313
+ ,roughness
320
314
  #ifdef SHEEN_TEXTURE
321
- sheenMapData,
322
- vSheenInfos.y,
315
+ ,sheenMapData
316
+ ,vSheenInfos.y
323
317
  #endif
324
- reflectance,
318
+ ,reflectance
325
319
  #ifdef SHEEN_LINKWITHALBEDO
326
- baseColor,
327
- surfaceAlbedo,
320
+ ,baseColor
321
+ ,surfaceAlbedo
328
322
  #endif
329
323
  #ifdef ENVIRONMENTBRDF
330
- NdotV,
331
- environmentBrdf,
324
+ ,NdotV
325
+ ,environmentBrdf
332
326
  #endif
333
327
  #if defined(REFLECTION) && defined(ENVIRONMENTBRDF)
334
- AARoughnessFactors,
335
- vReflectionMicrosurfaceInfos,
336
- vReflectionInfos,
337
- vReflectionColor,
338
- vLightingIntensity,
339
- reflectionSampler,
340
- reflectionOut.reflectionCoords,
341
- NdotVUnclamped,
328
+ ,AARoughnessFactors
329
+ ,vReflectionMicrosurfaceInfos
330
+ ,vReflectionInfos
331
+ ,vReflectionColor
332
+ ,vLightingIntensity
333
+ ,reflectionSampler
334
+ ,reflectionOut.reflectionCoords
335
+ ,NdotVUnclamped
342
336
  #ifndef LODBASEDMICROSFURACE
343
- reflectionSamplerLow,
344
- reflectionSamplerHigh,
337
+ ,reflectionSamplerLow
338
+ ,reflectionSamplerHigh
345
339
  #endif
346
340
  #ifdef REALTIME_FILTERING
347
- vReflectionFilteringInfo,
341
+ ,vReflectionFilteringInfo
348
342
  #endif
349
343
  #if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)
350
- seo,
344
+ ,seo
351
345
  #endif
352
346
  #if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)
353
- eho,
347
+ ,eho
354
348
  #endif
355
349
  #endif
356
- sheenOut
357
350
  );
358
351
  #ifdef SHEEN_LINKWITHALBEDO
359
352
  surfaceAlbedo=sheenOut.surfaceAlbedo;
@@ -372,23 +365,22 @@ vec2 iridescenceMapData=texture2D(iridescenceSampler,vIridescenceUV+uvOffset).rg
372
365
  #ifdef IRIDESCENCE_THICKNESS_TEXTURE
373
366
  vec2 iridescenceThicknessMapData=texture2D(iridescenceThicknessSampler,vIridescenceThicknessUV+uvOffset).rg*vIridescenceInfos.w;
374
367
  #endif
375
- iridescenceBlock(
376
- vIridescenceParams,
377
- NdotV,
378
- specularEnvironmentR0,
368
+ iridescenceOut=iridescenceBlock(
369
+ vIridescenceParams
370
+ ,NdotV
371
+ ,specularEnvironmentR0
379
372
  #ifdef IRIDESCENCE_TEXTURE
380
- iridescenceMapData,
373
+ ,iridescenceMapData
381
374
  #endif
382
375
  #ifdef IRIDESCENCE_THICKNESS_TEXTURE
383
- iridescenceThicknessMapData,
376
+ ,iridescenceThicknessMapData
384
377
  #endif
385
378
  #ifdef CLEARCOAT
386
- NdotVUnclamped,
379
+ ,NdotVUnclamped
387
380
  #ifdef CLEARCOAT_TEXTURE
388
- clearCoatMapData,
381
+ ,clearCoatMapData
389
382
  #endif
390
383
  #endif
391
- iridescenceOut
392
384
  );float iridescenceIntensity=iridescenceOut.iridescenceIntensity;specularEnvironmentR0=iridescenceOut.specularEnvironmentR0;
393
385
  #endif
394
386
  clearcoatOutParams clearcoatOut;
@@ -402,65 +394,64 @@ vec4 clearCoatTintMapData=texture2D(clearCoatTintSampler,vClearCoatTintUV+uvOffs
402
394
  #ifdef CLEARCOAT_BUMP
403
395
  vec4 clearCoatBumpMapData=texture2D(clearCoatBumpSampler,vClearCoatBumpUV+uvOffset);
404
396
  #endif
405
- clearcoatBlock(
406
- vPositionW,
407
- geometricNormalW,
408
- viewDirectionW,
409
- vClearCoatParams,
397
+ clearcoatOut=clearcoatBlock(
398
+ vPositionW
399
+ ,geometricNormalW
400
+ ,viewDirectionW
401
+ ,vClearCoatParams
410
402
  #if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
411
- clearCoatMapRoughnessData,
403
+ ,clearCoatMapRoughnessData
412
404
  #endif
413
- specularEnvironmentR0,
405
+ ,specularEnvironmentR0
414
406
  #ifdef CLEARCOAT_TEXTURE
415
- clearCoatMapData,
407
+ ,clearCoatMapData
416
408
  #endif
417
409
  #ifdef CLEARCOAT_TINT
418
- vClearCoatTintParams,
419
- clearCoatColorAtDistance,
420
- vClearCoatRefractionParams,
410
+ ,vClearCoatTintParams
411
+ ,clearCoatColorAtDistance
412
+ ,vClearCoatRefractionParams
421
413
  #ifdef CLEARCOAT_TINT_TEXTURE
422
- clearCoatTintMapData,
414
+ ,clearCoatTintMapData
423
415
  #endif
424
416
  #endif
425
417
  #ifdef CLEARCOAT_BUMP
426
- vClearCoatBumpInfos,
427
- clearCoatBumpMapData,
428
- vClearCoatBumpUV,
418
+ ,vClearCoatBumpInfos
419
+ ,clearCoatBumpMapData
420
+ ,vClearCoatBumpUV
429
421
  #if defined(TANGENT) && defined(NORMAL)
430
- vTBN,
422
+ ,vTBN
431
423
  #else
432
- vClearCoatTangentSpaceParams,
424
+ ,vClearCoatTangentSpaceParams
433
425
  #endif
434
426
  #ifdef OBJECTSPACE_NORMALMAP
435
- normalMatrix,
427
+ ,normalMatrix
436
428
  #endif
437
429
  #endif
438
430
  #if defined(FORCENORMALFORWARD) && defined(NORMAL)
439
- faceNormal,
431
+ ,faceNormal
440
432
  #endif
441
433
  #ifdef REFLECTION
442
- vReflectionMicrosurfaceInfos,
443
- vReflectionInfos,
444
- vReflectionColor,
445
- vLightingIntensity,
446
- reflectionSampler,
434
+ ,vReflectionMicrosurfaceInfos
435
+ ,vReflectionInfos
436
+ ,vReflectionColor
437
+ ,vLightingIntensity
438
+ ,reflectionSampler
447
439
  #ifndef LODBASEDMICROSFURACE
448
- reflectionSamplerLow,
449
- reflectionSamplerHigh,
440
+ ,reflectionSamplerLow
441
+ ,reflectionSamplerHigh
450
442
  #endif
451
443
  #ifdef REALTIME_FILTERING
452
- vReflectionFilteringInfo,
444
+ ,vReflectionFilteringInfo
453
445
  #endif
454
446
  #endif
455
447
  #if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
456
448
  #ifdef RADIANCEOCCLUSION
457
- ambientMonochrome,
449
+ ,ambientMonochrome
458
450
  #endif
459
451
  #endif
460
452
  #if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)
461
- (gl_FrontFacing ? 1. : -1.),
453
+ ,(gl_FrontFacing ? 1. : -1.)
462
454
  #endif
463
- clearcoatOut
464
455
  );
465
456
  #else
466
457
  clearcoatOut.specularEnvironmentR0=specularEnvironmentR0;
@@ -480,86 +471,85 @@ vec4 translucencyIntensityMap=texture2D(translucencyIntensitySampler,vTranslucen
480
471
  #ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
481
472
  vec4 translucencyColorMap=texture2D(translucencyColorSampler,vTranslucencyColorUV+uvOffset);
482
473
  #endif
483
- subSurfaceBlock(
484
- vSubSurfaceIntensity,
485
- vThicknessParam,
486
- vTintColor,
487
- normalW,
488
- specularEnvironmentReflectance,
474
+ subSurfaceOut=subSurfaceBlock(
475
+ vSubSurfaceIntensity
476
+ ,vThicknessParam
477
+ ,vTintColor
478
+ ,normalW
479
+ ,specularEnvironmentReflectance
489
480
  #ifdef SS_THICKNESSANDMASK_TEXTURE
490
- thicknessMap,
481
+ ,thicknessMap
491
482
  #endif
492
483
  #ifdef SS_REFRACTIONINTENSITY_TEXTURE
493
- refractionIntensityMap,
484
+ ,refractionIntensityMap
494
485
  #endif
495
486
  #ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE
496
- translucencyIntensityMap,
487
+ ,translucencyIntensityMap
497
488
  #endif
498
489
  #ifdef REFLECTION
499
490
  #ifdef SS_TRANSLUCENCY
500
- reflectionMatrix,
491
+ ,reflectionMatrix
501
492
  #ifdef USESPHERICALFROMREFLECTIONMAP
502
493
  #if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)
503
- reflectionOut.irradianceVector,
494
+ ,reflectionOut.irradianceVector
504
495
  #endif
505
496
  #if defined(REALTIME_FILTERING)
506
- reflectionSampler,
507
- vReflectionFilteringInfo,
497
+ ,reflectionSampler
498
+ ,vReflectionFilteringInfo
508
499
  #endif
509
500
  #endif
510
501
  #ifdef USEIRRADIANCEMAP
511
- irradianceSampler,
502
+ ,irradianceSampler
512
503
  #endif
513
504
  #endif
514
505
  #endif
515
506
  #if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)
516
- surfaceAlbedo,
507
+ ,surfaceAlbedo
517
508
  #endif
518
509
  #ifdef SS_REFRACTION
519
- vPositionW,
520
- viewDirectionW,
521
- view,
522
- vRefractionInfos,
523
- refractionMatrix,
524
- vRefractionMicrosurfaceInfos,
525
- vLightingIntensity,
510
+ ,vPositionW
511
+ ,viewDirectionW
512
+ ,view
513
+ ,vRefractionInfos
514
+ ,refractionMatrix
515
+ ,vRefractionMicrosurfaceInfos
516
+ ,vLightingIntensity
526
517
  #ifdef SS_LINKREFRACTIONTOTRANSPARENCY
527
- alpha,
518
+ ,alpha
528
519
  #endif
529
520
  #ifdef SS_LODINREFRACTIONALPHA
530
- NdotVUnclamped,
521
+ ,NdotVUnclamped
531
522
  #endif
532
523
  #ifdef SS_LINEARSPECULARREFRACTION
533
- roughness,
524
+ ,roughness
534
525
  #endif
535
- alphaG,
536
- refractionSampler,
526
+ ,alphaG
527
+ ,refractionSampler
537
528
  #ifndef LODBASEDMICROSFURACE
538
- refractionSamplerLow,
539
- refractionSamplerHigh,
529
+ ,refractionSamplerLow
530
+ ,refractionSamplerHigh
540
531
  #endif
541
532
  #ifdef ANISOTROPIC
542
- anisotropicOut,
533
+ ,anisotropicOut
543
534
  #endif
544
535
  #ifdef REALTIME_FILTERING
545
- vRefractionFilteringInfo,
536
+ ,vRefractionFilteringInfo
546
537
  #endif
547
538
  #ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC
548
- vRefractionPosition,
549
- vRefractionSize,
539
+ ,vRefractionPosition
540
+ ,vRefractionSize
550
541
  #endif
551
542
  #ifdef SS_DISPERSION
552
- dispersion,
543
+ ,dispersion
553
544
  #endif
554
545
  #endif
555
546
  #ifdef SS_TRANSLUCENCY
556
- vDiffusionDistance,
557
- vTranslucencyColor,
547
+ ,vDiffusionDistance
548
+ ,vTranslucencyColor
558
549
  #ifdef SS_TRANSLUCENCYCOLOR_TEXTURE
559
- translucencyColorMap,
550
+ ,translucencyColorMap
560
551
  #endif
561
552
  #endif
562
- subSurfaceOut
563
553
  );
564
554
  #ifdef SS_REFRACTION
565
555
  surfaceAlbedo=subSurfaceOut.surfaceAlbedo;
@@ -1 +1 @@
1
- {"version":3,"file":"pbr.fragment.js","sourceRoot":"","sources":["../../../../dev/core/src/Shaders/pbr.fragment.ts"],"names":[],"mappings":"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","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/prePassDeclaration\";\nimport \"./ShadersInclude/oitDeclaration\";\nimport \"./ShadersInclude/pbrFragmentDeclaration\";\nimport \"./ShadersInclude/pbrUboDeclaration\";\nimport \"./ShadersInclude/pbrFragmentExtraDeclaration\";\nimport \"./ShadersInclude/lightFragmentDeclaration\";\nimport \"./ShadersInclude/lightUboDeclaration\";\nimport \"./ShadersInclude/pbrFragmentSamplersDeclaration\";\nimport \"./ShadersInclude/imageProcessingDeclaration\";\nimport \"./ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/fogFragmentDeclaration\";\nimport \"./ShadersInclude/helperFunctions\";\nimport \"./ShadersInclude/subSurfaceScatteringFunctions\";\nimport \"./ShadersInclude/importanceSampling\";\nimport \"./ShadersInclude/pbrHelperFunctions\";\nimport \"./ShadersInclude/imageProcessingFunctions\";\nimport \"./ShadersInclude/shadowsFragmentFunctions\";\nimport \"./ShadersInclude/harmonicsFunctions\";\nimport \"./ShadersInclude/pbrDirectLightingSetupFunctions\";\nimport \"./ShadersInclude/pbrDirectLightingFalloffFunctions\";\nimport \"./ShadersInclude/pbrBRDFFunctions\";\nimport \"./ShadersInclude/hdrFilteringFunctions\";\nimport \"./ShadersInclude/pbrDirectLightingFunctions\";\nimport \"./ShadersInclude/pbrIBLFunctions\";\nimport \"./ShadersInclude/bumpFragmentMainFunctions\";\nimport \"./ShadersInclude/bumpFragmentFunctions\";\nimport \"./ShadersInclude/reflectionFunction\";\nimport \"./ShadersInclude/pbrBlockAlbedoOpacity\";\nimport \"./ShadersInclude/pbrBlockReflectivity\";\nimport \"./ShadersInclude/pbrBlockAmbientOcclusion\";\nimport \"./ShadersInclude/pbrBlockAlphaFresnel\";\nimport \"./ShadersInclude/pbrBlockAnisotropic\";\nimport \"./ShadersInclude/pbrBlockReflection\";\nimport \"./ShadersInclude/pbrBlockSheen\";\nimport \"./ShadersInclude/pbrBlockClearcoat\";\nimport \"./ShadersInclude/pbrBlockIridescence\";\nimport \"./ShadersInclude/pbrBlockSubSurface\";\nimport \"./ShadersInclude/clipPlaneFragment\";\nimport \"./ShadersInclude/pbrBlockNormalGeometric\";\nimport \"./ShadersInclude/bumpFragment\";\nimport \"./ShadersInclude/pbrBlockNormalFinal\";\nimport \"./ShadersInclude/depthPrePass\";\nimport \"./ShadersInclude/pbrBlockLightmapInit\";\nimport \"./ShadersInclude/pbrBlockGeometryInfo\";\nimport \"./ShadersInclude/pbrBlockReflectance0\";\nimport \"./ShadersInclude/pbrBlockReflectance\";\nimport \"./ShadersInclude/pbrBlockDirectLighting\";\nimport \"./ShadersInclude/lightFragment\";\nimport \"./ShadersInclude/pbrBlockFinalLitComponents\";\nimport \"./ShadersInclude/pbrBlockFinalUnlitComponents\";\nimport \"./ShadersInclude/pbrBlockFinalColorComposition\";\nimport \"./ShadersInclude/logDepthFragment\";\nimport \"./ShadersInclude/fogFragment\";\nimport \"./ShadersInclude/pbrBlockImageProcessing\";\nimport \"./ShadersInclude/oitFragment\";\nimport \"./ShadersInclude/pbrDebug\";\n\nconst name = \"pbrPixelShader\";\nconst shader = `#if defined(BUMP) || !defined(NORMAL) || defined(FORCENORMALFORWARD) || defined(SPECULARAA) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#extension GL_OES_standard_derivatives : enable\n#endif\n#ifdef LODBASEDMICROSFURACE\n#extension GL_EXT_shader_texture_lod : enable\n#endif\n#define CUSTOM_FRAGMENT_BEGIN\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include<prePassDeclaration>[SCENE_MRT_COUNT]\nprecision highp float;\n#include<oitDeclaration>\n#ifndef FROMLINEARSPACE\n#define FROMLINEARSPACE\n#endif\n#include<__decl__pbrFragment>\n#include<pbrFragmentExtraDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<pbrFragmentSamplersDeclaration>\n#include<imageProcessingDeclaration>\n#include<clipPlaneFragmentDeclaration>\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\n#include<helperFunctions>\n#include<subSurfaceScatteringFunctions>\n#include<importanceSampling>\n#include<pbrHelperFunctions>\n#include<imageProcessingFunctions>\n#include<shadowsFragmentFunctions>\n#include<harmonicsFunctions>\n#include<pbrDirectLightingSetupFunctions>\n#include<pbrDirectLightingFalloffFunctions>\n#include<pbrBRDFFunctions>\n#include<hdrFilteringFunctions>\n#include<pbrDirectLightingFunctions>\n#include<pbrIBLFunctions>\n#include<bumpFragmentMainFunctions>\n#include<bumpFragmentFunctions>\n#ifdef REFLECTION\n#include<reflectionFunction>\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\n#include<pbrBlockAlbedoOpacity>\n#include<pbrBlockReflectivity>\n#include<pbrBlockAmbientOcclusion>\n#include<pbrBlockAlphaFresnel>\n#include<pbrBlockAnisotropic>\n#include<pbrBlockReflection>\n#include<pbrBlockSheen>\n#include<pbrBlockClearcoat>\n#include<pbrBlockIridescence>\n#include<pbrBlockSubSurface>\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\n#include<pbrBlockNormalGeometric>\n#include<bumpFragment>\n#include<pbrBlockNormalFinal>\nalbedoOpacityOutParams albedoOpacityOut;\n#ifdef ALBEDO\nvec4 albedoTexture=texture2D(albedoSampler,vAlbedoUV+uvOffset);\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\n#endif\n#ifdef DECAL\nvec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\n#endif\nalbedoOpacityBlock(\nvAlbedoColor,\n#ifdef ALBEDO\nalbedoTexture,\nvAlbedoInfos,\n#endif\n#ifdef OPACITY\nopacityMap,\nvOpacityInfos,\n#endif\n#ifdef DETAIL\ndetailColor,\nvDetailInfos,\n#endif\n#ifdef DECAL\ndecalColor,\nvDecalInfos,\n#endif\nalbedoOpacityOut\n);vec3 surfaceAlbedo=albedoOpacityOut.surfaceAlbedo;float alpha=albedoOpacityOut.alpha;\n#define CUSTOM_FRAGMENT_UPDATE_ALPHA\n#include<depthPrePass>\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\nambientOcclusionOutParams aoOut;\n#ifdef AMBIENT\nvec3 ambientOcclusionColorMap=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb;\n#endif\nambientOcclusionBlock(\n#ifdef AMBIENT\nambientOcclusionColorMap,\nvAmbientInfos,\n#endif\naoOut\n);\n#include<pbrBlockLightmapInit>\n#ifdef UNLIT\nvec3 diffuseBase=vec3(1.,1.,1.);\n#else\nvec3 baseColor=surfaceAlbedo;reflectivityOutParams reflectivityOut;\n#if defined(REFLECTIVITY)\nvec4 surfaceMetallicOrReflectivityColorMap=texture2D(reflectivitySampler,vReflectivityUV+uvOffset);vec4 baseReflectivity=surfaceMetallicOrReflectivityColorMap;\n#ifndef METALLICWORKFLOW\n#ifdef REFLECTIVITY_GAMMA\nsurfaceMetallicOrReflectivityColorMap=toLinearSpace(surfaceMetallicOrReflectivityColorMap);\n#endif\nsurfaceMetallicOrReflectivityColorMap.rgb*=vReflectivityInfos.y;\n#endif\n#endif\n#if defined(MICROSURFACEMAP)\nvec4 microSurfaceTexel=texture2D(microSurfaceSampler,vMicroSurfaceSamplerUV+uvOffset)*vMicroSurfaceSamplerInfos.y;\n#endif\n#ifdef METALLICWORKFLOW\nvec4 metallicReflectanceFactors=vMetallicReflectanceFactors;\n#ifdef REFLECTANCE\nvec4 reflectanceFactorsMap=texture2D(reflectanceSampler,vReflectanceUV+uvOffset);\n#ifdef REFLECTANCE_GAMMA\nreflectanceFactorsMap=toLinearSpace(reflectanceFactorsMap);\n#endif\nmetallicReflectanceFactors.rgb*=reflectanceFactorsMap.rgb;\n#endif\n#ifdef METALLIC_REFLECTANCE\nvec4 metallicReflectanceFactorsMap=texture2D(metallicReflectanceSampler,vMetallicReflectanceUV+uvOffset);\n#ifdef METALLIC_REFLECTANCE_GAMMA\nmetallicReflectanceFactorsMap=toLinearSpace(metallicReflectanceFactorsMap);\n#endif\n#ifndef METALLIC_REFLECTANCE_USE_ALPHA_ONLY\nmetallicReflectanceFactors.rgb*=metallicReflectanceFactorsMap.rgb;\n#endif\nmetallicReflectanceFactors*=metallicReflectanceFactorsMap.a;\n#endif\n#endif\nreflectivityBlock(\nvReflectivityColor,\n#ifdef METALLICWORKFLOW\nsurfaceAlbedo,\nmetallicReflectanceFactors,\n#endif\n#ifdef REFLECTIVITY\nvReflectivityInfos,\nsurfaceMetallicOrReflectivityColorMap,\n#endif\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\naoOut.ambientOcclusionColor,\n#endif\n#ifdef MICROSURFACEMAP\nmicroSurfaceTexel,\n#endif\n#ifdef DETAIL\ndetailColor,\nvDetailInfos,\n#endif\nreflectivityOut\n);float microSurface=reflectivityOut.microSurface;float roughness=reflectivityOut.roughness;\n#ifdef METALLICWORKFLOW\nsurfaceAlbedo=reflectivityOut.surfaceAlbedo;\n#endif\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\naoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor;\n#endif\n#ifdef ALPHAFRESNEL\n#if defined(ALPHATEST) || defined(ALPHABLEND)\nalphaFresnelOutParams alphaFresnelOut;alphaFresnelBlock(\nnormalW,\nviewDirectionW,\nalpha,\nmicroSurface,\nalphaFresnelOut\n);alpha=alphaFresnelOut.alpha;\n#endif\n#endif\n#include<pbrBlockGeometryInfo>\n#ifdef ANISOTROPIC\nanisotropicOutParams anisotropicOut;\n#ifdef ANISOTROPIC_TEXTURE\nvec3 anisotropyMapData=texture2D(anisotropySampler,vAnisotropyUV+uvOffset).rgb*vAnisotropyInfos.y;\n#endif\nanisotropicBlock(\nvAnisotropy,\nroughness,\n#ifdef ANISOTROPIC_TEXTURE\nanisotropyMapData,\n#endif\nTBN,\nnormalW,\nviewDirectionW,\nanisotropicOut\n);\n#endif\n#ifdef REFLECTION\nreflectionOutParams reflectionOut;\n#ifndef USE_CUSTOM_REFLECTION\nreflectionBlock(\nvPositionW,\nnormalW,\nalphaG,\nvReflectionMicrosurfaceInfos,\nvReflectionInfos,\nvReflectionColor,\n#ifdef ANISOTROPIC\nanisotropicOut,\n#endif\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nNdotVUnclamped,\n#endif\n#ifdef LINEARSPECULARREFLECTION\nroughness,\n#endif\nreflectionSampler,\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\nvEnvironmentIrradiance,\n#endif\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\nreflectionMatrix,\n#endif\n#endif\n#ifdef USEIRRADIANCEMAP\nirradianceSampler,\n#endif\n#ifndef LODBASEDMICROSFURACE\nreflectionSamplerLow,\nreflectionSamplerHigh,\n#endif\n#ifdef REALTIME_FILTERING\nvReflectionFilteringInfo,\n#endif\nreflectionOut\n);\n#else\n#define CUSTOM_REFLECTION\n#endif\n#endif\n#include<pbrBlockReflectance0>\n#ifdef SHEEN\nsheenOutParams sheenOut;\n#ifdef SHEEN_TEXTURE\nvec4 sheenMapData=texture2D(sheenSampler,vSheenUV+uvOffset);\n#endif\n#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\nvec4 sheenMapRoughnessData=texture2D(sheenRoughnessSampler,vSheenRoughnessUV+uvOffset)*vSheenInfos.w;\n#endif\nsheenBlock(\nvSheenColor,\n#ifdef SHEEN_ROUGHNESS\nvSheenRoughness,\n#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\nsheenMapRoughnessData,\n#endif\n#endif\nroughness,\n#ifdef SHEEN_TEXTURE\nsheenMapData,\nvSheenInfos.y,\n#endif\nreflectance,\n#ifdef SHEEN_LINKWITHALBEDO\nbaseColor,\nsurfaceAlbedo,\n#endif\n#ifdef ENVIRONMENTBRDF\nNdotV,\nenvironmentBrdf,\n#endif\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\nAARoughnessFactors,\nvReflectionMicrosurfaceInfos,\nvReflectionInfos,\nvReflectionColor,\nvLightingIntensity,\nreflectionSampler,\nreflectionOut.reflectionCoords,\nNdotVUnclamped,\n#ifndef LODBASEDMICROSFURACE\nreflectionSamplerLow,\nreflectionSamplerHigh,\n#endif\n#ifdef REALTIME_FILTERING\nvReflectionFilteringInfo,\n#endif\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)\nseo,\n#endif\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\neho,\n#endif\n#endif\nsheenOut\n);\n#ifdef SHEEN_LINKWITHALBEDO\nsurfaceAlbedo=sheenOut.surfaceAlbedo;\n#endif\n#endif\n#ifdef CLEARCOAT\n#ifdef CLEARCOAT_TEXTURE\nvec2 clearCoatMapData=texture2D(clearCoatSampler,vClearCoatUV+uvOffset).rg*vClearCoatInfos.y;\n#endif\n#endif\n#ifdef IRIDESCENCE\niridescenceOutParams iridescenceOut;\n#ifdef IRIDESCENCE_TEXTURE\nvec2 iridescenceMapData=texture2D(iridescenceSampler,vIridescenceUV+uvOffset).rg*vIridescenceInfos.y;\n#endif\n#ifdef IRIDESCENCE_THICKNESS_TEXTURE\nvec2 iridescenceThicknessMapData=texture2D(iridescenceThicknessSampler,vIridescenceThicknessUV+uvOffset).rg*vIridescenceInfos.w;\n#endif\niridescenceBlock(\nvIridescenceParams,\nNdotV,\nspecularEnvironmentR0,\n#ifdef IRIDESCENCE_TEXTURE\niridescenceMapData,\n#endif\n#ifdef IRIDESCENCE_THICKNESS_TEXTURE\niridescenceThicknessMapData,\n#endif\n#ifdef CLEARCOAT\nNdotVUnclamped,\n#ifdef CLEARCOAT_TEXTURE\nclearCoatMapData,\n#endif\n#endif\niridescenceOut\n);float iridescenceIntensity=iridescenceOut.iridescenceIntensity;specularEnvironmentR0=iridescenceOut.specularEnvironmentR0;\n#endif\nclearcoatOutParams clearcoatOut;\n#ifdef CLEARCOAT\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\nvec4 clearCoatMapRoughnessData=texture2D(clearCoatRoughnessSampler,vClearCoatRoughnessUV+uvOffset)*vClearCoatInfos.w;\n#endif\n#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\nvec4 clearCoatTintMapData=texture2D(clearCoatTintSampler,vClearCoatTintUV+uvOffset);\n#endif\n#ifdef CLEARCOAT_BUMP\nvec4 clearCoatBumpMapData=texture2D(clearCoatBumpSampler,vClearCoatBumpUV+uvOffset);\n#endif\nclearcoatBlock(\nvPositionW,\ngeometricNormalW,\nviewDirectionW,\nvClearCoatParams,\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\nclearCoatMapRoughnessData,\n#endif\nspecularEnvironmentR0,\n#ifdef CLEARCOAT_TEXTURE\nclearCoatMapData,\n#endif\n#ifdef CLEARCOAT_TINT\nvClearCoatTintParams,\nclearCoatColorAtDistance,\nvClearCoatRefractionParams,\n#ifdef CLEARCOAT_TINT_TEXTURE\nclearCoatTintMapData,\n#endif\n#endif\n#ifdef CLEARCOAT_BUMP\nvClearCoatBumpInfos,\nclearCoatBumpMapData,\nvClearCoatBumpUV,\n#if defined(TANGENT) && defined(NORMAL)\nvTBN,\n#else\nvClearCoatTangentSpaceParams,\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nnormalMatrix,\n#endif\n#endif\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\nfaceNormal,\n#endif\n#ifdef REFLECTION\nvReflectionMicrosurfaceInfos,\nvReflectionInfos,\nvReflectionColor,\nvLightingIntensity,\nreflectionSampler,\n#ifndef LODBASEDMICROSFURACE\nreflectionSamplerLow,\nreflectionSamplerHigh,\n#endif\n#ifdef REALTIME_FILTERING\nvReflectionFilteringInfo,\n#endif\n#endif\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\n#ifdef RADIANCEOCCLUSION\nambientMonochrome,\n#endif\n#endif\n#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)\n(gl_FrontFacing ? 1. : -1.),\n#endif\nclearcoatOut\n);\n#else\nclearcoatOut.specularEnvironmentR0=specularEnvironmentR0;\n#endif\n#include<pbrBlockReflectance>\nsubSurfaceOutParams subSurfaceOut;\n#ifdef SUBSURFACE\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nvec4 thicknessMap=texture2D(thicknessSampler,vThicknessUV+uvOffset);\n#endif\n#ifdef SS_REFRACTIONINTENSITY_TEXTURE\nvec4 refractionIntensityMap=texture2D(refractionIntensitySampler,vRefractionIntensityUV+uvOffset);\n#endif\n#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE\nvec4 translucencyIntensityMap=texture2D(translucencyIntensitySampler,vTranslucencyIntensityUV+uvOffset);\n#endif\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\nvec4 translucencyColorMap=texture2D(translucencyColorSampler,vTranslucencyColorUV+uvOffset);\n#endif\nsubSurfaceBlock(\nvSubSurfaceIntensity,\nvThicknessParam,\nvTintColor,\nnormalW,\nspecularEnvironmentReflectance,\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nthicknessMap,\n#endif\n#ifdef SS_REFRACTIONINTENSITY_TEXTURE\nrefractionIntensityMap,\n#endif\n#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE\ntranslucencyIntensityMap,\n#endif\n#ifdef REFLECTION\n#ifdef SS_TRANSLUCENCY\nreflectionMatrix,\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\nreflectionOut.irradianceVector,\n#endif\n#if defined(REALTIME_FILTERING)\nreflectionSampler,\nvReflectionFilteringInfo,\n#endif\n#endif\n#ifdef USEIRRADIANCEMAP\nirradianceSampler,\n#endif\n#endif\n#endif\n#if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)\nsurfaceAlbedo,\n#endif\n#ifdef SS_REFRACTION\nvPositionW,\nviewDirectionW,\nview,\nvRefractionInfos,\nrefractionMatrix,\nvRefractionMicrosurfaceInfos,\nvLightingIntensity,\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\nalpha,\n#endif\n#ifdef SS_LODINREFRACTIONALPHA\nNdotVUnclamped,\n#endif\n#ifdef SS_LINEARSPECULARREFRACTION\nroughness,\n#endif\nalphaG,\nrefractionSampler,\n#ifndef LODBASEDMICROSFURACE\nrefractionSamplerLow,\nrefractionSamplerHigh,\n#endif\n#ifdef ANISOTROPIC\nanisotropicOut,\n#endif\n#ifdef REALTIME_FILTERING\nvRefractionFilteringInfo,\n#endif\n#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC\nvRefractionPosition,\nvRefractionSize,\n#endif\n#ifdef SS_DISPERSION\ndispersion,\n#endif\n#endif\n#ifdef SS_TRANSLUCENCY\nvDiffusionDistance,\nvTranslucencyColor,\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\ntranslucencyColorMap,\n#endif\n#endif\nsubSurfaceOut\n);\n#ifdef SS_REFRACTION\nsurfaceAlbedo=subSurfaceOut.surfaceAlbedo;\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\nalpha=subSurfaceOut.alpha;\n#endif\n#endif\n#else\nsubSurfaceOut.specularEnvironmentReflectance=specularEnvironmentReflectance;\n#endif\n#include<pbrBlockDirectLighting>\n#include<lightFragment>[0..maxSimultaneousLights]\n#include<pbrBlockFinalLitComponents>\n#endif \n#include<pbrBlockFinalUnlitComponents>\n#define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\n#include<pbrBlockFinalColorComposition>\n#include<logDepthFragment>\n#include<fogFragment>(color,finalColor)\n#include<pbrBlockImageProcessing>\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\n#ifdef PREPASS\nfloat writeGeometryInfo=finalColor.a>0.4 ? 1.0 : 0.0;\n#ifdef PREPASS_POSITION\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\n#endif\n#ifdef PREPASS_VELOCITY\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\nvec3 sqAlbedo=sqrt(surfaceAlbedo); \n#endif\n#ifdef PREPASS_IRRADIANCE\nvec3 irradiance=finalDiffuse;\n#ifndef UNLIT\n#ifdef REFLECTION\nirradiance+=finalIrradiance;\n#endif\n#endif\n#ifdef SS_SCATTERING\ngl_FragData[0]=vec4(finalColor.rgb-irradiance,finalColor.a); \nirradiance/=sqAlbedo;\n#else\ngl_FragData[0]=finalColor; \nfloat scatteringDiffusionProfile=255.;\n#endif\ngl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.); \n#else\ngl_FragData[0]=vec4(finalColor.rgb,finalColor.a);\n#endif\n#ifdef PREPASS_DEPTH\ngl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo); \n#else\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo); \n#endif\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\ngl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#ifndef UNLIT\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;\n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo;\n#endif\n#endif\n#endif\n#if !defined(PREPASS) || defined(WEBGL2)\ngl_FragColor=finalColor;\n#endif\n#include<oitFragment>\n#if ORDER_INDEPENDENT_TRANSPARENCY\nif (fragDepth==nearestDepth) {frontColor.rgb+=finalColor.rgb*finalColor.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-finalColor.a);} else {backColor+=finalColor;}\n#endif\n#include<pbrDebug>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const pbrPixelShader = { name, shader };\n"]}
1
+ {"version":3,"file":"pbr.fragment.js","sourceRoot":"","sources":["../../../../dev/core/src/Shaders/pbr.fragment.ts"],"names":[],"mappings":"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","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/prePassDeclaration\";\nimport \"./ShadersInclude/oitDeclaration\";\nimport \"./ShadersInclude/pbrFragmentDeclaration\";\nimport \"./ShadersInclude/pbrUboDeclaration\";\nimport \"./ShadersInclude/pbrFragmentExtraDeclaration\";\nimport \"./ShadersInclude/lightFragmentDeclaration\";\nimport \"./ShadersInclude/lightUboDeclaration\";\nimport \"./ShadersInclude/pbrFragmentSamplersDeclaration\";\nimport \"./ShadersInclude/imageProcessingDeclaration\";\nimport \"./ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/fogFragmentDeclaration\";\nimport \"./ShadersInclude/helperFunctions\";\nimport \"./ShadersInclude/subSurfaceScatteringFunctions\";\nimport \"./ShadersInclude/importanceSampling\";\nimport \"./ShadersInclude/pbrHelperFunctions\";\nimport \"./ShadersInclude/imageProcessingFunctions\";\nimport \"./ShadersInclude/shadowsFragmentFunctions\";\nimport \"./ShadersInclude/harmonicsFunctions\";\nimport \"./ShadersInclude/pbrDirectLightingSetupFunctions\";\nimport \"./ShadersInclude/pbrDirectLightingFalloffFunctions\";\nimport \"./ShadersInclude/pbrBRDFFunctions\";\nimport \"./ShadersInclude/hdrFilteringFunctions\";\nimport \"./ShadersInclude/pbrDirectLightingFunctions\";\nimport \"./ShadersInclude/pbrIBLFunctions\";\nimport \"./ShadersInclude/bumpFragmentMainFunctions\";\nimport \"./ShadersInclude/bumpFragmentFunctions\";\nimport \"./ShadersInclude/reflectionFunction\";\nimport \"./ShadersInclude/pbrBlockAlbedoOpacity\";\nimport \"./ShadersInclude/pbrBlockReflectivity\";\nimport \"./ShadersInclude/pbrBlockAmbientOcclusion\";\nimport \"./ShadersInclude/pbrBlockAlphaFresnel\";\nimport \"./ShadersInclude/pbrBlockAnisotropic\";\nimport \"./ShadersInclude/pbrBlockReflection\";\nimport \"./ShadersInclude/pbrBlockSheen\";\nimport \"./ShadersInclude/pbrBlockClearcoat\";\nimport \"./ShadersInclude/pbrBlockIridescence\";\nimport \"./ShadersInclude/pbrBlockSubSurface\";\nimport \"./ShadersInclude/clipPlaneFragment\";\nimport \"./ShadersInclude/pbrBlockNormalGeometric\";\nimport \"./ShadersInclude/bumpFragment\";\nimport \"./ShadersInclude/pbrBlockNormalFinal\";\nimport \"./ShadersInclude/depthPrePass\";\nimport \"./ShadersInclude/pbrBlockLightmapInit\";\nimport \"./ShadersInclude/pbrBlockGeometryInfo\";\nimport \"./ShadersInclude/pbrBlockReflectance0\";\nimport \"./ShadersInclude/pbrBlockReflectance\";\nimport \"./ShadersInclude/pbrBlockDirectLighting\";\nimport \"./ShadersInclude/lightFragment\";\nimport \"./ShadersInclude/pbrBlockFinalLitComponents\";\nimport \"./ShadersInclude/pbrBlockFinalUnlitComponents\";\nimport \"./ShadersInclude/pbrBlockFinalColorComposition\";\nimport \"./ShadersInclude/logDepthFragment\";\nimport \"./ShadersInclude/fogFragment\";\nimport \"./ShadersInclude/pbrBlockImageProcessing\";\nimport \"./ShadersInclude/oitFragment\";\nimport \"./ShadersInclude/pbrDebug\";\n\nconst name = \"pbrPixelShader\";\nconst shader = `#if defined(BUMP) || !defined(NORMAL) || defined(FORCENORMALFORWARD) || defined(SPECULARAA) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#extension GL_OES_standard_derivatives : enable\n#endif\n#ifdef LODBASEDMICROSFURACE\n#extension GL_EXT_shader_texture_lod : enable\n#endif\n#define CUSTOM_FRAGMENT_BEGIN\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\n#include<prePassDeclaration>[SCENE_MRT_COUNT]\nprecision highp float;\n#include<oitDeclaration>\n#ifndef FROMLINEARSPACE\n#define FROMLINEARSPACE\n#endif\n#include<__decl__pbrFragment>\n#include<pbrFragmentExtraDeclaration>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<pbrFragmentSamplersDeclaration>\n#include<imageProcessingDeclaration>\n#include<clipPlaneFragmentDeclaration>\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\n#include<helperFunctions>\n#include<subSurfaceScatteringFunctions>\n#include<importanceSampling>\n#include<pbrHelperFunctions>\n#include<imageProcessingFunctions>\n#include<shadowsFragmentFunctions>\n#include<harmonicsFunctions>\n#include<pbrDirectLightingSetupFunctions>\n#include<pbrDirectLightingFalloffFunctions>\n#include<pbrBRDFFunctions>\n#include<hdrFilteringFunctions>\n#include<pbrDirectLightingFunctions>\n#include<pbrIBLFunctions>\n#include<bumpFragmentMainFunctions>\n#include<bumpFragmentFunctions>\n#ifdef REFLECTION\n#include<reflectionFunction>\n#endif\n#define CUSTOM_FRAGMENT_DEFINITIONS\n#include<pbrBlockAlbedoOpacity>\n#include<pbrBlockReflectivity>\n#include<pbrBlockAmbientOcclusion>\n#include<pbrBlockAlphaFresnel>\n#include<pbrBlockAnisotropic>\n#include<pbrBlockReflection>\n#include<pbrBlockSheen>\n#include<pbrBlockClearcoat>\n#include<pbrBlockIridescence>\n#include<pbrBlockSubSurface>\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\n#include<pbrBlockNormalGeometric>\n#include<bumpFragment>\n#include<pbrBlockNormalFinal>\nalbedoOpacityOutParams albedoOpacityOut;\n#ifdef ALBEDO\nvec4 albedoTexture=texture2D(albedoSampler,vAlbedoUV+uvOffset);\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\n#endif\n#ifdef DECAL\nvec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\n#endif\nalbedoOpacityOut=albedoOpacityBlock(\nvAlbedoColor\n#ifdef ALBEDO\n,albedoTexture\n,vAlbedoInfos\n#endif\n#ifdef OPACITY\n,opacityMap\n,vOpacityInfos\n#endif\n#ifdef DETAIL\n,detailColor\n,vDetailInfos\n#endif\n#ifdef DECAL\n,decalColor\n,vDecalInfos\n#endif\n);vec3 surfaceAlbedo=albedoOpacityOut.surfaceAlbedo;float alpha=albedoOpacityOut.alpha;\n#define CUSTOM_FRAGMENT_UPDATE_ALPHA\n#include<depthPrePass>\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\nambientOcclusionOutParams aoOut;\n#ifdef AMBIENT\nvec3 ambientOcclusionColorMap=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb;\n#endif\naoOut=ambientOcclusionBlock(\n#ifdef AMBIENT\nambientOcclusionColorMap,\nvAmbientInfos\n#endif \n);\n#include<pbrBlockLightmapInit>\n#ifdef UNLIT\nvec3 diffuseBase=vec3(1.,1.,1.);\n#else\nvec3 baseColor=surfaceAlbedo;reflectivityOutParams reflectivityOut;\n#if defined(REFLECTIVITY)\nvec4 surfaceMetallicOrReflectivityColorMap=texture2D(reflectivitySampler,vReflectivityUV+uvOffset);vec4 baseReflectivity=surfaceMetallicOrReflectivityColorMap;\n#ifndef METALLICWORKFLOW\n#ifdef REFLECTIVITY_GAMMA\nsurfaceMetallicOrReflectivityColorMap=toLinearSpace(surfaceMetallicOrReflectivityColorMap);\n#endif\nsurfaceMetallicOrReflectivityColorMap.rgb*=vReflectivityInfos.y;\n#endif\n#endif\n#if defined(MICROSURFACEMAP)\nvec4 microSurfaceTexel=texture2D(microSurfaceSampler,vMicroSurfaceSamplerUV+uvOffset)*vMicroSurfaceSamplerInfos.y;\n#endif\n#ifdef METALLICWORKFLOW\nvec4 metallicReflectanceFactors=vMetallicReflectanceFactors;\n#ifdef REFLECTANCE\nvec4 reflectanceFactorsMap=texture2D(reflectanceSampler,vReflectanceUV+uvOffset);\n#ifdef REFLECTANCE_GAMMA\nreflectanceFactorsMap=toLinearSpace(reflectanceFactorsMap);\n#endif\nmetallicReflectanceFactors.rgb*=reflectanceFactorsMap.rgb;\n#endif\n#ifdef METALLIC_REFLECTANCE\nvec4 metallicReflectanceFactorsMap=texture2D(metallicReflectanceSampler,vMetallicReflectanceUV+uvOffset);\n#ifdef METALLIC_REFLECTANCE_GAMMA\nmetallicReflectanceFactorsMap=toLinearSpace(metallicReflectanceFactorsMap);\n#endif\n#ifndef METALLIC_REFLECTANCE_USE_ALPHA_ONLY\nmetallicReflectanceFactors.rgb*=metallicReflectanceFactorsMap.rgb;\n#endif\nmetallicReflectanceFactors*=metallicReflectanceFactorsMap.a;\n#endif\n#endif\nreflectivityOut=reflectivityBlock(\nvReflectivityColor\n#ifdef METALLICWORKFLOW\n,surfaceAlbedo\n,metallicReflectanceFactors\n#endif\n#ifdef REFLECTIVITY\n,vReflectivityInfos\n,surfaceMetallicOrReflectivityColorMap\n#endif\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\n,aoOut.ambientOcclusionColor\n#endif\n#ifdef MICROSURFACEMAP\n,microSurfaceTexel\n#endif\n#ifdef DETAIL\n,detailColor\n,vDetailInfos\n#endif\n);float microSurface=reflectivityOut.microSurface;float roughness=reflectivityOut.roughness;\n#ifdef METALLICWORKFLOW\nsurfaceAlbedo=reflectivityOut.surfaceAlbedo;\n#endif\n#if defined(METALLICWORKFLOW) && defined(REFLECTIVITY) && defined(AOSTOREINMETALMAPRED)\naoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor;\n#endif\n#ifdef ALPHAFRESNEL\n#if defined(ALPHATEST) || defined(ALPHABLEND)\nalphaFresnelOutParams alphaFresnelOut;alphaFresnelOut=alphaFresnelBlock(\nnormalW,\nviewDirectionW,\nalpha,\nmicroSurface\n);alpha=alphaFresnelOut.alpha;\n#endif\n#endif\n#include<pbrBlockGeometryInfo>\n#ifdef ANISOTROPIC\nanisotropicOutParams anisotropicOut;\n#ifdef ANISOTROPIC_TEXTURE\nvec3 anisotropyMapData=texture2D(anisotropySampler,vAnisotropyUV+uvOffset).rgb*vAnisotropyInfos.y;\n#endif\nanisotropicOut=anisotropicBlock(\nvAnisotropy,\nroughness,\n#ifdef ANISOTROPIC_TEXTURE\nanisotropyMapData,\n#endif\nTBN,\nnormalW,\nviewDirectionW \n);\n#endif\n#ifdef REFLECTION\nreflectionOutParams reflectionOut;\n#ifndef USE_CUSTOM_REFLECTION\nreflectionOut=reflectionBlock(\nvPositionW\n,normalW\n,alphaG\n,vReflectionMicrosurfaceInfos\n,vReflectionInfos\n,vReflectionColor\n#ifdef ANISOTROPIC\n,anisotropicOut\n#endif\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\n,NdotVUnclamped\n#endif\n#ifdef LINEARSPECULARREFLECTION\n,roughness\n#endif\n,reflectionSampler\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\n,vEnvironmentIrradiance\n#endif\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\n,reflectionMatrix\n#endif\n#endif\n#ifdef USEIRRADIANCEMAP\n,irradianceSampler\n#endif\n#ifndef LODBASEDMICROSFURACE\n,reflectionSamplerLow\n,reflectionSamplerHigh\n#endif\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo\n#endif\n);\n#else\n#define CUSTOM_REFLECTION\n#endif\n#endif\n#include<pbrBlockReflectance0>\n#ifdef SHEEN\nsheenOutParams sheenOut;\n#ifdef SHEEN_TEXTURE\nvec4 sheenMapData=texture2D(sheenSampler,vSheenUV+uvOffset);\n#endif\n#if defined(SHEEN_ROUGHNESS) && defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\nvec4 sheenMapRoughnessData=texture2D(sheenRoughnessSampler,vSheenRoughnessUV+uvOffset)*vSheenInfos.w;\n#endif\nsheenOut=sheenBlock(\nvSheenColor\n#ifdef SHEEN_ROUGHNESS\n,vSheenRoughness\n#if defined(SHEEN_TEXTURE_ROUGHNESS) && !defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\n,sheenMapRoughnessData\n#endif\n#endif\n,roughness\n#ifdef SHEEN_TEXTURE\n,sheenMapData\n,vSheenInfos.y\n#endif\n,reflectance\n#ifdef SHEEN_LINKWITHALBEDO\n,baseColor\n,surfaceAlbedo\n#endif\n#ifdef ENVIRONMENTBRDF\n,NdotV\n,environmentBrdf\n#endif\n#if defined(REFLECTION) && defined(ENVIRONMENTBRDF)\n,AARoughnessFactors\n,vReflectionMicrosurfaceInfos\n,vReflectionInfos\n,vReflectionColor\n,vLightingIntensity\n,reflectionSampler\n,reflectionOut.reflectionCoords\n,NdotVUnclamped\n#ifndef LODBASEDMICROSFURACE\n,reflectionSamplerLow\n,reflectionSamplerHigh\n#endif\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo\n#endif\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(RADIANCEOCCLUSION)\n,seo\n#endif\n#if !defined(REFLECTIONMAP_SKYBOX) && defined(HORIZONOCCLUSION) && defined(BUMP) && defined(REFLECTIONMAP_3D)\n,eho\n#endif\n#endif\n);\n#ifdef SHEEN_LINKWITHALBEDO\nsurfaceAlbedo=sheenOut.surfaceAlbedo;\n#endif\n#endif\n#ifdef CLEARCOAT\n#ifdef CLEARCOAT_TEXTURE\nvec2 clearCoatMapData=texture2D(clearCoatSampler,vClearCoatUV+uvOffset).rg*vClearCoatInfos.y;\n#endif\n#endif\n#ifdef IRIDESCENCE\niridescenceOutParams iridescenceOut;\n#ifdef IRIDESCENCE_TEXTURE\nvec2 iridescenceMapData=texture2D(iridescenceSampler,vIridescenceUV+uvOffset).rg*vIridescenceInfos.y;\n#endif\n#ifdef IRIDESCENCE_THICKNESS_TEXTURE\nvec2 iridescenceThicknessMapData=texture2D(iridescenceThicknessSampler,vIridescenceThicknessUV+uvOffset).rg*vIridescenceInfos.w;\n#endif\niridescenceOut=iridescenceBlock(\nvIridescenceParams\n,NdotV\n,specularEnvironmentR0\n#ifdef IRIDESCENCE_TEXTURE\n,iridescenceMapData\n#endif\n#ifdef IRIDESCENCE_THICKNESS_TEXTURE\n,iridescenceThicknessMapData\n#endif\n#ifdef CLEARCOAT\n,NdotVUnclamped\n#ifdef CLEARCOAT_TEXTURE\n,clearCoatMapData\n#endif\n#endif\n);float iridescenceIntensity=iridescenceOut.iridescenceIntensity;specularEnvironmentR0=iridescenceOut.specularEnvironmentR0;\n#endif\nclearcoatOutParams clearcoatOut;\n#ifdef CLEARCOAT\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\nvec4 clearCoatMapRoughnessData=texture2D(clearCoatRoughnessSampler,vClearCoatRoughnessUV+uvOffset)*vClearCoatInfos.w;\n#endif\n#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\nvec4 clearCoatTintMapData=texture2D(clearCoatTintSampler,vClearCoatTintUV+uvOffset);\n#endif\n#ifdef CLEARCOAT_BUMP\nvec4 clearCoatBumpMapData=texture2D(clearCoatBumpSampler,vClearCoatBumpUV+uvOffset);\n#endif\nclearcoatOut=clearcoatBlock(\nvPositionW\n,geometricNormalW\n,viewDirectionW\n,vClearCoatParams\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\n,clearCoatMapRoughnessData\n#endif\n,specularEnvironmentR0\n#ifdef CLEARCOAT_TEXTURE\n,clearCoatMapData\n#endif\n#ifdef CLEARCOAT_TINT\n,vClearCoatTintParams\n,clearCoatColorAtDistance\n,vClearCoatRefractionParams\n#ifdef CLEARCOAT_TINT_TEXTURE\n,clearCoatTintMapData\n#endif\n#endif\n#ifdef CLEARCOAT_BUMP\n,vClearCoatBumpInfos\n,clearCoatBumpMapData\n,vClearCoatBumpUV\n#if defined(TANGENT) && defined(NORMAL)\n,vTBN\n#else\n,vClearCoatTangentSpaceParams\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n,normalMatrix\n#endif\n#endif\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\n,faceNormal\n#endif\n#ifdef REFLECTION\n,vReflectionMicrosurfaceInfos\n,vReflectionInfos\n,vReflectionColor\n,vLightingIntensity\n,reflectionSampler\n#ifndef LODBASEDMICROSFURACE\n,reflectionSamplerLow\n,reflectionSamplerHigh\n#endif\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo\n#endif\n#endif\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\n#ifdef RADIANCEOCCLUSION\n,ambientMonochrome\n#endif\n#endif\n#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)\n,(gl_FrontFacing ? 1. : -1.)\n#endif\n);\n#else\nclearcoatOut.specularEnvironmentR0=specularEnvironmentR0;\n#endif\n#include<pbrBlockReflectance>\nsubSurfaceOutParams subSurfaceOut;\n#ifdef SUBSURFACE\n#ifdef SS_THICKNESSANDMASK_TEXTURE\nvec4 thicknessMap=texture2D(thicknessSampler,vThicknessUV+uvOffset);\n#endif\n#ifdef SS_REFRACTIONINTENSITY_TEXTURE\nvec4 refractionIntensityMap=texture2D(refractionIntensitySampler,vRefractionIntensityUV+uvOffset);\n#endif\n#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE\nvec4 translucencyIntensityMap=texture2D(translucencyIntensitySampler,vTranslucencyIntensityUV+uvOffset);\n#endif\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\nvec4 translucencyColorMap=texture2D(translucencyColorSampler,vTranslucencyColorUV+uvOffset);\n#endif\nsubSurfaceOut=subSurfaceBlock(\nvSubSurfaceIntensity\n,vThicknessParam\n,vTintColor\n,normalW\n,specularEnvironmentReflectance\n#ifdef SS_THICKNESSANDMASK_TEXTURE\n,thicknessMap\n#endif\n#ifdef SS_REFRACTIONINTENSITY_TEXTURE\n,refractionIntensityMap\n#endif\n#ifdef SS_TRANSLUCENCYINTENSITY_TEXTURE\n,translucencyIntensityMap\n#endif\n#ifdef REFLECTION\n#ifdef SS_TRANSLUCENCY\n,reflectionMatrix\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if !defined(NORMAL) || !defined(USESPHERICALINVERTEX)\n,reflectionOut.irradianceVector\n#endif\n#if defined(REALTIME_FILTERING)\n,reflectionSampler\n,vReflectionFilteringInfo\n#endif\n#endif\n#ifdef USEIRRADIANCEMAP\n,irradianceSampler\n#endif\n#endif\n#endif\n#if defined(SS_REFRACTION) || defined(SS_TRANSLUCENCY)\n,surfaceAlbedo\n#endif\n#ifdef SS_REFRACTION\n,vPositionW\n,viewDirectionW\n,view\n,vRefractionInfos\n,refractionMatrix\n,vRefractionMicrosurfaceInfos\n,vLightingIntensity\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\n,alpha\n#endif\n#ifdef SS_LODINREFRACTIONALPHA\n,NdotVUnclamped\n#endif\n#ifdef SS_LINEARSPECULARREFRACTION\n,roughness\n#endif\n,alphaG\n,refractionSampler\n#ifndef LODBASEDMICROSFURACE\n,refractionSamplerLow\n,refractionSamplerHigh\n#endif\n#ifdef ANISOTROPIC\n,anisotropicOut\n#endif\n#ifdef REALTIME_FILTERING\n,vRefractionFilteringInfo\n#endif\n#ifdef SS_USE_LOCAL_REFRACTIONMAP_CUBIC\n,vRefractionPosition\n,vRefractionSize\n#endif\n#ifdef SS_DISPERSION\n,dispersion\n#endif\n#endif\n#ifdef SS_TRANSLUCENCY\n,vDiffusionDistance\n,vTranslucencyColor\n#ifdef SS_TRANSLUCENCYCOLOR_TEXTURE\n,translucencyColorMap\n#endif\n#endif\n);\n#ifdef SS_REFRACTION\nsurfaceAlbedo=subSurfaceOut.surfaceAlbedo;\n#ifdef SS_LINKREFRACTIONTOTRANSPARENCY\nalpha=subSurfaceOut.alpha;\n#endif\n#endif\n#else\nsubSurfaceOut.specularEnvironmentReflectance=specularEnvironmentReflectance;\n#endif\n#include<pbrBlockDirectLighting>\n#include<lightFragment>[0..maxSimultaneousLights]\n#include<pbrBlockFinalLitComponents>\n#endif \n#include<pbrBlockFinalUnlitComponents>\n#define CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\n#include<pbrBlockFinalColorComposition>\n#include<logDepthFragment>\n#include<fogFragment>(color,finalColor)\n#include<pbrBlockImageProcessing>\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\n#ifdef PREPASS\nfloat writeGeometryInfo=finalColor.a>0.4 ? 1.0 : 0.0;\n#ifdef PREPASS_POSITION\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\n#endif\n#ifdef PREPASS_VELOCITY\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;gl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\nvec3 sqAlbedo=sqrt(surfaceAlbedo); \n#endif\n#ifdef PREPASS_IRRADIANCE\nvec3 irradiance=finalDiffuse;\n#ifndef UNLIT\n#ifdef REFLECTION\nirradiance+=finalIrradiance;\n#endif\n#endif\n#ifdef SS_SCATTERING\ngl_FragData[0]=vec4(finalColor.rgb-irradiance,finalColor.a); \nirradiance/=sqAlbedo;\n#else\ngl_FragData[0]=finalColor; \nfloat scatteringDiffusionProfile=255.;\n#endif\ngl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.); \n#else\ngl_FragData[0]=vec4(finalColor.rgb,finalColor.a);\n#endif\n#ifdef PREPASS_DEPTH\ngl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalW,writeGeometryInfo); \n#else\ngl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo); \n#endif\n#endif\n#ifdef PREPASS_ALBEDO_SQRT\ngl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#ifndef UNLIT\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;\n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4( 0.0,0.0,0.0,1.0 )*writeGeometryInfo;\n#endif\n#endif\n#endif\n#if !defined(PREPASS) || defined(WEBGL2)\ngl_FragColor=finalColor;\n#endif\n#include<oitFragment>\n#if ORDER_INDEPENDENT_TRANSPARENCY\nif (fragDepth==nearestDepth) {frontColor.rgb+=finalColor.rgb*finalColor.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-finalColor.a);} else {backColor+=finalColor;}\n#endif\n#include<pbrDebug>\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const pbrPixelShader = { name, shader };\n"]}
@@ -51,11 +51,11 @@ mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
51
51
  #endif
52
52
  #endif
53
53
  fn perturbNormalBase(cotangentFrame: mat3x3f,normal: vec3f,scale: f32)->vec3f
54
- {
54
+ {var output=normal;
55
55
  #ifdef NORMALXYSCALE
56
- normal=normalize(normal* vec3f(scale,scale,1.0));
56
+ output=normalize(output* vec3f(scale,scale,1.0));
57
57
  #endif
58
- return normalize(cotangentFrame*normal);}
58
+ return normalize(cotangentFrame*output);}
59
59
  fn perturbNormal(cotangentFrame: mat3x3f,textureSample: vec3f,scale: f32)->vec3f
60
60
  {return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
61
61
  fn cotangent_frame(normal: vec3f,p: vec3f,uv: vec2f,tangentSpaceParams: vec2f)->mat3x3f
@@ -1 +1 @@
1
- {"version":3,"file":"bumpFragmentMainFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,2BAA2B,CAAC;AACzC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Dd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"bumpFragmentMainFunctions\";\nconst shader = `#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)\n#if defined(TANGENT) && defined(NORMAL) \nvarying vTBN: mat3x3f;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nuniform normalMatrix: mat4x4f;\n#if defined(WEBGL2) || defined(WEBGPU)\nfn toNormalMatrix(wMatrix: mat4x4f)->mat4x4f\n{var ret: mat4x4f=inverse(wMatrix);ret=transpose(ret);ret[0][3]=0.;ret[1][3]=0.;ret[2][3]=0.;ret[3]= vec4f(0.,0.,0.,1.);return ret;}\n#else\nfn toNormalMatrix(m: mat4x4f)->mat4x4f\n{var a00: f32=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],\na10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],\na20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],\na30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],\nb00=a00*a11-a01*a10,\nb01=a00*a12-a02*a10,\nb02=a00*a13-a03*a10,\nb03=a01*a12-a02*a11,\nb04=a01*a13-a03*a11,\nb05=a02*a13-a03*a12,\nb06=a20*a31-a21*a30,\nb07=a20*a32-a22*a30,\nb08=a20*a33-a23*a30,\nb09=a21*a32-a22*a31,\nb10=a21*a33-a23*a31,\nb11=a22*a33-a23*a32,\ndet=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var mi: mat4x4f= mat4x4f(\na11*b11-a12*b10+a13*b09,\na02*b10-a01*b11-a03*b09,\na31*b05-a32*b04+a33*b03,\na22*b04-a21*b05-a23*b03,\na12*b08-a10*b11-a13*b07,\na00*b11-a02*b08+a03*b07,\na32*b02-a30*b05-a33*b01,\na20*b05-a22*b02+a23*b01,\na10*b10-a11*b08+a13*b06,\na01*b08-a00*b10-a03*b06,\na30*b04-a31*b02+a33*b00,\na21*b02-a20*b04-a23*b00,\na11*b07-a10*b09-a12*b06,\na00*b09-a01*b07+a02*b06,\na31*b01-a30*b03-a32*b00,\na20*b03-a21*b01+a22*b00)/det;return mat4x4f(mi[0][0],mi[1][0],mi[2][0],mi[3][0],\nmi[0][1],mi[1][1],mi[2][1],mi[3][1],\nmi[0][2],mi[1][2],mi[2][2],mi[3][2],\nmi[0][3],mi[1][3],mi[2][3],mi[3][3]);}\n#endif\n#endif\nfn perturbNormalBase(cotangentFrame: mat3x3f,normal: vec3f,scale: f32)->vec3f\n{\n#ifdef NORMALXYSCALE\nnormal=normalize(normal* vec3f(scale,scale,1.0));\n#endif\nreturn normalize(cotangentFrame*normal);}\nfn perturbNormal(cotangentFrame: mat3x3f,textureSample: vec3f,scale: f32)->vec3f\n{return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}\nfn cotangent_frame(normal: vec3f,p: vec3f,uv: vec2f,tangentSpaceParams: vec2f)->mat3x3f\n{var dp1: vec3f=dpdx(p);var dp2: vec3f=dpdy(p);var duv1: vec2f=dpdx(uv);var duv2: vec2f=dpdy(uv);var dp2perp: vec3f=cross(dp2,normal);var dp1perp: vec3f=cross(normal,dp1);var tangent: vec3f=dp2perp*duv1.x+dp1perp*duv2.x;var bitangent: vec3f=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;var det: f32=max(dot(tangent,tangent),dot(bitangent,bitangent));var invmax: f32=select(inverseSqrt(det),0.0,det==0.0);return mat3x3f(tangent*invmax,bitangent*invmax,normal);}\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const bumpFragmentMainFunctions = { name, shader };\n"]}
1
+ {"version":3,"file":"bumpFragmentMainFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,2BAA2B,CAAC;AACzC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Dd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"bumpFragmentMainFunctions\";\nconst shader = `#if defined(BUMP) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)\n#if defined(TANGENT) && defined(NORMAL) \nvarying vTBN: mat3x3f;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nuniform normalMatrix: mat4x4f;\n#if defined(WEBGL2) || defined(WEBGPU)\nfn toNormalMatrix(wMatrix: mat4x4f)->mat4x4f\n{var ret: mat4x4f=inverse(wMatrix);ret=transpose(ret);ret[0][3]=0.;ret[1][3]=0.;ret[2][3]=0.;ret[3]= vec4f(0.,0.,0.,1.);return ret;}\n#else\nfn toNormalMatrix(m: mat4x4f)->mat4x4f\n{var a00: f32=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],\na10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],\na20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],\na30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],\nb00=a00*a11-a01*a10,\nb01=a00*a12-a02*a10,\nb02=a00*a13-a03*a10,\nb03=a01*a12-a02*a11,\nb04=a01*a13-a03*a11,\nb05=a02*a13-a03*a12,\nb06=a20*a31-a21*a30,\nb07=a20*a32-a22*a30,\nb08=a20*a33-a23*a30,\nb09=a21*a32-a22*a31,\nb10=a21*a33-a23*a31,\nb11=a22*a33-a23*a32,\ndet=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var mi: mat4x4f= mat4x4f(\na11*b11-a12*b10+a13*b09,\na02*b10-a01*b11-a03*b09,\na31*b05-a32*b04+a33*b03,\na22*b04-a21*b05-a23*b03,\na12*b08-a10*b11-a13*b07,\na00*b11-a02*b08+a03*b07,\na32*b02-a30*b05-a33*b01,\na20*b05-a22*b02+a23*b01,\na10*b10-a11*b08+a13*b06,\na01*b08-a00*b10-a03*b06,\na30*b04-a31*b02+a33*b00,\na21*b02-a20*b04-a23*b00,\na11*b07-a10*b09-a12*b06,\na00*b09-a01*b07+a02*b06,\na31*b01-a30*b03-a32*b00,\na20*b03-a21*b01+a22*b00)/det;return mat4x4f(mi[0][0],mi[1][0],mi[2][0],mi[3][0],\nmi[0][1],mi[1][1],mi[2][1],mi[3][1],\nmi[0][2],mi[1][2],mi[2][2],mi[3][2],\nmi[0][3],mi[1][3],mi[2][3],mi[3][3]);}\n#endif\n#endif\nfn perturbNormalBase(cotangentFrame: mat3x3f,normal: vec3f,scale: f32)->vec3f\n{var output=normal;\n#ifdef NORMALXYSCALE\noutput=normalize(output* vec3f(scale,scale,1.0));\n#endif\nreturn normalize(cotangentFrame*output);}\nfn perturbNormal(cotangentFrame: mat3x3f,textureSample: vec3f,scale: f32)->vec3f\n{return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}\nfn cotangent_frame(normal: vec3f,p: vec3f,uv: vec2f,tangentSpaceParams: vec2f)->mat3x3f\n{var dp1: vec3f=dpdx(p);var dp2: vec3f=dpdy(p);var duv1: vec2f=dpdx(uv);var duv2: vec2f=dpdy(uv);var dp2perp: vec3f=cross(dp2,normal);var dp1perp: vec3f=cross(normal,dp1);var tangent: vec3f=dp2perp*duv1.x+dp1perp*duv2.x;var bitangent: vec3f=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;var det: f32=max(dot(tangent,tangent),dot(bitangent,bitangent));var invmax: f32=select(inverseSqrt(det),0.0,det==0.0);return mat3x3f(tangent*invmax,bitangent*invmax,normal);}\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const bumpFragmentMainFunctions = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const decalFragment: {
3
+ name: string;
4
+ shader: string;
5
+ };