@babylonjs/core 7.16.0 → 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.
- package/Animations/animationGroup.d.ts +1 -0
- package/Animations/animationGroup.js +4 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Collisions/gpuPicker.js +1 -1
- package/Collisions/gpuPicker.js.map +1 -1
- package/Compute/computeEffect.js +1 -1
- package/Compute/computeEffect.js.map +1 -1
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +32 -0
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +32 -0
- package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/engine.d.ts +1993 -1993
- package/Engines/nativeEngine.d.ts +7 -0
- package/Engines/nativeEngine.js +24 -1
- package/Engines/nativeEngine.js.map +1 -1
- package/Engines/thinEngine.js +2 -2
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +3 -3
- package/Engines/webgpuEngine.js.map +1 -1
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +6 -6
- package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +4 -7
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.js +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js +4 -4
- package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js +46 -40
- package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.d.ts +2 -1
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js +10 -9
- package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -0
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +85 -69
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.js +54 -38
- package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.js +2 -2
- package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.d.ts +2 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.js +40 -32
- package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +53 -45
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
- package/Materials/Node/nodeMaterial.d.ts +2 -1
- package/Materials/Node/nodeMaterial.js +4 -1
- package/Materials/Node/nodeMaterial.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +1 -0
- package/Materials/Node/nodeMaterialBuildState.js +12 -3
- package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
- package/Materials/effect.js +2 -2
- package/Materials/effect.js.map +1 -1
- package/Meshes/Builders/decalBuilder.js +12 -12
- package/Meshes/Builders/decalBuilder.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.d.ts +10 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +50 -11
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/Node/nodeGeometry.d.ts +6 -0
- package/Meshes/Node/nodeGeometry.js +7 -0
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/mesh.d.ts +1 -0
- package/Meshes/mesh.js +138 -134
- package/Meshes/mesh.js.map +1 -1
- package/Meshes/subMesh.js +1 -1
- package/Meshes/subMesh.js.map +1 -1
- package/Misc/khronosTextureContainer2.js +1 -1
- package/Misc/khronosTextureContainer2.js.map +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.js +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -1
- package/Rendering/edgesRenderer.js +1 -1
- package/Rendering/edgesRenderer.js.map +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +1 -1
- package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/lightFragment.js +3 -3
- package/Shaders/ShadersInclude/lightFragment.js.map +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js +1 -1
- package/Shaders/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +13 -14
- package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js +4 -5
- package/Shaders/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js +4 -5
- package/Shaders/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js +4 -5
- package/Shaders/ShadersInclude/pbrBlockAnisotropic.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js +34 -35
- package/Shaders/ShadersInclude/pbrBlockClearcoat.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockIridescence.js +10 -11
- package/Shaders/ShadersInclude/pbrBlockIridescence.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflection.js +23 -24
- package/Shaders/ShadersInclude/pbrBlockReflection.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js +12 -13
- package/Shaders/ShadersInclude/pbrBlockReflectivity.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSheen.js +31 -32
- package/Shaders/ShadersInclude/pbrBlockSheen.js.map +1 -1
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js +43 -44
- package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js +1 -1
- package/Shaders/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -1
- package/Shaders/pbr.fragment.js +143 -153
- package/Shaders/pbr.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js +3 -3
- package/ShadersWGSL/ShadersInclude/bumpFragmentMainFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/decalFragment.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/decalFragment.js +18 -0
- package/ShadersWGSL/ShadersInclude/decalFragment.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/depthPrePass.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/depthPrePass.js +12 -0
- package/ShadersWGSL/ShadersInclude/depthPrePass.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/harmonicsFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js +24 -0
- package/ShadersWGSL/ShadersInclude/harmonicsFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js +39 -0
- package/ShadersWGSL/ShadersInclude/hdrFilteringFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/helperFunctions.js +6 -2
- package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js +2 -2
- package/ShadersWGSL/ShadersInclude/imageProcessingFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/importanceSampling.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/importanceSampling.js +12 -0
- package/ShadersWGSL/ShadersInclude/importanceSampling.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/lightFragment.js +3 -3
- package/ShadersWGSL/ShadersInclude/lightFragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js +1 -1
- package/ShadersWGSL/ShadersInclude/lightsFragmentFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js +139 -0
- package/ShadersWGSL/ShadersInclude/pbrBRDFFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.d.ts +6 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js +81 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js +37 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js +35 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js +46 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js +267 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js +24 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js +51 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js +96 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalLitComponents.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js +26 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockFinalUnlitComponents.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js +33 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockGeometryInfo.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js +20 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockImageProcessing.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js +51 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockIridescence.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js +19 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockLightmapInit.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js +19 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockNormalFinal.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js +30 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js +18 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectance0.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflection.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js +277 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflection.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js +120 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockReflectivity.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockSheen.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js +195 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockSheen.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js +425 -0
- package/ShadersWGSL/ShadersInclude/pbrBlockSubSurface.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrDebug.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrDebug.js +193 -0
- package/ShadersWGSL/ShadersInclude/pbrDebug.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js +43 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFalloffFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js +68 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js +30 -0
- package/ShadersWGSL/ShadersInclude/pbrDirectLightingSetupFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js +41 -0
- package/ShadersWGSL/ShadersInclude/pbrHelperFunctions.js.map +1 -0
- package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.d.ts +5 -0
- package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js +23 -0
- package/ShadersWGSL/ShadersInclude/pbrIBLFunctions.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,81 @@
|
|
|
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
|
+
{surfaceAlbedo: vec3f,
|
|
7
|
+
alpha: f32};
|
|
8
|
+
#define pbr_inline
|
|
9
|
+
fn albedoOpacityBlock(
|
|
10
|
+
vAlbedoColor: vec4f
|
|
11
|
+
#ifdef ALBEDO
|
|
12
|
+
,albedoTexture: vec4f
|
|
13
|
+
,albedoInfos: vec2f
|
|
14
|
+
#endif
|
|
15
|
+
#ifdef OPACITY
|
|
16
|
+
,opacityMap: vec4f
|
|
17
|
+
,vOpacityInfos: vec2f
|
|
18
|
+
#endif
|
|
19
|
+
#ifdef DETAIL
|
|
20
|
+
,detailColor: vec4f
|
|
21
|
+
,vDetailInfos: vec4f
|
|
22
|
+
#endif
|
|
23
|
+
#ifdef DECAL
|
|
24
|
+
,decalColor: vec4f
|
|
25
|
+
,vDecalInfos: vec4f
|
|
26
|
+
#endif
|
|
27
|
+
)->albedoOpacityOutParams
|
|
28
|
+
{var outParams: albedoOpacityOutParams;var surfaceAlbedo: vec3f=vAlbedoColor.rgb;var alpha: f32=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
|
+
var detailAlbedo: f32=2.0*mix(0.5,detailColor.r,vDetailInfos.y);surfaceAlbedo=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;return outParams;}
|
|
76
|
+
`;
|
|
77
|
+
// Sideeffect
|
|
78
|
+
ShaderStore.IncludesShadersStoreWGSL[name] = shader;
|
|
79
|
+
/** @internal */
|
|
80
|
+
export const pbrBlockAlbedoOpacity = { name, shader };
|
|
81
|
+
//# sourceMappingURL=pbrBlockAlbedoOpacity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbrBlockAlbedoOpacity.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/pbrBlockAlbedoOpacity.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,iBAAiB,CAAC;AAEzB,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./decalFragment\";\n\nconst name = \"pbrBlockAlbedoOpacity\";\nconst shader = `struct albedoOpacityOutParams\n{surfaceAlbedo: vec3f,\nalpha: f32};\n#define pbr_inline\nfn albedoOpacityBlock(\nvAlbedoColor: vec4f\n#ifdef ALBEDO\n,albedoTexture: vec4f\n,albedoInfos: vec2f\n#endif\n#ifdef OPACITY\n,opacityMap: vec4f\n,vOpacityInfos: vec2f\n#endif\n#ifdef DETAIL\n,detailColor: vec4f\n,vDetailInfos: vec4f\n#endif\n#ifdef DECAL\n,decalColor: vec4f\n,vDecalInfos: vec4f\n#endif\n)->albedoOpacityOutParams\n{var outParams: albedoOpacityOutParams;var surfaceAlbedo: vec3f=vAlbedoColor.rgb;var alpha: f32=vAlbedoColor.a;\n#ifdef ALBEDO\n#if defined(ALPHAFROMALBEDO) || defined(ALPHATEST)\nalpha*=albedoTexture.a;\n#endif\n#ifdef GAMMAALBEDO\nsurfaceAlbedo*=toLinearSpace(albedoTexture.rgb);\n#else\nsurfaceAlbedo*=albedoTexture.rgb;\n#endif\nsurfaceAlbedo*=albedoInfos.y;\n#endif\n#ifndef DECAL_AFTER_DETAIL\n#include<decalFragment>\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nsurfaceAlbedo*=vColor.rgb;\n#endif\n#ifdef DETAIL\nvar detailAlbedo: f32=2.0*mix(0.5,detailColor.r,vDetailInfos.y);surfaceAlbedo=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo; \n#endif\n#ifdef DECAL_AFTER_DETAIL\n#include<decalFragment>\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_ALBEDO\n#ifdef OPACITY\n#ifdef OPACITYRGB\nalpha=getLuminance(opacityMap.rgb);\n#else\nalpha*=opacityMap.a;\n#endif\nalpha*=vOpacityInfos.y;\n#endif\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\n#if !defined(SS_LINKREFRACTIONTOTRANSPARENCY) && !defined(ALPHAFRESNEL)\n#ifdef ALPHATEST \n#if DEBUGMODE != 88\nif (alpha<ALPHATESTVALUE)\ndiscard;\n#endif\n#ifndef ALPHABLEND\nalpha=1.0;\n#endif\n#endif\n#endif\noutParams.surfaceAlbedo=surfaceAlbedo;outParams.alpha=alpha;return outParams;}\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const pbrBlockAlbedoOpacity = { name, shader };\n"]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
|
+
const name = "pbrBlockAlphaFresnel";
|
|
4
|
+
const shader = `#ifdef ALPHAFRESNEL
|
|
5
|
+
#if defined(ALPHATEST) || defined(ALPHABLEND)
|
|
6
|
+
struct alphaFresnelOutParams
|
|
7
|
+
{alpha: f32};
|
|
8
|
+
#define pbr_inline
|
|
9
|
+
fn alphaFresnelBlock(
|
|
10
|
+
in var normalW: vec3f,
|
|
11
|
+
in var viewDirectionW: vec3f,
|
|
12
|
+
in var alpha: f32,
|
|
13
|
+
in var microSurface: f32
|
|
14
|
+
)->alphaFresnelOutParams
|
|
15
|
+
{var outParams: alphaFresnelOutParams;var opacityPerceptual: f32=alpha;
|
|
16
|
+
#ifdef LINEARALPHAFRESNEL
|
|
17
|
+
var opacity0: f32=opacityPerceptual;
|
|
18
|
+
#else
|
|
19
|
+
var opacity0: f32=opacityPerceptual*opacityPerceptual;
|
|
20
|
+
#endif
|
|
21
|
+
var opacity90: f32=fresnelGrazingReflectance(opacity0);var normalForward: vec3f=faceforward(normalW,-viewDirectionW,normalW);outParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)), vec3f(opacity0), vec3f(opacity90),sqrt(microSurface)).x;
|
|
22
|
+
#ifdef ALPHATEST
|
|
23
|
+
if (outParams.alpha<ALPHATESTVALUE)
|
|
24
|
+
discard;
|
|
25
|
+
#ifndef ALPHABLEND
|
|
26
|
+
outParams.alpha=1.0;
|
|
27
|
+
#endif
|
|
28
|
+
#endif
|
|
29
|
+
return outParams;}
|
|
30
|
+
#endif
|
|
31
|
+
#endif
|
|
32
|
+
`;
|
|
33
|
+
// Sideeffect
|
|
34
|
+
ShaderStore.IncludesShadersStoreWGSL[name] = shader;
|
|
35
|
+
/** @internal */
|
|
36
|
+
export const pbrBlockAlphaFresnel = { name, shader };
|
|
37
|
+
//# sourceMappingURL=pbrBlockAlphaFresnel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbrBlockAlphaFresnel.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/pbrBlockAlphaFresnel.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,sBAAsB,CAAC;AACpC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Bd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrBlockAlphaFresnel\";\nconst shader = `#ifdef ALPHAFRESNEL\n#if defined(ALPHATEST) || defined(ALPHABLEND)\nstruct alphaFresnelOutParams\n{alpha: f32};\n#define pbr_inline\nfn alphaFresnelBlock(\nin var normalW: vec3f,\nin var viewDirectionW: vec3f,\nin var alpha: f32,\nin var microSurface: f32\n)->alphaFresnelOutParams\n{var outParams: alphaFresnelOutParams;var opacityPerceptual: f32=alpha;\n#ifdef LINEARALPHAFRESNEL\nvar opacity0: f32=opacityPerceptual;\n#else\nvar opacity0: f32=opacityPerceptual*opacityPerceptual;\n#endif\nvar opacity90: f32=fresnelGrazingReflectance(opacity0);var normalForward: vec3f=faceforward(normalW,-viewDirectionW,normalW);outParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)), vec3f(opacity0), vec3f(opacity90),sqrt(microSurface)).x;\n#ifdef ALPHATEST\nif (outParams.alpha<ALPHATESTVALUE)\ndiscard;\n#ifndef ALPHABLEND\noutParams.alpha=1.0;\n#endif\n#endif\nreturn outParams;}\n#endif\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const pbrBlockAlphaFresnel = { name, shader };\n"]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
|
+
const name = "pbrBlockAmbientOcclusion";
|
|
4
|
+
const shader = `struct ambientOcclusionOutParams
|
|
5
|
+
{ambientOcclusionColor: vec3f,
|
|
6
|
+
#if DEBUGMODE>0 && defined(AMBIENT)
|
|
7
|
+
ambientOcclusionColorMap: vec3f
|
|
8
|
+
#endif
|
|
9
|
+
};
|
|
10
|
+
#define pbr_inline
|
|
11
|
+
fn ambientOcclusionBlock(
|
|
12
|
+
#ifdef AMBIENT
|
|
13
|
+
ambientOcclusionColorMap_: vec3f,
|
|
14
|
+
vAmbientInfos: vec4f
|
|
15
|
+
#endif
|
|
16
|
+
)->ambientOcclusionOutParams
|
|
17
|
+
{
|
|
18
|
+
var outParams: ambientOcclusionOutParams;var ambientOcclusionColor: vec3f= vec3f(1.,1.,1.);
|
|
19
|
+
#ifdef AMBIENT
|
|
20
|
+
var ambientOcclusionColorMap: vec3f=ambientOcclusionColorMap_*vAmbientInfos.y;
|
|
21
|
+
#ifdef AMBIENTINGRAYSCALE
|
|
22
|
+
ambientOcclusionColorMap= vec3f(ambientOcclusionColorMap.r,ambientOcclusionColorMap.r,ambientOcclusionColorMap.r);
|
|
23
|
+
#endif
|
|
24
|
+
ambientOcclusionColor=mix(ambientOcclusionColor,ambientOcclusionColorMap,vAmbientInfos.z);
|
|
25
|
+
#if DEBUGMODE>0
|
|
26
|
+
outParams.ambientOcclusionColorMap=ambientOcclusionColorMap;
|
|
27
|
+
#endif
|
|
28
|
+
#endif
|
|
29
|
+
outParams.ambientOcclusionColor=ambientOcclusionColor;return outParams;}
|
|
30
|
+
`;
|
|
31
|
+
// Sideeffect
|
|
32
|
+
ShaderStore.IncludesShadersStoreWGSL[name] = shader;
|
|
33
|
+
/** @internal */
|
|
34
|
+
export const pbrBlockAmbientOcclusion = { name, shader };
|
|
35
|
+
//# sourceMappingURL=pbrBlockAmbientOcclusion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbrBlockAmbientOcclusion.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/pbrBlockAmbientOcclusion.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,0BAA0B,CAAC;AACxC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Bd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrBlockAmbientOcclusion\";\nconst shader = `struct ambientOcclusionOutParams\n{ambientOcclusionColor: vec3f,\n#if DEBUGMODE>0 && defined(AMBIENT)\nambientOcclusionColorMap: vec3f\n#endif\n};\n#define pbr_inline\nfn ambientOcclusionBlock(\n#ifdef AMBIENT\nambientOcclusionColorMap_: vec3f,\nvAmbientInfos: vec4f\n#endif\n)->ambientOcclusionOutParams\n{ \nvar outParams: ambientOcclusionOutParams;var ambientOcclusionColor: vec3f= vec3f(1.,1.,1.);\n#ifdef AMBIENT\nvar ambientOcclusionColorMap: vec3f=ambientOcclusionColorMap_*vAmbientInfos.y;\n#ifdef AMBIENTINGRAYSCALE\nambientOcclusionColorMap= vec3f(ambientOcclusionColorMap.r,ambientOcclusionColorMap.r,ambientOcclusionColorMap.r);\n#endif\nambientOcclusionColor=mix(ambientOcclusionColor,ambientOcclusionColorMap,vAmbientInfos.z);\n#if DEBUGMODE>0\noutParams.ambientOcclusionColorMap=ambientOcclusionColorMap;\n#endif\n#endif\noutParams.ambientOcclusionColor=ambientOcclusionColor;return outParams;}\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const pbrBlockAmbientOcclusion = { name, shader };\n"]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
|
+
const name = "pbrBlockAnisotropic";
|
|
4
|
+
const shader = `#ifdef ANISOTROPIC
|
|
5
|
+
struct anisotropicOutParams
|
|
6
|
+
{anisotropy: f32,
|
|
7
|
+
anisotropicTangent: vec3f,
|
|
8
|
+
anisotropicBitangent: vec3f,
|
|
9
|
+
anisotropicNormal: vec3f,
|
|
10
|
+
#if DEBUGMODE>0 && defined(ANISOTROPIC_TEXTURE)
|
|
11
|
+
anisotropyMapData: vec3f
|
|
12
|
+
#endif
|
|
13
|
+
};
|
|
14
|
+
#define pbr_inline
|
|
15
|
+
fn anisotropicBlock(
|
|
16
|
+
vAnisotropy: vec3f,
|
|
17
|
+
roughness: f32,
|
|
18
|
+
#ifdef ANISOTROPIC_TEXTURE
|
|
19
|
+
anisotropyMapData: vec3f,
|
|
20
|
+
#endif
|
|
21
|
+
TBN: mat3x3f,
|
|
22
|
+
normalW: vec3f,
|
|
23
|
+
viewDirectionW: vec3f
|
|
24
|
+
)->anisotropicOutParams
|
|
25
|
+
{
|
|
26
|
+
var outParams: anisotropicOutParams;var anisotropy: f32=vAnisotropy.b;var anisotropyDirection: vec3f= vec3f(vAnisotropy.xy,0.);
|
|
27
|
+
#ifdef ANISOTROPIC_TEXTURE
|
|
28
|
+
anisotropy*=anisotropyMapData.b;
|
|
29
|
+
#if DEBUGMODE>0
|
|
30
|
+
outParams.anisotropyMapData=anisotropyMapData;
|
|
31
|
+
#endif
|
|
32
|
+
anisotropyMapData.rg=anisotropyMapData.rg*2.0-1.0;
|
|
33
|
+
#ifdef ANISOTROPIC_LEGACY
|
|
34
|
+
anisotropyDirection.rg*=anisotropyMapData.rg;
|
|
35
|
+
#else
|
|
36
|
+
anisotropyDirection.xy= mat2x2f(anisotropyDirection.x,anisotropyDirection.y,-anisotropyDirection.y,anisotropyDirection.x)*normalize(anisotropyMapData.rg);
|
|
37
|
+
#endif
|
|
38
|
+
#endif
|
|
39
|
+
var anisoTBN: mat3x3f= mat3x3f(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));var anisotropicTangent: vec3f=normalize(anisoTBN*anisotropyDirection);var anisotropicBitangent: vec3f=normalize(cross(anisoTBN[2],anisotropicTangent));outParams.anisotropy=anisotropy;outParams.anisotropicTangent=anisotropicTangent;outParams.anisotropicBitangent=anisotropicBitangent;outParams.anisotropicNormal=getAnisotropicBentNormals(anisotropicTangent,anisotropicBitangent,normalW,viewDirectionW,anisotropy,roughness);return outParams;}
|
|
40
|
+
#endif
|
|
41
|
+
`;
|
|
42
|
+
// Sideeffect
|
|
43
|
+
ShaderStore.IncludesShadersStoreWGSL[name] = shader;
|
|
44
|
+
/** @internal */
|
|
45
|
+
export const pbrBlockAnisotropic = { name, shader };
|
|
46
|
+
//# sourceMappingURL=pbrBlockAnisotropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbrBlockAnisotropic.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/pbrBlockAnisotropic.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrBlockAnisotropic\";\nconst shader = `#ifdef ANISOTROPIC\nstruct anisotropicOutParams\n{anisotropy: f32,\nanisotropicTangent: vec3f,\nanisotropicBitangent: vec3f,\nanisotropicNormal: vec3f,\n#if DEBUGMODE>0 && defined(ANISOTROPIC_TEXTURE)\nanisotropyMapData: vec3f\n#endif\n};\n#define pbr_inline\nfn anisotropicBlock(\nvAnisotropy: vec3f,\nroughness: f32,\n#ifdef ANISOTROPIC_TEXTURE\nanisotropyMapData: vec3f,\n#endif\nTBN: mat3x3f,\nnormalW: vec3f,\nviewDirectionW: vec3f\n)->anisotropicOutParams\n{ \nvar outParams: anisotropicOutParams;var anisotropy: f32=vAnisotropy.b;var anisotropyDirection: vec3f= vec3f(vAnisotropy.xy,0.);\n#ifdef ANISOTROPIC_TEXTURE\nanisotropy*=anisotropyMapData.b;\n#if DEBUGMODE>0\noutParams.anisotropyMapData=anisotropyMapData;\n#endif\nanisotropyMapData.rg=anisotropyMapData.rg*2.0-1.0;\n#ifdef ANISOTROPIC_LEGACY\nanisotropyDirection.rg*=anisotropyMapData.rg;\n#else\nanisotropyDirection.xy= mat2x2f(anisotropyDirection.x,anisotropyDirection.y,-anisotropyDirection.y,anisotropyDirection.x)*normalize(anisotropyMapData.rg);\n#endif\n#endif\nvar anisoTBN: mat3x3f= mat3x3f(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));var anisotropicTangent: vec3f=normalize(anisoTBN*anisotropyDirection);var anisotropicBitangent: vec3f=normalize(cross(anisoTBN[2],anisotropicTangent));outParams.anisotropy=anisotropy;outParams.anisotropicTangent=anisotropicTangent;outParams.anisotropicBitangent=anisotropicBitangent;outParams.anisotropicNormal=getAnisotropicBentNormals(anisotropicTangent,anisotropicBitangent,normalW,viewDirectionW,anisotropy,roughness);return outParams;}\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const pbrBlockAnisotropic = { name, shader };\n"]}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
|
+
const name = "pbrBlockClearcoat";
|
|
4
|
+
const shader = `struct clearcoatOutParams
|
|
5
|
+
{specularEnvironmentR0: vec3f,
|
|
6
|
+
conservationFactor: f32,
|
|
7
|
+
clearCoatNormalW: vec3f,
|
|
8
|
+
clearCoatAARoughnessFactors: vec2f,
|
|
9
|
+
clearCoatIntensity: f32,
|
|
10
|
+
clearCoatRoughness: f32,
|
|
11
|
+
#ifdef REFLECTION
|
|
12
|
+
finalClearCoatRadianceScaled: vec3f,
|
|
13
|
+
#endif
|
|
14
|
+
#ifdef CLEARCOAT_TINT
|
|
15
|
+
absorption: vec3f,
|
|
16
|
+
clearCoatNdotVRefract: f32,
|
|
17
|
+
clearCoatColor: vec3f,
|
|
18
|
+
clearCoatThickness: f32,
|
|
19
|
+
#endif
|
|
20
|
+
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
|
|
21
|
+
energyConservationFactorClearCoat: vec3f,
|
|
22
|
+
#endif
|
|
23
|
+
#if DEBUGMODE>0
|
|
24
|
+
#ifdef CLEARCOAT_BUMP
|
|
25
|
+
TBNClearCoat: mat3x3f,
|
|
26
|
+
#endif
|
|
27
|
+
#ifdef CLEARCOAT_TEXTURE
|
|
28
|
+
clearCoatMapData: vec2f,
|
|
29
|
+
#endif
|
|
30
|
+
#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)
|
|
31
|
+
clearCoatTintMapData: vec4f,
|
|
32
|
+
#endif
|
|
33
|
+
#ifdef REFLECTION
|
|
34
|
+
environmentClearCoatRadiance: vec4f,
|
|
35
|
+
clearCoatEnvironmentReflectance: vec3f,
|
|
36
|
+
#endif
|
|
37
|
+
clearCoatNdotV: f32
|
|
38
|
+
#endif
|
|
39
|
+
};
|
|
40
|
+
#ifdef CLEARCOAT
|
|
41
|
+
#define pbr_inline
|
|
42
|
+
fn clearcoatBlock(
|
|
43
|
+
vPositionW: vec3f
|
|
44
|
+
,geometricNormalW: vec3f
|
|
45
|
+
,viewDirectionW: vec3f
|
|
46
|
+
,vClearCoatParams: vec2f
|
|
47
|
+
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
|
|
48
|
+
,clearCoatMapRoughnessData: vec4f
|
|
49
|
+
#endif
|
|
50
|
+
,specularEnvironmentR0: vec3f
|
|
51
|
+
#ifdef CLEARCOAT_TEXTURE
|
|
52
|
+
,clearCoatMapData: vec2f
|
|
53
|
+
#endif
|
|
54
|
+
#ifdef CLEARCOAT_TINT
|
|
55
|
+
,vClearCoatTintParams: vec4f
|
|
56
|
+
,clearCoatColorAtDistance: f32
|
|
57
|
+
,vClearCoatRefractionParams: vec4f
|
|
58
|
+
#ifdef CLEARCOAT_TINT_TEXTURE
|
|
59
|
+
,clearCoatTintMapData: vec4f
|
|
60
|
+
#endif
|
|
61
|
+
#endif
|
|
62
|
+
#ifdef CLEARCOAT_BUMP
|
|
63
|
+
,vClearCoatBumpInfos: vec2f
|
|
64
|
+
,clearCoatBumpMapData: vec4f
|
|
65
|
+
,vClearCoatBumpUV: vec2f
|
|
66
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
67
|
+
,vTBN: mat3x3f
|
|
68
|
+
#else
|
|
69
|
+
,vClearCoatTangentSpaceParams: vec2f
|
|
70
|
+
#endif
|
|
71
|
+
#ifdef OBJECTSPACE_NORMALMAP
|
|
72
|
+
,normalMatrix: mat4x4f
|
|
73
|
+
#endif
|
|
74
|
+
#endif
|
|
75
|
+
#if defined(FORCENORMALFORWARD) && defined(NORMAL)
|
|
76
|
+
,faceNormal: vec3f
|
|
77
|
+
#endif
|
|
78
|
+
#ifdef REFLECTION
|
|
79
|
+
,vReflectionMicrosurfaceInfos: vec3f
|
|
80
|
+
,vReflectionInfos: vec2f
|
|
81
|
+
,vReflectionColor: vec3f
|
|
82
|
+
,vLightingIntensity: vec4f
|
|
83
|
+
#ifdef REFLECTIONMAP_3D
|
|
84
|
+
,reflectionSampler: texture_cube<f32>
|
|
85
|
+
,reflectionSamplerSampler: sampler
|
|
86
|
+
#else
|
|
87
|
+
,reflectionSampler: texture_2d<f32>
|
|
88
|
+
,reflectionSamplerSampler: sampler
|
|
89
|
+
#endif
|
|
90
|
+
#ifndef LODBASEDMICROSFURACE
|
|
91
|
+
#ifdef REFLECTIONMAP_3D
|
|
92
|
+
,reflectionLowSampler: texture_cube<f32>
|
|
93
|
+
,reflectionLowSamplerSampler: sampler
|
|
94
|
+
,reflectionHighSampler: texture_cube<f32>
|
|
95
|
+
,reflectionHighSamplerSampler: sampler
|
|
96
|
+
#else
|
|
97
|
+
,reflectionLowSampler: texture_2d<f32>
|
|
98
|
+
,reflectionLowSamplerSampler: sampler
|
|
99
|
+
,reflectionHighSampler: texture_2d<f32>
|
|
100
|
+
,reflectionHighSamplerSampler: sampler
|
|
101
|
+
#endif
|
|
102
|
+
#endif
|
|
103
|
+
#ifdef REALTIME_FILTERING
|
|
104
|
+
,vReflectionFilteringInfo: vec2f
|
|
105
|
+
#endif
|
|
106
|
+
#endif
|
|
107
|
+
#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
|
|
108
|
+
#ifdef RADIANCEOCCLUSION
|
|
109
|
+
,ambientMonochrome: f32
|
|
110
|
+
#endif
|
|
111
|
+
#endif
|
|
112
|
+
#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)
|
|
113
|
+
,frontFacingMultiplier: f32
|
|
114
|
+
#endif
|
|
115
|
+
)->clearcoatOutParams
|
|
116
|
+
{var outParams: clearcoatOutParams;var clearCoatIntensity: f32=vClearCoatParams.x;var clearCoatRoughness: f32=vClearCoatParams.y;
|
|
117
|
+
#ifdef CLEARCOAT_TEXTURE
|
|
118
|
+
clearCoatIntensity*=clearCoatMapData.x;
|
|
119
|
+
#ifdef CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE
|
|
120
|
+
clearCoatRoughness*=clearCoatMapData.y;
|
|
121
|
+
#endif
|
|
122
|
+
#if DEBUGMODE>0
|
|
123
|
+
outParams.clearCoatMapData=clearCoatMapData;
|
|
124
|
+
#endif
|
|
125
|
+
#endif
|
|
126
|
+
#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)
|
|
127
|
+
clearCoatRoughness*=clearCoatMapRoughnessData.y;
|
|
128
|
+
#endif
|
|
129
|
+
outParams.clearCoatIntensity=clearCoatIntensity;outParams.clearCoatRoughness=clearCoatRoughness;
|
|
130
|
+
#ifdef CLEARCOAT_TINT
|
|
131
|
+
var clearCoatColor: vec3f=vClearCoatTintParams.rgb;var clearCoatThickness: f32=vClearCoatTintParams.a;
|
|
132
|
+
#ifdef CLEARCOAT_TINT_TEXTURE
|
|
133
|
+
#ifdef CLEARCOAT_TINT_GAMMATEXTURE
|
|
134
|
+
clearCoatColor*=toLinearSpace(clearCoatTintMapData.rgb);
|
|
135
|
+
#else
|
|
136
|
+
clearCoatColor*=clearCoatTintMapData.rgb;
|
|
137
|
+
#endif
|
|
138
|
+
clearCoatThickness*=clearCoatTintMapData.a;
|
|
139
|
+
#if DEBUGMODE>0
|
|
140
|
+
outParams.clearCoatTintMapData=clearCoatTintMapData;
|
|
141
|
+
#endif
|
|
142
|
+
#endif
|
|
143
|
+
outParams.clearCoatColor=computeColorAtDistanceInMedia(clearCoatColor,clearCoatColorAtDistance);outParams.clearCoatThickness=clearCoatThickness;
|
|
144
|
+
#endif
|
|
145
|
+
#ifdef CLEARCOAT_REMAP_F0
|
|
146
|
+
var specularEnvironmentR0Updated: vec3f=getR0RemappedForClearCoat(specularEnvironmentR0);
|
|
147
|
+
#else
|
|
148
|
+
var specularEnvironmentR0Updated: vec3f=specularEnvironmentR0;
|
|
149
|
+
#endif
|
|
150
|
+
outParams.specularEnvironmentR0=mix(specularEnvironmentR0,specularEnvironmentR0Updated,clearCoatIntensity);var clearCoatNormalW: vec3f=geometricNormalW;
|
|
151
|
+
#ifdef CLEARCOAT_BUMP
|
|
152
|
+
#ifdef NORMALXYSCALE
|
|
153
|
+
var clearCoatNormalScale: f32=1.0;
|
|
154
|
+
#else
|
|
155
|
+
var clearCoatNormalScale: f32=vClearCoatBumpInfos.y;
|
|
156
|
+
#endif
|
|
157
|
+
#if defined(TANGENT) && defined(NORMAL)
|
|
158
|
+
var TBNClearCoat: mat3x3f=vTBN;
|
|
159
|
+
#else
|
|
160
|
+
var TBNClearCoatUV: vec2f=vClearCoatBumpUV*frontFacingMultiplier;var TBNClearCoat: mat3x3f=cotangent_frame(clearCoatNormalW*clearCoatNormalScale,vPositionW,TBNClearCoatUV,vClearCoatTangentSpaceParams);
|
|
161
|
+
#endif
|
|
162
|
+
#if DEBUGMODE>0
|
|
163
|
+
outParams.TBNClearCoat=TBNClearCoat;
|
|
164
|
+
#endif
|
|
165
|
+
#ifdef OBJECTSPACE_NORMALMAP
|
|
166
|
+
clearCoatNormalW=normalize(clearCoatBumpMapData.xyz *2.0-1.0);clearCoatNormalW=normalize( mat3x3f(normalMatrix)*clearCoatNormalW);
|
|
167
|
+
#else
|
|
168
|
+
clearCoatNormalW=perturbNormal(TBNClearCoat,clearCoatBumpMapData.xyz,vClearCoatBumpInfos.y);
|
|
169
|
+
#endif
|
|
170
|
+
#endif
|
|
171
|
+
#if defined(FORCENORMALFORWARD) && defined(NORMAL)
|
|
172
|
+
clearCoatNormalW*=sign(dot(clearCoatNormalW,faceNormal));
|
|
173
|
+
#endif
|
|
174
|
+
#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)
|
|
175
|
+
clearCoatNormalW=clearCoatNormalW*frontFacingMultiplier;
|
|
176
|
+
#endif
|
|
177
|
+
outParams.clearCoatNormalW=clearCoatNormalW;outParams.clearCoatAARoughnessFactors=getAARoughnessFactors(clearCoatNormalW.xyz);var clearCoatNdotVUnclamped: f32=dot(clearCoatNormalW,viewDirectionW);var clearCoatNdotV: f32=absEps(clearCoatNdotVUnclamped);
|
|
178
|
+
#if DEBUGMODE>0
|
|
179
|
+
outParams.clearCoatNdotV=clearCoatNdotV;
|
|
180
|
+
#endif
|
|
181
|
+
#ifdef CLEARCOAT_TINT
|
|
182
|
+
var clearCoatVRefract: vec3f=refract(-viewDirectionW,clearCoatNormalW,vClearCoatRefractionParams.y);outParams.clearCoatNdotVRefract=absEps(dot(clearCoatNormalW,clearCoatVRefract));
|
|
183
|
+
#endif
|
|
184
|
+
#if defined(ENVIRONMENTBRDF) && (!defined(REFLECTIONMAP_SKYBOX) || defined(MS_BRDF_ENERGY_CONSERVATION))
|
|
185
|
+
var environmentClearCoatBrdf: vec3f=getBRDFLookup(clearCoatNdotV,clearCoatRoughness);
|
|
186
|
+
#endif
|
|
187
|
+
#if defined(REFLECTION)
|
|
188
|
+
var clearCoatAlphaG: f32=convertRoughnessToAverageSlope(clearCoatRoughness);
|
|
189
|
+
#ifdef SPECULARAA
|
|
190
|
+
clearCoatAlphaG+=outParams.clearCoatAARoughnessFactors.y;
|
|
191
|
+
#endif
|
|
192
|
+
var environmentClearCoatRadiance: vec4f= vec4f(0.,0.,0.,0.);var clearCoatReflectionVector: vec3f=computeReflectionCoords( vec4f(vPositionW,1.0),clearCoatNormalW);
|
|
193
|
+
#ifdef REFLECTIONMAP_OPPOSITEZ
|
|
194
|
+
clearCoatReflectionVector.z*=-1.0;
|
|
195
|
+
#endif
|
|
196
|
+
#ifdef REFLECTIONMAP_3D
|
|
197
|
+
var clearCoatReflectionCoords: vec3f=clearCoatReflectionVector;
|
|
198
|
+
#else
|
|
199
|
+
var clearCoatReflectionCoords: vec2f=clearCoatReflectionVector.xy;
|
|
200
|
+
#ifdef REFLECTIONMAP_PROJECTION
|
|
201
|
+
clearCoatReflectionCoords/=clearCoatReflectionVector.z;
|
|
202
|
+
#endif
|
|
203
|
+
clearCoatReflectionCoords.y=1.0-clearCoatReflectionCoords.y;
|
|
204
|
+
#endif
|
|
205
|
+
environmentClearCoatRadiance=sampleReflectionTexture(
|
|
206
|
+
clearCoatAlphaG
|
|
207
|
+
,vReflectionMicrosurfaceInfos
|
|
208
|
+
,vReflectionInfos
|
|
209
|
+
,vReflectionColor
|
|
210
|
+
#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
|
|
211
|
+
,clearCoatNdotVUnclamped
|
|
212
|
+
#endif
|
|
213
|
+
#ifdef LINEARSPECULARREFLECTION
|
|
214
|
+
,clearCoatRoughness
|
|
215
|
+
#endif
|
|
216
|
+
,reflectionSampler
|
|
217
|
+
,reflectionSamplerSampler
|
|
218
|
+
,clearCoatReflectionCoords
|
|
219
|
+
#ifndef LODBASEDMICROSFURACE
|
|
220
|
+
,reflectionLowSampler
|
|
221
|
+
,reflectionLowSamplerSampler
|
|
222
|
+
,reflectionHighSampler
|
|
223
|
+
,reflectionHighSamplerSampler
|
|
224
|
+
#endif
|
|
225
|
+
#ifdef REALTIME_FILTERING
|
|
226
|
+
,vReflectionFilteringInfo
|
|
227
|
+
#endif
|
|
228
|
+
);
|
|
229
|
+
#if DEBUGMODE>0
|
|
230
|
+
outParams.environmentClearCoatRadiance=environmentClearCoatRadiance;
|
|
231
|
+
#endif
|
|
232
|
+
#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)
|
|
233
|
+
var clearCoatEnvironmentReflectance: vec3f=getReflectanceFromBRDFLookup(vec3f(vClearCoatRefractionParams.x),environmentClearCoatBrdf);
|
|
234
|
+
#ifdef HORIZONOCCLUSION
|
|
235
|
+
#ifdef BUMP
|
|
236
|
+
#ifdef REFLECTIONMAP_3D
|
|
237
|
+
var clearCoatEho: f32=environmentHorizonOcclusion(-viewDirectionW,clearCoatNormalW,geometricNormalW);clearCoatEnvironmentReflectance*=clearCoatEho;
|
|
238
|
+
#endif
|
|
239
|
+
#endif
|
|
240
|
+
#endif
|
|
241
|
+
#else
|
|
242
|
+
var clearCoatEnvironmentReflectance: vec3f=getReflectanceFromAnalyticalBRDFLookup_Jones(clearCoatNdotV, vec3f(1.), vec3f(1.),sqrt(1.-clearCoatRoughness));
|
|
243
|
+
#endif
|
|
244
|
+
clearCoatEnvironmentReflectance*=clearCoatIntensity;
|
|
245
|
+
#if DEBUGMODE>0
|
|
246
|
+
outParams.clearCoatEnvironmentReflectance=clearCoatEnvironmentReflectance;
|
|
247
|
+
#endif
|
|
248
|
+
outParams.finalClearCoatRadianceScaled=
|
|
249
|
+
environmentClearCoatRadiance.rgb *
|
|
250
|
+
clearCoatEnvironmentReflectance *
|
|
251
|
+
vLightingIntensity.z;
|
|
252
|
+
#endif
|
|
253
|
+
#if defined(CLEARCOAT_TINT)
|
|
254
|
+
outParams.absorption=computeClearCoatAbsorption(outParams.clearCoatNdotVRefract,outParams.clearCoatNdotVRefract,outParams.clearCoatColor,clearCoatThickness,clearCoatIntensity);
|
|
255
|
+
#endif
|
|
256
|
+
var fresnelIBLClearCoat: f32=fresnelSchlickGGX(clearCoatNdotV,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnelIBLClearCoat*=clearCoatIntensity;outParams.conservationFactor=(1.-fresnelIBLClearCoat);
|
|
257
|
+
#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)
|
|
258
|
+
outParams.energyConservationFactorClearCoat=getEnergyConservationFactor(outParams.specularEnvironmentR0,environmentClearCoatBrdf);
|
|
259
|
+
#endif
|
|
260
|
+
return outParams;}
|
|
261
|
+
#endif
|
|
262
|
+
`;
|
|
263
|
+
// Sideeffect
|
|
264
|
+
ShaderStore.IncludesShadersStoreWGSL[name] = shader;
|
|
265
|
+
/** @internal */
|
|
266
|
+
export const pbrBlockClearcoat = { name, shader };
|
|
267
|
+
//# sourceMappingURL=pbrBlockClearcoat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbrBlockClearcoat.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/pbrBlockClearcoat.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,mBAAmB,CAAC;AACjC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkQd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrBlockClearcoat\";\nconst shader = `struct clearcoatOutParams\n{specularEnvironmentR0: vec3f,\nconservationFactor: f32,\nclearCoatNormalW: vec3f,\nclearCoatAARoughnessFactors: vec2f,\nclearCoatIntensity: f32,\nclearCoatRoughness: f32,\n#ifdef REFLECTION\nfinalClearCoatRadianceScaled: vec3f,\n#endif\n#ifdef CLEARCOAT_TINT\nabsorption: vec3f,\nclearCoatNdotVRefract: f32,\nclearCoatColor: vec3f,\nclearCoatThickness: f32,\n#endif\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\nenergyConservationFactorClearCoat: vec3f,\n#endif\n#if DEBUGMODE>0\n#ifdef CLEARCOAT_BUMP\nTBNClearCoat: mat3x3f,\n#endif\n#ifdef CLEARCOAT_TEXTURE\nclearCoatMapData: vec2f,\n#endif\n#if defined(CLEARCOAT_TINT) && defined(CLEARCOAT_TINT_TEXTURE)\nclearCoatTintMapData: vec4f,\n#endif\n#ifdef REFLECTION\nenvironmentClearCoatRadiance: vec4f,\nclearCoatEnvironmentReflectance: vec3f,\n#endif\nclearCoatNdotV: f32\n#endif\n};\n#ifdef CLEARCOAT\n#define pbr_inline\nfn clearcoatBlock(\nvPositionW: vec3f\n,geometricNormalW: vec3f\n,viewDirectionW: vec3f\n,vClearCoatParams: vec2f\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\n,clearCoatMapRoughnessData: vec4f\n#endif\n,specularEnvironmentR0: vec3f\n#ifdef CLEARCOAT_TEXTURE\n,clearCoatMapData: vec2f\n#endif\n#ifdef CLEARCOAT_TINT\n,vClearCoatTintParams: vec4f\n,clearCoatColorAtDistance: f32\n,vClearCoatRefractionParams: vec4f\n#ifdef CLEARCOAT_TINT_TEXTURE\n,clearCoatTintMapData: vec4f\n#endif\n#endif\n#ifdef CLEARCOAT_BUMP\n,vClearCoatBumpInfos: vec2f\n,clearCoatBumpMapData: vec4f\n,vClearCoatBumpUV: vec2f\n#if defined(TANGENT) && defined(NORMAL)\n,vTBN: mat3x3f\n#else\n,vClearCoatTangentSpaceParams: vec2f\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\n,normalMatrix: mat4x4f\n#endif\n#endif\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\n,faceNormal: vec3f\n#endif\n#ifdef REFLECTION\n,vReflectionMicrosurfaceInfos: vec3f\n,vReflectionInfos: vec2f\n,vReflectionColor: vec3f\n,vLightingIntensity: vec4f\n#ifdef REFLECTIONMAP_3D\n,reflectionSampler: texture_cube<f32>\n,reflectionSamplerSampler: sampler\n#else\n,reflectionSampler: texture_2d<f32>\n,reflectionSamplerSampler: sampler\n#endif\n#ifndef LODBASEDMICROSFURACE\n#ifdef REFLECTIONMAP_3D\n,reflectionLowSampler: texture_cube<f32>\n,reflectionLowSamplerSampler: sampler \n,reflectionHighSampler: texture_cube<f32>\n,reflectionHighSamplerSampler: sampler \n#else\n,reflectionLowSampler: texture_2d<f32>\n,reflectionLowSamplerSampler: sampler \n,reflectionHighSampler: texture_2d<f32>\n,reflectionHighSamplerSampler: sampler \n#endif\n#endif\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo: vec2f\n#endif\n#endif\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\n#ifdef RADIANCEOCCLUSION\n,ambientMonochrome: f32\n#endif\n#endif\n#if defined(CLEARCOAT_BUMP) || defined(TWOSIDEDLIGHTING)\n,frontFacingMultiplier: f32\n#endif \n)->clearcoatOutParams\n{var outParams: clearcoatOutParams;var clearCoatIntensity: f32=vClearCoatParams.x;var clearCoatRoughness: f32=vClearCoatParams.y;\n#ifdef CLEARCOAT_TEXTURE\nclearCoatIntensity*=clearCoatMapData.x;\n#ifdef CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE\nclearCoatRoughness*=clearCoatMapData.y;\n#endif\n#if DEBUGMODE>0\noutParams.clearCoatMapData=clearCoatMapData;\n#endif\n#endif\n#if defined(CLEARCOAT_TEXTURE_ROUGHNESS) && !defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\nclearCoatRoughness*=clearCoatMapRoughnessData.y;\n#endif\noutParams.clearCoatIntensity=clearCoatIntensity;outParams.clearCoatRoughness=clearCoatRoughness;\n#ifdef CLEARCOAT_TINT\nvar clearCoatColor: vec3f=vClearCoatTintParams.rgb;var clearCoatThickness: f32=vClearCoatTintParams.a;\n#ifdef CLEARCOAT_TINT_TEXTURE\n#ifdef CLEARCOAT_TINT_GAMMATEXTURE\nclearCoatColor*=toLinearSpace(clearCoatTintMapData.rgb);\n#else\nclearCoatColor*=clearCoatTintMapData.rgb;\n#endif\nclearCoatThickness*=clearCoatTintMapData.a;\n#if DEBUGMODE>0\noutParams.clearCoatTintMapData=clearCoatTintMapData;\n#endif\n#endif\noutParams.clearCoatColor=computeColorAtDistanceInMedia(clearCoatColor,clearCoatColorAtDistance);outParams.clearCoatThickness=clearCoatThickness;\n#endif\n#ifdef CLEARCOAT_REMAP_F0\nvar specularEnvironmentR0Updated: vec3f=getR0RemappedForClearCoat(specularEnvironmentR0);\n#else\nvar specularEnvironmentR0Updated: vec3f=specularEnvironmentR0;\n#endif\noutParams.specularEnvironmentR0=mix(specularEnvironmentR0,specularEnvironmentR0Updated,clearCoatIntensity);var clearCoatNormalW: vec3f=geometricNormalW;\n#ifdef CLEARCOAT_BUMP\n#ifdef NORMALXYSCALE\nvar clearCoatNormalScale: f32=1.0;\n#else\nvar clearCoatNormalScale: f32=vClearCoatBumpInfos.y;\n#endif\n#if defined(TANGENT) && defined(NORMAL)\nvar TBNClearCoat: mat3x3f=vTBN;\n#else\nvar TBNClearCoatUV: vec2f=vClearCoatBumpUV*frontFacingMultiplier;var TBNClearCoat: mat3x3f=cotangent_frame(clearCoatNormalW*clearCoatNormalScale,vPositionW,TBNClearCoatUV,vClearCoatTangentSpaceParams);\n#endif\n#if DEBUGMODE>0\noutParams.TBNClearCoat=TBNClearCoat;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nclearCoatNormalW=normalize(clearCoatBumpMapData.xyz *2.0-1.0);clearCoatNormalW=normalize( mat3x3f(normalMatrix)*clearCoatNormalW);\n#else\nclearCoatNormalW=perturbNormal(TBNClearCoat,clearCoatBumpMapData.xyz,vClearCoatBumpInfos.y);\n#endif\n#endif\n#if defined(FORCENORMALFORWARD) && defined(NORMAL)\nclearCoatNormalW*=sign(dot(clearCoatNormalW,faceNormal));\n#endif\n#if defined(TWOSIDEDLIGHTING) && defined(NORMAL)\nclearCoatNormalW=clearCoatNormalW*frontFacingMultiplier;\n#endif\noutParams.clearCoatNormalW=clearCoatNormalW;outParams.clearCoatAARoughnessFactors=getAARoughnessFactors(clearCoatNormalW.xyz);var clearCoatNdotVUnclamped: f32=dot(clearCoatNormalW,viewDirectionW);var clearCoatNdotV: f32=absEps(clearCoatNdotVUnclamped);\n#if DEBUGMODE>0\noutParams.clearCoatNdotV=clearCoatNdotV;\n#endif\n#ifdef CLEARCOAT_TINT\nvar clearCoatVRefract: vec3f=refract(-viewDirectionW,clearCoatNormalW,vClearCoatRefractionParams.y);outParams.clearCoatNdotVRefract=absEps(dot(clearCoatNormalW,clearCoatVRefract));\n#endif\n#if defined(ENVIRONMENTBRDF) && (!defined(REFLECTIONMAP_SKYBOX) || defined(MS_BRDF_ENERGY_CONSERVATION))\nvar environmentClearCoatBrdf: vec3f=getBRDFLookup(clearCoatNdotV,clearCoatRoughness);\n#endif\n#if defined(REFLECTION)\nvar clearCoatAlphaG: f32=convertRoughnessToAverageSlope(clearCoatRoughness);\n#ifdef SPECULARAA\nclearCoatAlphaG+=outParams.clearCoatAARoughnessFactors.y;\n#endif\nvar environmentClearCoatRadiance: vec4f= vec4f(0.,0.,0.,0.);var clearCoatReflectionVector: vec3f=computeReflectionCoords( vec4f(vPositionW,1.0),clearCoatNormalW);\n#ifdef REFLECTIONMAP_OPPOSITEZ\nclearCoatReflectionVector.z*=-1.0;\n#endif\n#ifdef REFLECTIONMAP_3D\nvar clearCoatReflectionCoords: vec3f=clearCoatReflectionVector;\n#else\nvar clearCoatReflectionCoords: vec2f=clearCoatReflectionVector.xy;\n#ifdef REFLECTIONMAP_PROJECTION\nclearCoatReflectionCoords/=clearCoatReflectionVector.z;\n#endif\nclearCoatReflectionCoords.y=1.0-clearCoatReflectionCoords.y;\n#endif\nenvironmentClearCoatRadiance=sampleReflectionTexture(\nclearCoatAlphaG\n,vReflectionMicrosurfaceInfos\n,vReflectionInfos\n,vReflectionColor\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\n,clearCoatNdotVUnclamped\n#endif\n#ifdef LINEARSPECULARREFLECTION\n,clearCoatRoughness\n#endif\n,reflectionSampler\n,reflectionSamplerSampler\n,clearCoatReflectionCoords\n#ifndef LODBASEDMICROSFURACE\n,reflectionLowSampler\n,reflectionLowSamplerSampler\n,reflectionHighSampler\n,reflectionHighSamplerSampler\n#endif\n#ifdef REALTIME_FILTERING\n,vReflectionFilteringInfo\n#endif \n);\n#if DEBUGMODE>0\noutParams.environmentClearCoatRadiance=environmentClearCoatRadiance;\n#endif\n#if defined(ENVIRONMENTBRDF) && !defined(REFLECTIONMAP_SKYBOX)\nvar clearCoatEnvironmentReflectance: vec3f=getReflectanceFromBRDFLookup(vec3f(vClearCoatRefractionParams.x),environmentClearCoatBrdf);\n#ifdef HORIZONOCCLUSION\n#ifdef BUMP\n#ifdef REFLECTIONMAP_3D\nvar clearCoatEho: f32=environmentHorizonOcclusion(-viewDirectionW,clearCoatNormalW,geometricNormalW);clearCoatEnvironmentReflectance*=clearCoatEho;\n#endif\n#endif\n#endif\n#else\nvar clearCoatEnvironmentReflectance: vec3f=getReflectanceFromAnalyticalBRDFLookup_Jones(clearCoatNdotV, vec3f(1.), vec3f(1.),sqrt(1.-clearCoatRoughness));\n#endif\nclearCoatEnvironmentReflectance*=clearCoatIntensity;\n#if DEBUGMODE>0\noutParams.clearCoatEnvironmentReflectance=clearCoatEnvironmentReflectance;\n#endif\noutParams.finalClearCoatRadianceScaled=\nenvironmentClearCoatRadiance.rgb *\nclearCoatEnvironmentReflectance *\nvLightingIntensity.z;\n#endif\n#if defined(CLEARCOAT_TINT)\noutParams.absorption=computeClearCoatAbsorption(outParams.clearCoatNdotVRefract,outParams.clearCoatNdotVRefract,outParams.clearCoatColor,clearCoatThickness,clearCoatIntensity);\n#endif\nvar fresnelIBLClearCoat: f32=fresnelSchlickGGX(clearCoatNdotV,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);fresnelIBLClearCoat*=clearCoatIntensity;outParams.conservationFactor=(1.-fresnelIBLClearCoat);\n#if defined(ENVIRONMENTBRDF) && defined(MS_BRDF_ENERGY_CONSERVATION)\noutParams.energyConservationFactorClearCoat=getEnergyConservationFactor(outParams.specularEnvironmentR0,environmentClearCoatBrdf);\n#endif\nreturn outParams;}\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const pbrBlockClearcoat = { name, shader };\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
|
+
const name = "pbrBlockDirectLighting";
|
|
4
|
+
const shader = `var diffuseBase: vec3f=vec3f(0.,0.,0.);
|
|
5
|
+
#ifdef SPECULARTERM
|
|
6
|
+
var specularBase: vec3f=vec3f(0.,0.,0.);
|
|
7
|
+
#endif
|
|
8
|
+
#ifdef CLEARCOAT
|
|
9
|
+
var clearCoatBase: vec3f=vec3f(0.,0.,0.);
|
|
10
|
+
#endif
|
|
11
|
+
#ifdef SHEEN
|
|
12
|
+
var sheenBase: vec3f=vec3f(0.,0.,0.);
|
|
13
|
+
#endif
|
|
14
|
+
var preInfo: preLightingInfo;var info: lightingInfo;var shadow: f32=1.;
|
|
15
|
+
var aggShadow: f32=0.;var numLights: f32=0.;
|
|
16
|
+
#if defined(CLEARCOAT) && defined(CLEARCOAT_TINT)
|
|
17
|
+
var absorption: vec3f=vec3f(0.);
|
|
18
|
+
#endif
|
|
19
|
+
`;
|
|
20
|
+
// Sideeffect
|
|
21
|
+
ShaderStore.IncludesShadersStoreWGSL[name] = shader;
|
|
22
|
+
/** @internal */
|
|
23
|
+
export const pbrBlockDirectLighting = { name, shader };
|
|
24
|
+
//# sourceMappingURL=pbrBlockDirectLighting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbrBlockDirectLighting.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/pbrBlockDirectLighting.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,wBAAwB,CAAC;AACtC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;CAed,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrBlockDirectLighting\";\nconst shader = `var diffuseBase: vec3f=vec3f(0.,0.,0.);\n#ifdef SPECULARTERM\nvar specularBase: vec3f=vec3f(0.,0.,0.);\n#endif\n#ifdef CLEARCOAT\nvar clearCoatBase: vec3f=vec3f(0.,0.,0.);\n#endif\n#ifdef SHEEN\nvar sheenBase: vec3f=vec3f(0.,0.,0.);\n#endif\nvar preInfo: preLightingInfo;var info: lightingInfo;var shadow: f32=1.; \nvar aggShadow: f32=0.;var numLights: f32=0.;\n#if defined(CLEARCOAT) && defined(CLEARCOAT_TINT)\nvar absorption: vec3f=vec3f(0.);\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const pbrBlockDirectLighting = { name, shader };\n"]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Do not edit.
|
|
2
|
+
import { ShaderStore } from "../../Engines/shaderStore.js";
|
|
3
|
+
const name = "pbrBlockFinalColorComposition";
|
|
4
|
+
const shader = `var finalColor: vec4f= vec4f(
|
|
5
|
+
#ifndef UNLIT
|
|
6
|
+
#ifdef REFLECTION
|
|
7
|
+
finalIrradiance +
|
|
8
|
+
#endif
|
|
9
|
+
#ifdef SPECULARTERM
|
|
10
|
+
finalSpecularScaled +
|
|
11
|
+
#endif
|
|
12
|
+
#ifdef SHEEN
|
|
13
|
+
finalSheenScaled +
|
|
14
|
+
#endif
|
|
15
|
+
#ifdef CLEARCOAT
|
|
16
|
+
finalClearCoatScaled +
|
|
17
|
+
#endif
|
|
18
|
+
#ifdef REFLECTION
|
|
19
|
+
finalRadianceScaled +
|
|
20
|
+
#if defined(SHEEN) && defined(ENVIRONMENTBRDF)
|
|
21
|
+
sheenOut.finalSheenRadianceScaled +
|
|
22
|
+
#endif
|
|
23
|
+
#ifdef CLEARCOAT
|
|
24
|
+
clearcoatOut.finalClearCoatRadianceScaled +
|
|
25
|
+
#endif
|
|
26
|
+
#endif
|
|
27
|
+
#ifdef SS_REFRACTION
|
|
28
|
+
subSurfaceOut.finalRefraction +
|
|
29
|
+
#endif
|
|
30
|
+
#endif
|
|
31
|
+
finalAmbient +
|
|
32
|
+
finalDiffuse,
|
|
33
|
+
alpha);
|
|
34
|
+
#ifdef LIGHTMAP
|
|
35
|
+
#ifndef LIGHTMAPEXCLUDED
|
|
36
|
+
#ifdef USELIGHTMAPASSHADOWMAP
|
|
37
|
+
finalColor.rgb*=lightmapColor.rgb;
|
|
38
|
+
#else
|
|
39
|
+
finalColor.rgb+=lightmapColor.rgb;
|
|
40
|
+
#endif
|
|
41
|
+
#endif
|
|
42
|
+
#endif
|
|
43
|
+
finalColor=vec4f(finalColor.rgb+finalEmissive,finalColor.a);
|
|
44
|
+
#define CUSTOM_FRAGMENT_BEFORE_FOG
|
|
45
|
+
finalColor=max(finalColor,vec4f(0.0));
|
|
46
|
+
`;
|
|
47
|
+
// Sideeffect
|
|
48
|
+
ShaderStore.IncludesShadersStoreWGSL[name] = shader;
|
|
49
|
+
/** @internal */
|
|
50
|
+
export const pbrBlockFinalColorComposition = { name, shader };
|
|
51
|
+
//# sourceMappingURL=pbrBlockFinalColorComposition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbrBlockFinalColorComposition.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/pbrBlockFinalColorComposition.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,+BAA+B,CAAC;AAC7C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0Cd,CAAC;AACF,aAAa;AACb,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,gBAAgB;AAChB,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"pbrBlockFinalColorComposition\";\nconst shader = `var finalColor: vec4f= vec4f(\n#ifndef UNLIT\n#ifdef REFLECTION\nfinalIrradiance +\n#endif\n#ifdef SPECULARTERM\nfinalSpecularScaled +\n#endif\n#ifdef SHEEN\nfinalSheenScaled +\n#endif\n#ifdef CLEARCOAT\nfinalClearCoatScaled +\n#endif\n#ifdef REFLECTION\nfinalRadianceScaled +\n#if defined(SHEEN) && defined(ENVIRONMENTBRDF)\nsheenOut.finalSheenRadianceScaled +\n#endif\n#ifdef CLEARCOAT\nclearcoatOut.finalClearCoatRadianceScaled +\n#endif\n#endif\n#ifdef SS_REFRACTION\nsubSurfaceOut.finalRefraction +\n#endif\n#endif\nfinalAmbient +\nfinalDiffuse,\nalpha);\n#ifdef LIGHTMAP\n#ifndef LIGHTMAPEXCLUDED\n#ifdef USELIGHTMAPASSHADOWMAP\nfinalColor.rgb*=lightmapColor.rgb;\n#else\nfinalColor.rgb+=lightmapColor.rgb;\n#endif\n#endif\n#endif\nfinalColor=vec4f(finalColor.rgb+finalEmissive,finalColor.a);\n#define CUSTOM_FRAGMENT_BEFORE_FOG\nfinalColor=max(finalColor,vec4f(0.0));\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const pbrBlockFinalColorComposition = { name, shader };\n"]}
|