@onerjs/core 8.26.2 → 8.26.4

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 (130) hide show
  1. package/Shaders/ShadersInclude/openpbrBaseLayerData.d.ts +5 -0
  2. package/Shaders/ShadersInclude/openpbrBaseLayerData.js +127 -0
  3. package/Shaders/ShadersInclude/openpbrBaseLayerData.js.map +1 -0
  4. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.d.ts +5 -0
  5. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js +35 -0
  6. package/Shaders/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +1 -0
  7. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.d.ts +5 -0
  8. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.js +25 -0
  9. package/Shaders/ShadersInclude/openpbrBlockNormalFinal.js.map +1 -0
  10. package/Shaders/ShadersInclude/openpbrCoatLayerData.d.ts +5 -0
  11. package/Shaders/ShadersInclude/openpbrCoatLayerData.js +59 -0
  12. package/Shaders/ShadersInclude/openpbrCoatLayerData.js.map +1 -0
  13. package/Shaders/ShadersInclude/openpbrConductorReflectance.d.ts +5 -0
  14. package/Shaders/ShadersInclude/openpbrConductorReflectance.js +19 -0
  15. package/Shaders/ShadersInclude/openpbrConductorReflectance.js.map +1 -0
  16. package/Shaders/ShadersInclude/openpbrDielectricReflectance.d.ts +5 -0
  17. package/Shaders/ShadersInclude/openpbrDielectricReflectance.js +30 -0
  18. package/Shaders/ShadersInclude/openpbrDielectricReflectance.js.map +1 -0
  19. package/Shaders/ShadersInclude/openpbrDirectLighting.d.ts +5 -0
  20. package/Shaders/ShadersInclude/openpbrDirectLighting.js +69 -0
  21. package/Shaders/ShadersInclude/openpbrDirectLighting.js.map +1 -0
  22. package/Shaders/ShadersInclude/openpbrDirectLightingInit.d.ts +5 -0
  23. package/Shaders/ShadersInclude/openpbrDirectLightingInit.js +80 -0
  24. package/Shaders/ShadersInclude/openpbrDirectLightingInit.js.map +1 -0
  25. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.d.ts +5 -0
  26. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.js +129 -0
  27. package/Shaders/ShadersInclude/openpbrDirectLightingShadow.js.map +1 -0
  28. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.d.ts +5 -0
  29. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +106 -0
  30. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -0
  31. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.d.ts +6 -0
  32. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js +115 -0
  33. package/Shaders/ShadersInclude/openpbrFragmentDeclaration.js.map +1 -0
  34. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +6 -0
  35. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js +72 -0
  36. package/Shaders/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -0
  37. package/Shaders/ShadersInclude/openpbrGeometryInfo.d.ts +5 -0
  38. package/Shaders/ShadersInclude/openpbrGeometryInfo.js +46 -0
  39. package/Shaders/ShadersInclude/openpbrGeometryInfo.js.map +1 -0
  40. package/Shaders/ShadersInclude/openpbrIblFunctions.d.ts +5 -0
  41. package/Shaders/ShadersInclude/openpbrIblFunctions.js +221 -0
  42. package/Shaders/ShadersInclude/openpbrIblFunctions.js.map +1 -0
  43. package/Shaders/ShadersInclude/openpbrNormalMapFragment.d.ts +5 -0
  44. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js +64 -0
  45. package/Shaders/ShadersInclude/openpbrNormalMapFragment.js.map +1 -0
  46. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.d.ts +6 -0
  47. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.js +45 -0
  48. package/Shaders/ShadersInclude/openpbrNormalMapFragmentFunctions.js.map +1 -0
  49. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.d.ts +5 -0
  50. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js +72 -0
  51. package/Shaders/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js.map +1 -0
  52. package/Shaders/ShadersInclude/openpbrNormalMapVertex.d.ts +5 -0
  53. package/Shaders/ShadersInclude/openpbrNormalMapVertex.js +16 -0
  54. package/Shaders/ShadersInclude/openpbrNormalMapVertex.js.map +1 -0
  55. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.d.ts +5 -0
  56. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.js +16 -0
  57. package/Shaders/ShadersInclude/openpbrNormalMapVertexDeclaration.js.map +1 -0
  58. package/Shaders/ShadersInclude/openpbrUboDeclaration.d.ts +7 -0
  59. package/Shaders/ShadersInclude/openpbrUboDeclaration.js +18 -0
  60. package/Shaders/ShadersInclude/openpbrUboDeclaration.js.map +1 -0
  61. package/Shaders/ShadersInclude/openpbrVertexDeclaration.d.ts +6 -0
  62. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js +103 -0
  63. package/Shaders/ShadersInclude/openpbrVertexDeclaration.js.map +1 -0
  64. package/Shaders/openpbr.fragment.d.ts +54 -0
  65. package/Shaders/openpbr.fragment.js +206 -0
  66. package/Shaders/openpbr.fragment.js.map +1 -0
  67. package/Shaders/openpbr.vertex.d.ts +39 -0
  68. package/Shaders/openpbr.vertex.js +238 -0
  69. package/Shaders/openpbr.vertex.js.map +1 -0
  70. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.d.ts +5 -0
  71. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js +126 -0
  72. package/ShadersWGSL/ShadersInclude/openpbrBaseLayerData.js.map +1 -0
  73. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.d.ts +5 -0
  74. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js +36 -0
  75. package/ShadersWGSL/ShadersInclude/openpbrBlockAmbientOcclusion.js.map +1 -0
  76. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.d.ts +5 -0
  77. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.js +25 -0
  78. package/ShadersWGSL/ShadersInclude/openpbrBlockNormalFinal.js.map +1 -0
  79. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.d.ts +5 -0
  80. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js +59 -0
  81. package/ShadersWGSL/ShadersInclude/openpbrCoatLayerData.js.map +1 -0
  82. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.d.ts +5 -0
  83. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.js +19 -0
  84. package/ShadersWGSL/ShadersInclude/openpbrConductorReflectance.js.map +1 -0
  85. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.d.ts +5 -0
  86. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.js +33 -0
  87. package/ShadersWGSL/ShadersInclude/openpbrDielectricReflectance.js.map +1 -0
  88. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.d.ts +5 -0
  89. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js +69 -0
  90. package/ShadersWGSL/ShadersInclude/openpbrDirectLighting.js.map +1 -0
  91. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.d.ts +5 -0
  92. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js +80 -0
  93. package/ShadersWGSL/ShadersInclude/openpbrDirectLightingInit.js.map +1 -0
  94. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.d.ts +5 -0
  95. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +112 -0
  96. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -0
  97. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.d.ts +6 -0
  98. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js +68 -0
  99. package/ShadersWGSL/ShadersInclude/openpbrFragmentSamplersDeclaration.js.map +1 -0
  100. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.d.ts +5 -0
  101. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.js +54 -0
  102. package/ShadersWGSL/ShadersInclude/openpbrGeometryInfo.js.map +1 -0
  103. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.d.ts +5 -0
  104. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +218 -0
  105. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -0
  106. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.d.ts +5 -0
  107. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js +64 -0
  108. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.js.map +1 -0
  109. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.d.ts +6 -0
  110. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.js +45 -0
  111. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.js.map +1 -0
  112. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.d.ts +5 -0
  113. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js +51 -0
  114. package/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.js.map +1 -0
  115. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.d.ts +5 -0
  116. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.js +16 -0
  117. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.js.map +1 -0
  118. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.d.ts +5 -0
  119. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.js +16 -0
  120. package/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.js.map +1 -0
  121. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.d.ts +7 -0
  122. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js +17 -0
  123. package/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.js.map +1 -0
  124. package/ShadersWGSL/openpbr.fragment.d.ts +52 -0
  125. package/ShadersWGSL/openpbr.fragment.js +193 -0
  126. package/ShadersWGSL/openpbr.fragment.js.map +1 -0
  127. package/ShadersWGSL/openpbr.vertex.d.ts +37 -0
  128. package/ShadersWGSL/openpbr.vertex.js +227 -0
  129. package/ShadersWGSL/openpbr.vertex.js.map +1 -0
  130. package/package.json +1 -1
@@ -0,0 +1,218 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrIblFunctions";
4
+ const shader = `#ifdef REFLECTION
5
+ fn sampleIrradiance(
6
+ surfaceNormal: vec3f
7
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
8
+ ,vEnvironmentIrradianceSH: vec3f
9
+ #endif
10
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
11
+ ,iblMatrix: mat4x4f
12
+ #endif
13
+ #ifdef USEIRRADIANCEMAP
14
+ #ifdef REFLECTIONMAP_3D
15
+ ,irradianceSampler: texture_cube<f32>
16
+ ,irradianceSamplerSampler: sampler
17
+ #else
18
+ ,irradianceSampler: texture_2d<f32>
19
+ ,irradianceSamplerSampler: sampler
20
+ #endif
21
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
22
+ ,reflectionDominantDirection: vec3f
23
+ #endif
24
+ #endif
25
+ #ifdef REALTIME_FILTERING
26
+ ,reflectionFilteringInfo: vec2f
27
+ #ifdef IBL_CDF_FILTERING
28
+ ,icdfSampler: texture_2d<f32>
29
+ ,icdfSamplerSampler: sampler
30
+ #endif
31
+ #endif
32
+ ,reflectionInfos: vec2f
33
+ ,viewDirectionW: vec3f
34
+ ,diffuseRoughness: f32
35
+ ,surfaceAlbedo: vec3f
36
+ )->vec3f {var environmentIrradiance=vec3f(0.,0.,0.);
37
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
38
+ var irradianceVector=(iblMatrix*vec4f(surfaceNormal,0.0f)).xyz;let irradianceView=(iblMatrix*vec4f(viewDirectionW,0.0f)).xyz;
39
+ #if !defined(USE_IRRADIANCE_DOMINANT_DIRECTION) && !defined(REALTIME_FILTERING)
40
+ #if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY
41
+ {let NdotV=max(dot(surfaceNormal,viewDirectionW),0.0f);irradianceVector=mix(irradianceVector,irradianceView,(0.5f*(1.0f-NdotV))*diffuseRoughness);}
42
+ #endif
43
+ #endif
44
+ #ifdef REFLECTIONMAP_OPPOSITEZ
45
+ irradianceVector.z*=-1.0f;
46
+ #endif
47
+ #ifdef INVERTCUBICMAP
48
+ irradianceVector.y*=-1.0f;
49
+ #endif
50
+ #endif
51
+ #ifdef USESPHERICALFROMREFLECTIONMAP
52
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
53
+ environmentIrradiance=vEnvironmentIrradianceSH;
54
+ #else
55
+ #if defined(REALTIME_FILTERING)
56
+ environmentIrradiance=irradiance(reflectionSampler,reflectionSamplerSampler,irradianceVector,reflectionFilteringInfo,diffuseRoughness,surfaceAlbedo,irradianceView
57
+ #ifdef IBL_CDF_FILTERING
58
+ ,icdfSampler
59
+ ,icdfSamplerSampler
60
+ #endif
61
+ );
62
+ #else
63
+ environmentIrradiance=computeEnvironmentIrradiance(irradianceVector);
64
+ #endif
65
+ #endif
66
+ #elif defined(USEIRRADIANCEMAP)
67
+ #ifdef REFLECTIONMAP_3D
68
+ let environmentIrradianceFromTexture: vec4f=textureSample(irradianceSampler,irradianceSamplerSampler,irradianceVector);
69
+ #else
70
+ let environmentIrradianceFromTexture: vec4f=textureSample(irradianceSampler,irradianceSamplerSampler,reflectionCoords);
71
+ #endif
72
+ environmentIrradiance=environmentIrradianceFromTexture.rgb;
73
+ #ifdef RGBDREFLECTION
74
+ environmentIrradiance.rgb=fromRGBD(environmentIrradianceFromTexture);
75
+ #endif
76
+ #ifdef GAMMAREFLECTION
77
+ environmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);
78
+ #endif
79
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
80
+ let Ls: vec3f=normalize(reflectionDominantDirection);let NoL: f32=dot(irradianceVector,Ls);let NoV: f32=dot(irradianceVector,irradianceView);var diffuseRoughnessTerm=vec3f(1.0f);
81
+ #if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON
82
+ let LoV: f32=dot (Ls,irradianceView);let mag: f32=length(reflectionDominantDirection)*2.0f;let clampedAlbedo: vec3f=clamp(surfaceAlbedo,vec3f(0.1f),vec3f(1.0f));diffuseRoughnessTerm=diffuseBRDF_EON(clampedAlbedo,diffuseRoughness,NoL,NoV,LoV)*PI;diffuseRoughnessTerm=diffuseRoughnessTerm/clampedAlbedo;diffuseRoughnessTerm=mix(vec3f(1.0f),diffuseRoughnessTerm,sqrt(clamp(mag*NoV,0.0f,1.0f)));
83
+ #elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY
84
+ let H: vec3f=(irradianceView+Ls)*0.5f;let VoH: f32=dot(irradianceView,H);diffuseRoughnessTerm=vec3f(diffuseBRDF_Burley(NoL,NoV,VoH,diffuseRoughness)*PI);
85
+ #endif
86
+ environmentIrradiance=environmentIrradiance.rgb*diffuseRoughnessTerm;
87
+ #endif
88
+ #endif
89
+ environmentIrradiance*=reflectionInfos.x;return environmentIrradiance;}
90
+ #ifdef REFLECTIONMAP_3D
91
+ fn createReflectionCoords(vPositionW: vec3f,normalW: vec3f)->vec3f
92
+ #else
93
+ fn createReflectionCoords(vPositionW: vec3f,normalW: vec3f)->vec2f
94
+ #endif
95
+ {var reflectionVector: vec3f=computeReflectionCoords(vec4f(vPositionW,1.0f),normalW);
96
+ #ifdef REFLECTIONMAP_OPPOSITEZ
97
+ reflectionVector.z*=-1.0;
98
+ #endif
99
+ #ifdef REFLECTIONMAP_3D
100
+ var reflectionCoords: vec3f=reflectionVector;
101
+ #else
102
+ var reflectionCoords: vec2f=reflectionVector.xy;
103
+ #ifdef REFLECTIONMAP_PROJECTION
104
+ reflectionCoords/=reflectionVector.z;
105
+ #endif
106
+ reflectionCoords.y=1.0f-reflectionCoords.y;
107
+ #endif
108
+ return reflectionCoords;}
109
+ fn sampleRadiance(
110
+ alphaG: f32
111
+ ,reflectionMicrosurfaceInfos: vec3f
112
+ ,reflectionInfos: vec2f
113
+ ,geoInfo: geometryInfoOutParams
114
+ #ifdef REFLECTIONMAP_3D
115
+ ,reflectionSampler: texture_cube<f32>
116
+ ,reflectionSamplerSampler: sampler
117
+ ,reflectionCoords: vec3f
118
+ #else
119
+ ,reflectionSampler: texture_2d<f32>
120
+ ,reflectionSamplerSampler: sampler
121
+ ,reflectionCoords: vec2f
122
+ #endif
123
+ #ifdef REALTIME_FILTERING
124
+ ,reflectionFilteringInfo: vec2f
125
+ #endif
126
+ )->vec3f {var environmentRadiance: vec4f=vec4f(0.f,0.f,0.f,0.f);
127
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
128
+ var reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);
129
+ #elif defined(LINEARSPECULARREFLECTION)
130
+ var reflectionLOD: f32=getLinearLodFromRoughness(reflectionMicrosurfaceInfos.x,roughness);
131
+ #else
132
+ var reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,alphaG);
133
+ #endif
134
+ reflectionLOD=reflectionLOD*reflectionMicrosurfaceInfos.y+reflectionMicrosurfaceInfos.z;
135
+ #ifdef REALTIME_FILTERING
136
+ environmentRadiance=vec4f(radiance(alphaG,reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionFilteringInfo),1.0f);
137
+ #else
138
+ environmentRadiance=textureSampleLevel(reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionLOD);
139
+ #endif
140
+ #ifdef RGBDREFLECTION
141
+ environmentRadiance.rgb=fromRGBD(environmentRadiance);
142
+ #endif
143
+ #ifdef GAMMAREFLECTION
144
+ environmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);
145
+ #endif
146
+ return environmentRadiance.rgb;}
147
+ #if defined(ANISOTROPIC)
148
+ fn sampleRadianceAnisotropic(
149
+ alphaG: f32
150
+ ,reflectionMicrosurfaceInfos: vec3f
151
+ ,reflectionInfos: vec2f
152
+ ,geoInfo: geometryInfoAnisoOutParams
153
+ ,normalW: vec3f
154
+ ,viewDirectionW: vec3f
155
+ ,positionW: vec3f
156
+ ,noise: vec3f
157
+ #ifdef REFLECTIONMAP_3D
158
+ ,reflectionSampler: texture_cube<f32>
159
+ ,reflectionSamplerSampler: sampler
160
+ #else
161
+ ,reflectionSampler: texture_2d<f32>
162
+ ,reflectionSamplerSampler: sampler
163
+ #endif
164
+ #ifdef REALTIME_FILTERING
165
+ ,reflectionFilteringInfo: vec2f
166
+ #endif
167
+ )->vec3f {var environmentRadiance: vec4f=vec4f(0.f,0.f,0.f,0.f);let alphaT=alphaG*sqrt(2.0f/(1.0f+(1.0f-geoInfo.anisotropy)*(1.0f-geoInfo.anisotropy)));let alphaB=(1.0f-geoInfo.anisotropy)*alphaT;let modifiedAlphaG=alphaB;
168
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
169
+ var reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,modifiedAlphaG,geoInfo.NdotVUnclamped);
170
+ #elif defined(LINEARSPECULARREFLECTION)
171
+ var reflectionLOD: f32=getLinearLodFromRoughness(reflectionMicrosurfaceInfos.x,roughness);
172
+ #else
173
+ var reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,modifiedAlphaG);
174
+ #endif
175
+ reflectionLOD=reflectionLOD*reflectionMicrosurfaceInfos.y+reflectionMicrosurfaceInfos.z;
176
+ #ifdef REALTIME_FILTERING
177
+ var view=(uniforms.reflectionMatrix*vec4f(viewDirectionW,0.0f)).xyz;var tangent=(uniforms.reflectionMatrix*vec4f(geoInfo.anisotropicTangent,0.0f)).xyz;var bitangent=(uniforms.reflectionMatrix*vec4f(geoInfo.anisotropicBitangent,0.0f)).xyz;var normal=(uniforms.reflectionMatrix*vec4f(normalW,0.0f)).xyz;
178
+ #ifdef REFLECTIONMAP_OPPOSITEZ
179
+ view.z*=-1.0f;tangent.z*=-1.0f;bitangent.z*=-1.0f;normal.z*=-1.0f;
180
+ #endif
181
+ environmentRadiance =
182
+ vec4f(radianceAnisotropic(alphaT,alphaB,reflectionSampler,reflectionSamplerSampler,
183
+ view,tangent,
184
+ bitangent,normal,
185
+ reflectionFilteringInfo,noise.xy),
186
+ 1.0f);
187
+ #else
188
+ const samples: i32=16;var radianceSample=vec4f(0.0);var accumulatedRadiance=vec3f(0.0);var reflectionCoords=vec3f(0.0);var sample_weight=0.0f;var total_weight=0.0f;let step=1.0f/f32(max(samples-1,1));for (var i: i32=0; i<samples; i++) {var t: f32=mix(-1.0,1.0,f32(i)*step);t+=step*2.0*noise.x;sample_weight=max(1.0-abs(t),0.001);sample_weight*=sample_weight;t*=min(4.0*alphaT*geoInfo.anisotropy,1.0);var bentNormal: vec3f;if (t<0.0) {let blend: f32=t+1.0;bentNormal=normalize(mix(-geoInfo.anisotropicTangent,normalW,blend));} else if (t>0.0) {let blend: f32=t;bentNormal=normalize(mix(normalW,geoInfo.anisotropicTangent,blend));} else {bentNormal=normalW;}
189
+ reflectionCoords=createReflectionCoords(positionW,bentNormal);radianceSample=textureSampleLevel(reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionLOD);
190
+ #ifdef RGBDREFLECTION
191
+ accumulatedRadiance+=vec3f(sample_weight)*fromRGBD(radianceSample);
192
+ #elif defined(GAMMAREFLECTION)
193
+ accumulatedRadiance+=vec3f(sample_weight)*toLinearSpace(radianceSample.rgb);
194
+ #else
195
+ accumulatedRadiance+=vec3f(sample_weight)*radianceSample.rgb;
196
+ #endif
197
+ total_weight+=sample_weight;}
198
+ environmentRadiance=vec4f(accumulatedRadiance/vec3f(total_weight),1.0f);
199
+ #endif
200
+ environmentRadiance=vec4f(environmentRadiance.rgb*reflectionInfos.xxx,environmentRadiance.a);return environmentRadiance.rgb;}
201
+ #endif
202
+ fn conductorIblFresnel(reflectance: ReflectanceParams,NdotV: f32,roughness: f32,environmentBrdf: vec3f)->vec3f
203
+ {
204
+ #if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)
205
+ let albedoF0: vec3f=mix(reflectance.coloredF0,pow(reflectance.coloredF0,vec3f(1.4f)),roughness);return getF82Specular(NdotV,albedoF0,reflectance.coloredF90,roughness);
206
+ #else
207
+ return getReflectanceFromBRDFLookup(reflectance.coloredF0,reflectance.coloredF90,environmentBrdf);
208
+ #endif
209
+ }
210
+ #endif
211
+ `;
212
+ // Sideeffect
213
+ if (!ShaderStore.IncludesShadersStoreWGSL[name]) {
214
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
215
+ }
216
+ /** @internal */
217
+ export const openpbrIblFunctionsWGSL = { name, shader };
218
+ //# sourceMappingURL=openpbrIblFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrIblFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/openpbrIblFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+Md,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"openpbrIblFunctions\";\nconst shader = `#ifdef REFLECTION\nfn sampleIrradiance(\nsurfaceNormal: vec3f\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\n,vEnvironmentIrradianceSH: vec3f\n#endif\n#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))\n,iblMatrix: mat4x4f\n#endif\n#ifdef USEIRRADIANCEMAP\n#ifdef REFLECTIONMAP_3D\n,irradianceSampler: texture_cube<f32>\n,irradianceSamplerSampler: sampler\n#else\n,irradianceSampler: texture_2d<f32>\n,irradianceSamplerSampler: sampler\n#endif\n#ifdef USE_IRRADIANCE_DOMINANT_DIRECTION\n,reflectionDominantDirection: vec3f\n#endif\n#endif\n#ifdef REALTIME_FILTERING\n,reflectionFilteringInfo: vec2f\n#ifdef IBL_CDF_FILTERING\n,icdfSampler: texture_2d<f32>\n,icdfSamplerSampler: sampler\n#endif\n#endif\n,reflectionInfos: vec2f\n,viewDirectionW: vec3f\n,diffuseRoughness: f32\n,surfaceAlbedo: vec3f\n)->vec3f {var environmentIrradiance=vec3f(0.,0.,0.);\n#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))\nvar irradianceVector=(iblMatrix*vec4f(surfaceNormal,0.0f)).xyz;let irradianceView=(iblMatrix*vec4f(viewDirectionW,0.0f)).xyz;\n#if !defined(USE_IRRADIANCE_DOMINANT_DIRECTION) && !defined(REALTIME_FILTERING)\n#if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY\n{let NdotV=max(dot(surfaceNormal,viewDirectionW),0.0f);irradianceVector=mix(irradianceVector,irradianceView,(0.5f*(1.0f-NdotV))*diffuseRoughness);}\n#endif\n#endif\n#ifdef REFLECTIONMAP_OPPOSITEZ\nirradianceVector.z*=-1.0f;\n#endif\n#ifdef INVERTCUBICMAP\nirradianceVector.y*=-1.0f;\n#endif\n#endif\n#ifdef USESPHERICALFROMREFLECTIONMAP\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\nenvironmentIrradiance=vEnvironmentIrradianceSH;\n#else\n#if defined(REALTIME_FILTERING)\nenvironmentIrradiance=irradiance(reflectionSampler,reflectionSamplerSampler,irradianceVector,reflectionFilteringInfo,diffuseRoughness,surfaceAlbedo,irradianceView\n#ifdef IBL_CDF_FILTERING\n,icdfSampler\n,icdfSamplerSampler\n#endif\n);\n#else\nenvironmentIrradiance=computeEnvironmentIrradiance(irradianceVector);\n#endif\n#endif\n#elif defined(USEIRRADIANCEMAP)\n#ifdef REFLECTIONMAP_3D\nlet environmentIrradianceFromTexture: vec4f=textureSample(irradianceSampler,irradianceSamplerSampler,irradianceVector);\n#else\nlet environmentIrradianceFromTexture: vec4f=textureSample(irradianceSampler,irradianceSamplerSampler,reflectionCoords);\n#endif\nenvironmentIrradiance=environmentIrradianceFromTexture.rgb;\n#ifdef RGBDREFLECTION\nenvironmentIrradiance.rgb=fromRGBD(environmentIrradianceFromTexture);\n#endif\n#ifdef GAMMAREFLECTION\nenvironmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);\n#endif\n#ifdef USE_IRRADIANCE_DOMINANT_DIRECTION\nlet Ls: vec3f=normalize(reflectionDominantDirection);let NoL: f32=dot(irradianceVector,Ls);let NoV: f32=dot(irradianceVector,irradianceView);var diffuseRoughnessTerm=vec3f(1.0f);\n#if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON\nlet LoV: f32=dot (Ls,irradianceView);let mag: f32=length(reflectionDominantDirection)*2.0f;let clampedAlbedo: vec3f=clamp(surfaceAlbedo,vec3f(0.1f),vec3f(1.0f));diffuseRoughnessTerm=diffuseBRDF_EON(clampedAlbedo,diffuseRoughness,NoL,NoV,LoV)*PI;diffuseRoughnessTerm=diffuseRoughnessTerm/clampedAlbedo;diffuseRoughnessTerm=mix(vec3f(1.0f),diffuseRoughnessTerm,sqrt(clamp(mag*NoV,0.0f,1.0f)));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY\nlet H: vec3f=(irradianceView+Ls)*0.5f;let VoH: f32=dot(irradianceView,H);diffuseRoughnessTerm=vec3f(diffuseBRDF_Burley(NoL,NoV,VoH,diffuseRoughness)*PI);\n#endif\nenvironmentIrradiance=environmentIrradiance.rgb*diffuseRoughnessTerm;\n#endif\n#endif\nenvironmentIrradiance*=reflectionInfos.x;return environmentIrradiance;}\n#ifdef REFLECTIONMAP_3D\nfn createReflectionCoords(vPositionW: vec3f,normalW: vec3f)->vec3f\n#else\nfn createReflectionCoords(vPositionW: vec3f,normalW: vec3f)->vec2f\n#endif\n{var reflectionVector: vec3f=computeReflectionCoords(vec4f(vPositionW,1.0f),normalW);\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\n#ifdef REFLECTIONMAP_3D\nvar reflectionCoords: vec3f=reflectionVector;\n#else\nvar reflectionCoords: vec2f=reflectionVector.xy;\n#ifdef REFLECTIONMAP_PROJECTION\nreflectionCoords/=reflectionVector.z;\n#endif\nreflectionCoords.y=1.0f-reflectionCoords.y;\n#endif\nreturn reflectionCoords;}\nfn sampleRadiance(\nalphaG: f32\n,reflectionMicrosurfaceInfos: vec3f\n,reflectionInfos: vec2f\n,geoInfo: geometryInfoOutParams\n#ifdef REFLECTIONMAP_3D\n,reflectionSampler: texture_cube<f32>\n,reflectionSamplerSampler: sampler\n,reflectionCoords: vec3f\n#else\n,reflectionSampler: texture_2d<f32>\n,reflectionSamplerSampler: sampler\n,reflectionCoords: vec2f\n#endif\n#ifdef REALTIME_FILTERING\n,reflectionFilteringInfo: vec2f\n#endif\n)->vec3f {var environmentRadiance: vec4f=vec4f(0.f,0.f,0.f,0.f);\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nvar reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);\n#elif defined(LINEARSPECULARREFLECTION)\nvar reflectionLOD: f32=getLinearLodFromRoughness(reflectionMicrosurfaceInfos.x,roughness);\n#else\nvar reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,alphaG);\n#endif\nreflectionLOD=reflectionLOD*reflectionMicrosurfaceInfos.y+reflectionMicrosurfaceInfos.z;\n#ifdef REALTIME_FILTERING\nenvironmentRadiance=vec4f(radiance(alphaG,reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionFilteringInfo),1.0f);\n#else\nenvironmentRadiance=textureSampleLevel(reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionLOD);\n#endif\n#ifdef RGBDREFLECTION\nenvironmentRadiance.rgb=fromRGBD(environmentRadiance);\n#endif\n#ifdef GAMMAREFLECTION\nenvironmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);\n#endif\nreturn environmentRadiance.rgb;}\n#if defined(ANISOTROPIC)\nfn sampleRadianceAnisotropic(\nalphaG: f32\n,reflectionMicrosurfaceInfos: vec3f\n,reflectionInfos: vec2f\n,geoInfo: geometryInfoAnisoOutParams\n,normalW: vec3f\n,viewDirectionW: vec3f\n,positionW: vec3f\n,noise: vec3f\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#ifdef REALTIME_FILTERING\n,reflectionFilteringInfo: vec2f\n#endif\n)->vec3f {var environmentRadiance: vec4f=vec4f(0.f,0.f,0.f,0.f);let alphaT=alphaG*sqrt(2.0f/(1.0f+(1.0f-geoInfo.anisotropy)*(1.0f-geoInfo.anisotropy)));let alphaB=(1.0f-geoInfo.anisotropy)*alphaT;let modifiedAlphaG=alphaB;\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nvar reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,modifiedAlphaG,geoInfo.NdotVUnclamped);\n#elif defined(LINEARSPECULARREFLECTION)\nvar reflectionLOD: f32=getLinearLodFromRoughness(reflectionMicrosurfaceInfos.x,roughness);\n#else\nvar reflectionLOD: f32=getLodFromAlphaG(reflectionMicrosurfaceInfos.x,modifiedAlphaG);\n#endif\nreflectionLOD=reflectionLOD*reflectionMicrosurfaceInfos.y+reflectionMicrosurfaceInfos.z;\n#ifdef REALTIME_FILTERING\nvar view=(uniforms.reflectionMatrix*vec4f(viewDirectionW,0.0f)).xyz;var tangent=(uniforms.reflectionMatrix*vec4f(geoInfo.anisotropicTangent,0.0f)).xyz;var bitangent=(uniforms.reflectionMatrix*vec4f(geoInfo.anisotropicBitangent,0.0f)).xyz;var normal=(uniforms.reflectionMatrix*vec4f(normalW,0.0f)).xyz;\n#ifdef REFLECTIONMAP_OPPOSITEZ\nview.z*=-1.0f;tangent.z*=-1.0f;bitangent.z*=-1.0f;normal.z*=-1.0f;\n#endif\nenvironmentRadiance =\nvec4f(radianceAnisotropic(alphaT,alphaB,reflectionSampler,reflectionSamplerSampler,\nview,tangent,\nbitangent,normal,\nreflectionFilteringInfo,noise.xy),\n1.0f);\n#else\nconst samples: i32=16;var radianceSample=vec4f(0.0);var accumulatedRadiance=vec3f(0.0);var reflectionCoords=vec3f(0.0);var sample_weight=0.0f;var total_weight=0.0f;let step=1.0f/f32(max(samples-1,1));for (var i: i32=0; i<samples; i++) {var t: f32=mix(-1.0,1.0,f32(i)*step);t+=step*2.0*noise.x;sample_weight=max(1.0-abs(t),0.001);sample_weight*=sample_weight;t*=min(4.0*alphaT*geoInfo.anisotropy,1.0);var bentNormal: vec3f;if (t<0.0) {let blend: f32=t+1.0;bentNormal=normalize(mix(-geoInfo.anisotropicTangent,normalW,blend));} else if (t>0.0) {let blend: f32=t;bentNormal=normalize(mix(normalW,geoInfo.anisotropicTangent,blend));} else {bentNormal=normalW;}\nreflectionCoords=createReflectionCoords(positionW,bentNormal);radianceSample=textureSampleLevel(reflectionSampler,reflectionSamplerSampler,reflectionCoords,reflectionLOD);\n#ifdef RGBDREFLECTION\naccumulatedRadiance+=vec3f(sample_weight)*fromRGBD(radianceSample);\n#elif defined(GAMMAREFLECTION)\naccumulatedRadiance+=vec3f(sample_weight)*toLinearSpace(radianceSample.rgb);\n#else\naccumulatedRadiance+=vec3f(sample_weight)*radianceSample.rgb;\n#endif\ntotal_weight+=sample_weight;}\nenvironmentRadiance=vec4f(accumulatedRadiance/vec3f(total_weight),1.0f);\n#endif\nenvironmentRadiance=vec4f(environmentRadiance.rgb*reflectionInfos.xxx,environmentRadiance.a);return environmentRadiance.rgb;}\n#endif\nfn conductorIblFresnel(reflectance: ReflectanceParams,NdotV: f32,roughness: f32,environmentBrdf: vec3f)->vec3f\n{\n#if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)\nlet albedoF0: vec3f=mix(reflectance.coloredF0,pow(reflectance.coloredF0,vec3f(1.4f)),roughness);return getF82Specular(NdotV,albedoF0,reflectance.coloredF90,roughness);\n#else\nreturn getReflectanceFromBRDFLookup(reflectance.coloredF0,reflectance.coloredF90,environmentBrdf);\n#endif\n}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const openpbrIblFunctionsWGSL = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrNormalMapFragmentWGSL: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -0,0 +1,64 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrNormalMapFragment";
4
+ const shader = `var uvOffset: vec2f= vec2f(0.0,0.0);
5
+ #if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL) || defined(PARALLAX) || defined(DETAIL)
6
+ #ifdef NORMALXYSCALE
7
+ var normalScale: f32=1.0;
8
+ #elif defined(GEOMETRY_NORMAL)
9
+ var normalScale: f32=uniforms.vGeometryNormalInfos.y;
10
+ #else
11
+ var normalScale: f32=1.0;
12
+ #endif
13
+ #if defined(TANGENT) && defined(NORMAL)
14
+ var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
15
+ #elif defined(GEOMETRY_NORMAL)
16
+ var TBNUV: vec2f=select(-fragmentInputs.vGeometryNormalUV,fragmentInputs.vGeometryNormalUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV,uniforms.vTangentSpaceParams);
17
+ #else
18
+ var TBNUV: vec2f=select(-fragmentInputs.vDetailUV,fragmentInputs.vDetailUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV, vec2f(1.,1.));
19
+ #endif
20
+ #elif defined(ANISOTROPIC)
21
+ #if defined(TANGENT) && defined(NORMAL)
22
+ var TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);
23
+ #else
24
+ var TBNUV: vec2f=select( -fragmentInputs.vMainUV1,fragmentInputs.vMainUV1,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW,input.vPositionW,TBNUV, vec2f(1.,1.));
25
+ #endif
26
+ #endif
27
+ #ifdef PARALLAX
28
+ var invTBN: mat3x3f=transposeMat3(TBN);
29
+ #ifdef PARALLAXOCCLUSION
30
+ #else
31
+ #endif
32
+ #endif
33
+ #ifdef DETAIL
34
+ var detailColor: vec4f=textureSample(detailSampler,detailSamplerSampler,fragmentInputs.vDetailUV+uvOffset);var detailNormalRG: vec2f=detailColor.wy*2.0-1.0;var detailNormalB: f32=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));var detailNormal: vec3f= vec3f(detailNormalRG,detailNormalB);
35
+ #endif
36
+ #ifdef GEOMETRY_COAT_NORMAL
37
+ coatNormalW=perturbNormal(TBN,textureSample(geometryCoatNormalSampler,geometryCoatNormalSamplerSampler,fragmentInputs.vGeometryCoatNormalUV+uvOffset).xyz,uniforms.vGeometryCoatNormalInfos.y);
38
+ #endif
39
+ #ifdef GEOMETRY_NORMAL
40
+ #ifdef OBJECTSPACE_NORMALMAP
41
+ #define CUSTOM_FRAGMENT_BUMP_FRAGMENT
42
+ normalW=normalize(textureSample(geometryNormalSampler,geometryNormalSamplerSampler,fragmentInputs.vGeometryNormalUV).xyz *2.0-1.0);normalW=normalize(mat3x3f(uniforms.normalMatrix[0].xyz,uniforms.normalMatrix[1].xyz,uniforms.normalMatrix[2].xyz)*normalW);
43
+ #elif !defined(DETAIL)
44
+ normalW=perturbNormal(TBN,textureSample(geometryNormalSampler,geometryNormalSamplerSampler,fragmentInputs.vGeometryNormalUV+uvOffset).xyz,uniforms.vGeometryNormalInfos.y);
45
+ #else
46
+ var sampledNormal: vec3f=textureSample(geometryNormalSampler,geometryNormalSamplerSampler,fragmentInputs.vGeometryNormalUV+uvOffset).xyz*2.0-1.0;
47
+ #if DETAIL_NORMALBLENDMETHOD==0
48
+ detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);var blendedNormal: vec3f=normalize( vec3f(sampledNormal.xy+detailNormal.xy,sampledNormal.z*detailNormal.z));
49
+ #elif DETAIL_NORMALBLENDMETHOD==1
50
+ detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);sampledNormal+= vec3f(0.0,0.0,1.0);detailNormal*= vec3f(-1.0,-1.0,1.0);var blendedNormal: vec3f=sampledNormal*dot(sampledNormal,detailNormal)/sampledNormal.z-detailNormal;
51
+ #endif
52
+ normalW=perturbNormalBase(TBN,blendedNormal,uniforms.vGeometryNormalInfos.y);
53
+ #endif
54
+ #elif defined(DETAIL)
55
+ detailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);normalW=perturbNormalBase(TBN,detailNormal,uniforms.vDetailInfos.z);
56
+ #endif
57
+ `;
58
+ // Sideeffect
59
+ if (!ShaderStore.IncludesShadersStoreWGSL[name]) {
60
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
61
+ }
62
+ /** @internal */
63
+ export const openpbrNormalMapFragmentWGSL = { name, shader };
64
+ //# sourceMappingURL=openpbrNormalMapFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapFragment.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/openpbrNormalMapFragment.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,0BAA0B,CAAC;AACxC,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqDd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,4BAA4B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"openpbrNormalMapFragment\";\nconst shader = `var uvOffset: vec2f= vec2f(0.0,0.0);\n#if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL) || defined(PARALLAX) || defined(DETAIL)\n#ifdef NORMALXYSCALE\nvar normalScale: f32=1.0;\n#elif defined(GEOMETRY_NORMAL)\nvar normalScale: f32=uniforms.vGeometryNormalInfos.y;\n#else\nvar normalScale: f32=1.0;\n#endif\n#if defined(TANGENT) && defined(NORMAL)\nvar TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2); \n#elif defined(GEOMETRY_NORMAL)\nvar TBNUV: vec2f=select(-fragmentInputs.vGeometryNormalUV,fragmentInputs.vGeometryNormalUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV,uniforms.vTangentSpaceParams);\n#else\nvar TBNUV: vec2f=select(-fragmentInputs.vDetailUV,fragmentInputs.vDetailUV,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW*normalScale,input.vPositionW,TBNUV, vec2f(1.,1.));\n#endif\n#elif defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nvar TBN: mat3x3f=mat3x3<f32>(input.vTBN0,input.vTBN1,input.vTBN2);\n#else\nvar TBNUV: vec2f=select( -fragmentInputs.vMainUV1,fragmentInputs.vMainUV1,fragmentInputs.frontFacing);var TBN: mat3x3f=cotangent_frame(normalW,input.vPositionW,TBNUV, vec2f(1.,1.));\n#endif\n#endif\n#ifdef PARALLAX\nvar invTBN: mat3x3f=transposeMat3(TBN);\n#ifdef PARALLAXOCCLUSION\n#else\n#endif\n#endif\n#ifdef DETAIL\nvar detailColor: vec4f=textureSample(detailSampler,detailSamplerSampler,fragmentInputs.vDetailUV+uvOffset);var detailNormalRG: vec2f=detailColor.wy*2.0-1.0;var detailNormalB: f32=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));var detailNormal: vec3f= vec3f(detailNormalRG,detailNormalB);\n#endif\n#ifdef GEOMETRY_COAT_NORMAL\ncoatNormalW=perturbNormal(TBN,textureSample(geometryCoatNormalSampler,geometryCoatNormalSamplerSampler,fragmentInputs.vGeometryCoatNormalUV+uvOffset).xyz,uniforms.vGeometryCoatNormalInfos.y);\n#endif\n#ifdef GEOMETRY_NORMAL\n#ifdef OBJECTSPACE_NORMALMAP\n#define CUSTOM_FRAGMENT_BUMP_FRAGMENT\nnormalW=normalize(textureSample(geometryNormalSampler,geometryNormalSamplerSampler,fragmentInputs.vGeometryNormalUV).xyz *2.0-1.0);normalW=normalize(mat3x3f(uniforms.normalMatrix[0].xyz,uniforms.normalMatrix[1].xyz,uniforms.normalMatrix[2].xyz)*normalW);\n#elif !defined(DETAIL)\nnormalW=perturbNormal(TBN,textureSample(geometryNormalSampler,geometryNormalSamplerSampler,fragmentInputs.vGeometryNormalUV+uvOffset).xyz,uniforms.vGeometryNormalInfos.y);\n#else\nvar sampledNormal: vec3f=textureSample(geometryNormalSampler,geometryNormalSamplerSampler,fragmentInputs.vGeometryNormalUV+uvOffset).xyz*2.0-1.0;\n#if DETAIL_NORMALBLENDMETHOD==0 \ndetailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);var blendedNormal: vec3f=normalize( vec3f(sampledNormal.xy+detailNormal.xy,sampledNormal.z*detailNormal.z));\n#elif DETAIL_NORMALBLENDMETHOD==1 \ndetailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);sampledNormal+= vec3f(0.0,0.0,1.0);detailNormal*= vec3f(-1.0,-1.0,1.0);var blendedNormal: vec3f=sampledNormal*dot(sampledNormal,detailNormal)/sampledNormal.z-detailNormal;\n#endif\nnormalW=perturbNormalBase(TBN,blendedNormal,uniforms.vGeometryNormalInfos.y);\n#endif\n#elif defined(DETAIL)\ndetailNormal=vec3f(detailNormal.xy*uniforms.vDetailInfos.z,detailNormal.z);normalW=perturbNormalBase(TBN,detailNormal,uniforms.vDetailInfos.z);\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapFragmentWGSL = { name, shader };\n"]}
@@ -0,0 +1,6 @@
1
+ import "./samplerFragmentDeclaration.js";
2
+ /** @internal */
3
+ export declare const openpbrNormalMapFragmentFunctionsWGSL: {
4
+ name: string;
5
+ shader: string;
6
+ };
@@ -0,0 +1,45 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ import "./samplerFragmentDeclaration.js";
4
+ const name = "openpbrNormalMapFragmentFunctions";
5
+ const shader = `#if defined(GEOMETRY_NORMAL)
6
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal,_SAMPLERNAME_,geometryNormal)
7
+ #endif
8
+ #if defined(GEOMETRY_COAT_NORMAL)
9
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal,_SAMPLERNAME_,geometryCoatNormal)
10
+ #endif
11
+ #if defined(DETAIL)
12
+ #include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)
13
+ #endif
14
+ #if defined(GEOMETRY_NORMAL) && defined(PARALLAX)
15
+ const minSamples: f32=4.;const maxSamples: f32=15.;const iMaxSamples: i32=15;fn parallaxOcclusion(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32)->vec2f {var parallaxLimit: f32=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;var vOffsetDir: vec2f=normalize(vViewDirCoT.xy);var vMaxOffset: vec2f=vOffsetDir*parallaxLimit;var numSamples: f32=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));var stepSize: f32=1.0/numSamples;var currRayHeight: f32=1.0;var vCurrOffset: vec2f= vec2f(0,0);var vLastOffset: vec2f= vec2f(0,0);var lastSampledHeight: f32=1.0;var currSampledHeight: f32=1.0;var keepWorking: bool=true;for (var i: i32=0; i<iMaxSamples; i++)
16
+ {currSampledHeight=textureSample(geometryNormalSampler,geometryNormalSamplerSampler,texCoord+vCurrOffset).w;if (!keepWorking)
17
+ {}
18
+ else if (currSampledHeight>currRayHeight)
19
+ {var delta1: f32=currSampledHeight-currRayHeight;var delta2: f32=(currRayHeight+stepSize)-lastSampledHeight;var ratio: f32=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}
20
+ else
21
+ {currRayHeight-=stepSize;vLastOffset=vCurrOffset;
22
+ #ifdef PARALLAX_RHS
23
+ vCurrOffset-=stepSize*vMaxOffset;
24
+ #else
25
+ vCurrOffset+=stepSize*vMaxOffset;
26
+ #endif
27
+ lastSampledHeight=currSampledHeight;}}
28
+ return vCurrOffset;}
29
+ fn parallaxOffset(viewDir: vec3f,heightScale: f32)->vec2f
30
+ {var height: f32=textureSample(geometryNormalSampler,geometryNormalSamplerSampler,fragmentInputs.vGeometryNormalUV).w;var texCoordOffset: vec2f=heightScale*viewDir.xy*height;
31
+ #ifdef PARALLAX_RHS
32
+ return texCoordOffset;
33
+ #else
34
+ return -texCoordOffset;
35
+ #endif
36
+ }
37
+ #endif
38
+ `;
39
+ // Sideeffect
40
+ if (!ShaderStore.IncludesShadersStoreWGSL[name]) {
41
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
42
+ }
43
+ /** @internal */
44
+ export const openpbrNormalMapFragmentFunctionsWGSL = { name, shader };
45
+ //# sourceMappingURL=openpbrNormalMapFragmentFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapFragmentFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,8BAA8B,CAAC;AAEtC,MAAM,IAAI,GAAG,mCAAmC,CAAC;AACjD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./samplerFragmentDeclaration\";\n\nconst name = \"openpbrNormalMapFragmentFunctions\";\nconst shader = `#if defined(GEOMETRY_NORMAL)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_NORMAL,_VARYINGNAME_,GeometryNormal,_SAMPLERNAME_,geometryNormal)\n#endif\n#if defined(GEOMETRY_COAT_NORMAL)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,GEOMETRY_COAT_NORMAL,_VARYINGNAME_,GeometryCoatNormal,_SAMPLERNAME_,geometryCoatNormal)\n#endif\n#if defined(DETAIL)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)\n#endif\n#if defined(GEOMETRY_NORMAL) && defined(PARALLAX)\nconst minSamples: f32=4.;const maxSamples: f32=15.;const iMaxSamples: i32=15;fn parallaxOcclusion(vViewDirCoT: vec3f,vNormalCoT: vec3f,texCoord: vec2f,parallaxScale: f32)->vec2f {var parallaxLimit: f32=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;var vOffsetDir: vec2f=normalize(vViewDirCoT.xy);var vMaxOffset: vec2f=vOffsetDir*parallaxLimit;var numSamples: f32=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));var stepSize: f32=1.0/numSamples;var currRayHeight: f32=1.0;var vCurrOffset: vec2f= vec2f(0,0);var vLastOffset: vec2f= vec2f(0,0);var lastSampledHeight: f32=1.0;var currSampledHeight: f32=1.0;var keepWorking: bool=true;for (var i: i32=0; i<iMaxSamples; i++)\n{currSampledHeight=textureSample(geometryNormalSampler,geometryNormalSamplerSampler,texCoord+vCurrOffset).w;if (!keepWorking)\n{}\nelse if (currSampledHeight>currRayHeight)\n{var delta1: f32=currSampledHeight-currRayHeight;var delta2: f32=(currRayHeight+stepSize)-lastSampledHeight;var ratio: f32=delta1/(delta1+delta2);vCurrOffset=(ratio)* vLastOffset+(1.0-ratio)*vCurrOffset;keepWorking=false;}\nelse\n{currRayHeight-=stepSize;vLastOffset=vCurrOffset;\n#ifdef PARALLAX_RHS\nvCurrOffset-=stepSize*vMaxOffset;\n#else\nvCurrOffset+=stepSize*vMaxOffset;\n#endif\nlastSampledHeight=currSampledHeight;}}\nreturn vCurrOffset;}\nfn parallaxOffset(viewDir: vec3f,heightScale: f32)->vec2f\n{var height: f32=textureSample(geometryNormalSampler,geometryNormalSamplerSampler,fragmentInputs.vGeometryNormalUV).w;var texCoordOffset: vec2f=heightScale*viewDir.xy*height;\n#ifdef PARALLAX_RHS\nreturn texCoordOffset;\n#else\nreturn -texCoordOffset;\n#endif\n}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapFragmentFunctionsWGSL = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrNormalMapFragmentMainFunctionsWGSL: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -0,0 +1,51 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrNormalMapFragmentMainFunctions";
4
+ const shader = `#if defined(GEOMETRY_NORMAL) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)
5
+ #if defined(TANGENT) && defined(NORMAL)
6
+ varying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;
7
+ #endif
8
+ #ifdef OBJECTSPACE_NORMALMAP
9
+ uniform normalMatrix: mat4x4f;fn toNormalMatrix(m: mat4x4f)->mat4x4f
10
+ {var a00=m[0][0];var a01=m[0][1];var a02=m[0][2];var a03=m[0][3];var a10=m[1][0];var a11=m[1][1];var a12=m[1][2];var a13=m[1][3];var a20=m[2][0];
11
+ var a21=m[2][1];var a22=m[2][2];var a23=m[2][3];var a30=m[3][0];
12
+ var a31=m[3][1];var a32=m[3][2];var a33=m[3][3];var b00=a00*a11-a01*a10;var b01=a00*a12-a02*a10;var b02=a00*a13-a03*a10;var b03=a01*a12-a02*a11;var b04=a01*a13-a03*a11;var b05=a02*a13-a03*a12;var b06=a20*a31-a21*a30;var b07=a20*a32-a22*a30;var b08=a20*a33-a23*a30;var b09=a21*a32-a22*a31;var b10=a21*a33-a23*a31;var b11=a22*a33-a23*a32;var det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var mi=mat4x4<f32>(
13
+ (a11*b11-a12*b10+a13*b09)/det,
14
+ (a02*b10-a01*b11-a03*b09)/det,
15
+ (a31*b05-a32*b04+a33*b03)/det,
16
+ (a22*b04-a21*b05-a23*b03)/det,
17
+ (a12*b08-a10*b11-a13*b07)/det,
18
+ (a00*b11-a02*b08+a03*b07)/det,
19
+ (a32*b02-a30*b05-a33*b01)/det,
20
+ (a20*b05-a22*b02+a23*b01)/det,
21
+ (a10*b10-a11*b08+a13*b06)/det,
22
+ (a01*b08-a00*b10-a03*b06)/det,
23
+ (a30*b04-a31*b02+a33*b00)/det,
24
+ (a21*b02-a20*b04-a23*b00)/det,
25
+ (a11*b07-a10*b09-a12*b06)/det,
26
+ (a00*b09-a01*b07+a02*b06)/det,
27
+ (a31*b01-a30*b03-a32*b00)/det,
28
+ (a20*b03-a21*b01+a22*b00)/det);return mat4x4<f32>(mi[0][0],mi[1][0],mi[2][0],mi[3][0],
29
+ mi[0][1],mi[1][1],mi[2][1],mi[3][1],
30
+ mi[0][2],mi[1][2],mi[2][2],mi[3][2],
31
+ mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
32
+ #endif
33
+ fn perturbNormalBase(cotangentFrame: mat3x3f,normal: vec3f,scale: f32)->vec3f
34
+ {var output=normal;
35
+ #ifdef NORMALXYSCALE
36
+ output=normalize(output* vec3f(scale,scale,1.0));
37
+ #endif
38
+ return normalize(cotangentFrame*output);}
39
+ fn perturbNormal(cotangentFrame: mat3x3f,textureSample: vec3f,scale: f32)->vec3f
40
+ {return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
41
+ fn cotangent_frame(normal: vec3f,p: vec3f,uv: vec2f,tangentSpaceParams: vec2f)->mat3x3f
42
+ {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);}
43
+ #endif
44
+ `;
45
+ // Sideeffect
46
+ if (!ShaderStore.IncludesShadersStoreWGSL[name]) {
47
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
48
+ }
49
+ /** @internal */
50
+ export const openpbrNormalMapFragmentMainFunctionsWGSL = { name, shader };
51
+ //# sourceMappingURL=openpbrNormalMapFragmentMainFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapFragmentMainFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/openpbrNormalMapFragmentMainFunctions.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,uCAAuC,CAAC;AACrD,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwCd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,yCAAyC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"openpbrNormalMapFragmentMainFunctions\";\nconst shader = `#if defined(GEOMETRY_NORMAL) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC) || defined(DETAIL)\n#if defined(TANGENT) && defined(NORMAL) \nvarying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nuniform normalMatrix: mat4x4f;fn toNormalMatrix(m: mat4x4f)->mat4x4f\n{var a00=m[0][0];var a01=m[0][1];var a02=m[0][2];var a03=m[0][3];var a10=m[1][0];var a11=m[1][1];var a12=m[1][2];var a13=m[1][3];var a20=m[2][0]; \nvar a21=m[2][1];var a22=m[2][2];var a23=m[2][3];var a30=m[3][0]; \nvar a31=m[3][1];var a32=m[3][2];var a33=m[3][3];var b00=a00*a11-a01*a10;var b01=a00*a12-a02*a10;var b02=a00*a13-a03*a10;var b03=a01*a12-a02*a11;var b04=a01*a13-a03*a11;var b05=a02*a13-a03*a12;var b06=a20*a31-a21*a30;var b07=a20*a32-a22*a30;var b08=a20*a33-a23*a30;var b09=a21*a32-a22*a31;var b10=a21*a33-a23*a31;var b11=a22*a33-a23*a32;var det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;var mi=mat4x4<f32>(\n(a11*b11-a12*b10+a13*b09)/det,\n(a02*b10-a01*b11-a03*b09)/det,\n(a31*b05-a32*b04+a33*b03)/det,\n(a22*b04-a21*b05-a23*b03)/det,\n(a12*b08-a10*b11-a13*b07)/det,\n(a00*b11-a02*b08+a03*b07)/det,\n(a32*b02-a30*b05-a33*b01)/det,\n(a20*b05-a22*b02+a23*b01)/det,\n(a10*b10-a11*b08+a13*b06)/det,\n(a01*b08-a00*b10-a03*b06)/det,\n(a30*b04-a31*b02+a33*b00)/det,\n(a21*b02-a20*b04-a23*b00)/det,\n(a11*b07-a10*b09-a12*b06)/det,\n(a00*b09-a01*b07+a02*b06)/det,\n(a31*b01-a30*b03-a32*b00)/det,\n(a20*b03-a21*b01+a22*b00)/det);return mat4x4<f32>(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\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\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapFragmentMainFunctionsWGSL = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrNormalMapVertexWGSL: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -0,0 +1,16 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrNormalMapVertex";
4
+ const shader = `#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
5
+ #if defined(TANGENT) && defined(NORMAL)
6
+ var tbnNormal: vec3f=normalize(normalUpdated);var tbnTangent: vec3f=normalize(tangentUpdated.xyz);var tbnBitangent: vec3f=cross(tbnNormal,tbnTangent)*tangentUpdated.w;var matTemp= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz)* mat3x3f(tbnTangent,tbnBitangent,tbnNormal);vertexOutputs.vTBN0=matTemp[0];vertexOutputs.vTBN1=matTemp[1];vertexOutputs.vTBN2=matTemp[2];
7
+ #endif
8
+ #endif
9
+ `;
10
+ // Sideeffect
11
+ if (!ShaderStore.IncludesShadersStoreWGSL[name]) {
12
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
13
+ }
14
+ /** @internal */
15
+ export const openpbrNormalMapVertexWGSL = { name, shader };
16
+ //# sourceMappingURL=openpbrNormalMapVertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapVertex.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/openpbrNormalMapVertex.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,wBAAwB,CAAC;AACtC,MAAM,MAAM,GAAG;;;;;CAKd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,0BAA0B,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"openpbrNormalMapVertex\";\nconst shader = `#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nvar tbnNormal: vec3f=normalize(normalUpdated);var tbnTangent: vec3f=normalize(tangentUpdated.xyz);var tbnBitangent: vec3f=cross(tbnNormal,tbnTangent)*tangentUpdated.w;var matTemp= mat3x3f(finalWorld[0].xyz,finalWorld[1].xyz,finalWorld[2].xyz)* mat3x3f(tbnTangent,tbnBitangent,tbnNormal);vertexOutputs.vTBN0=matTemp[0];vertexOutputs.vTBN1=matTemp[1];vertexOutputs.vTBN2=matTemp[2];\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapVertexWGSL = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrNormalMapVertexDeclarationWGSL: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -0,0 +1,16 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrNormalMapVertexDeclaration";
4
+ const shader = `#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)
5
+ #if defined(TANGENT) && defined(NORMAL)
6
+ varying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;
7
+ #endif
8
+ #endif
9
+ `;
10
+ // Sideeffect
11
+ if (!ShaderStore.IncludesShadersStoreWGSL[name]) {
12
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
13
+ }
14
+ /** @internal */
15
+ export const openpbrNormalMapVertexDeclarationWGSL = { name, shader };
16
+ //# sourceMappingURL=openpbrNormalMapVertexDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapVertexDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/openpbrNormalMapVertexDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,IAAI,GAAG,mCAAmC,CAAC;AACjD,MAAM,MAAM,GAAG;;;;;CAKd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,qCAAqC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\n\nconst name = \"openpbrNormalMapVertexDeclaration\";\nconst shader = `#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(CLEARCOAT_BUMP) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL) \nvarying vTBN0: vec3f;varying vTBN1: vec3f;varying vTBN2: vec3f;\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapVertexDeclarationWGSL = { name, shader };\n"]}
@@ -0,0 +1,7 @@
1
+ import "./sceneUboDeclaration.js";
2
+ import "./meshUboDeclaration.js";
3
+ /** @internal */
4
+ export declare const openpbrUboDeclarationWGSL: {
5
+ name: string;
6
+ shader: string;
7
+ };
@@ -0,0 +1,17 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ import "./sceneUboDeclaration.js";
4
+ import "./meshUboDeclaration.js";
5
+ const name = "openpbrUboDeclaration";
6
+ const shader = `uniform vTangentSpaceParams: vec2f;uniform vLightingIntensity: vec4f;uniform pointSize: f32;uniform vDebugMode: vec2f;uniform cameraInfo: vec4f;uniform vReflectionInfos: vec2f;uniform reflectionMatrix: mat4x4f;uniform vReflectionMicrosurfaceInfos: vec3f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;uniform vReflectionFilteringInfo: vec2f;uniform vReflectionDominantDirection: vec3f;uniform vReflectionColor: vec3f;uniform vSphericalL00: vec3f;uniform vSphericalL1_1: vec3f;uniform vSphericalL10: vec3f;uniform vSphericalL11: vec3f;uniform vSphericalL2_2: vec3f;uniform vSphericalL2_1: vec3f;uniform vSphericalL20: vec3f;uniform vSphericalL21: vec3f;uniform vSphericalL22: vec3f;uniform vSphericalX: vec3f;uniform vSphericalY: vec3f;uniform vSphericalZ: vec3f;uniform vSphericalXX_ZZ: vec3f;uniform vSphericalYY_ZZ: vec3f;uniform vSphericalZZ: vec3f;uniform vSphericalXY: vec3f;uniform vSphericalYZ: vec3f;uniform vSphericalZX: vec3f;uniform vBaseWeight: f32;uniform vBaseColor: vec4f;uniform vBaseDiffuseRoughness: f32;uniform vReflectanceInfo: vec4f;uniform vSpecularColor: vec4f;uniform vSpecularAnisotropy: vec3f;uniform vCoatWeight: f32;uniform vCoatColor: vec3f;uniform vCoatRoughness: f32;uniform vCoatRoughnessAnisotropy: f32;uniform vCoatIor: f32;uniform vCoatDarkening : f32;uniform vGeometryCoatTangent: vec2f;uniform vEmissionColor: vec3f;uniform vBaseWeightInfos: vec2f;uniform baseWeightMatrix: mat4x4f;uniform vBaseColorInfos: vec2f;uniform baseColorMatrix: mat4x4f;uniform vBaseDiffuseRoughnessInfos: vec2f;uniform baseDiffuseRoughnessMatrix: mat4x4f;uniform vBaseMetalnessInfos: vec2f;uniform baseMetalnessMatrix: mat4x4f;uniform vSpecularWeightInfos: vec2f;uniform specularWeightMatrix: mat4x4f;uniform vSpecularColorInfos: vec2f;uniform specularColorMatrix: mat4x4f;uniform vSpecularRoughnessInfos: vec2f;uniform specularRoughnessMatrix: mat4x4f;uniform vSpecularRoughnessAnisotropyInfos: vec2f;uniform specularRoughnessAnisotropyMatrix: mat4x4f;uniform vCoatWeightInfos: vec2f;uniform coatWeightMatrix: mat4x4f;uniform vCoatColorInfos: vec2f;uniform coatColorMatrix: mat4x4f;uniform vCoatRoughnessInfos: vec2f;uniform coatRoughnessMatrix: mat4x4f;uniform vCoatDarkeningInfos : vec2f;uniform coatDarkeningMatrix : mat4x4f;uniform vGeometryNormalInfos: vec2f;uniform geometryNormalMatrix: mat4x4f;uniform vGeometryTangentInfos: vec2f;uniform geometryTangentMatrix: mat4x4f;uniform vGeometryCoatNormalInfos: vec2f;uniform geometryCoatNormalMatrix: mat4x4f;uniform vGeometryCoatTangentInfos: vec2f;uniform geometryCoatTangentMatrix: mat4x4f;uniform vGeometryOpacityInfos: vec2f;uniform geometryOpacityMatrix: mat4x4f;uniform vEmissionInfos: vec2f;uniform emissionMatrix: mat4x4f;uniform vAmbientOcclusionInfos: vec2f;uniform ambientOcclusionMatrix: mat4x4f;
7
+ #define ADDITIONAL_UBO_DECLARATION
8
+ #include<sceneUboDeclaration>
9
+ #include<meshUboDeclaration>
10
+ `;
11
+ // Sideeffect
12
+ if (!ShaderStore.IncludesShadersStoreWGSL[name]) {
13
+ ShaderStore.IncludesShadersStoreWGSL[name] = shader;
14
+ }
15
+ /** @internal */
16
+ export const openpbrUboDeclarationWGSL = { name, shader };
17
+ //# sourceMappingURL=openpbrUboDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrUboDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/ShadersWGSL/ShadersInclude/openpbrUboDeclaration.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,sBAAsB,CAAC;AAE9B,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG;;;;CAId,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACxD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC","sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./sceneUboDeclaration\";\nimport \"./meshUboDeclaration\";\n\nconst name = \"openpbrUboDeclaration\";\nconst shader = `uniform vTangentSpaceParams: vec2f;uniform vLightingIntensity: vec4f;uniform pointSize: f32;uniform vDebugMode: vec2f;uniform cameraInfo: vec4f;uniform vReflectionInfos: vec2f;uniform reflectionMatrix: mat4x4f;uniform vReflectionMicrosurfaceInfos: vec3f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;uniform vReflectionFilteringInfo: vec2f;uniform vReflectionDominantDirection: vec3f;uniform vReflectionColor: vec3f;uniform vSphericalL00: vec3f;uniform vSphericalL1_1: vec3f;uniform vSphericalL10: vec3f;uniform vSphericalL11: vec3f;uniform vSphericalL2_2: vec3f;uniform vSphericalL2_1: vec3f;uniform vSphericalL20: vec3f;uniform vSphericalL21: vec3f;uniform vSphericalL22: vec3f;uniform vSphericalX: vec3f;uniform vSphericalY: vec3f;uniform vSphericalZ: vec3f;uniform vSphericalXX_ZZ: vec3f;uniform vSphericalYY_ZZ: vec3f;uniform vSphericalZZ: vec3f;uniform vSphericalXY: vec3f;uniform vSphericalYZ: vec3f;uniform vSphericalZX: vec3f;uniform vBaseWeight: f32;uniform vBaseColor: vec4f;uniform vBaseDiffuseRoughness: f32;uniform vReflectanceInfo: vec4f;uniform vSpecularColor: vec4f;uniform vSpecularAnisotropy: vec3f;uniform vCoatWeight: f32;uniform vCoatColor: vec3f;uniform vCoatRoughness: f32;uniform vCoatRoughnessAnisotropy: f32;uniform vCoatIor: f32;uniform vCoatDarkening : f32;uniform vGeometryCoatTangent: vec2f;uniform vEmissionColor: vec3f;uniform vBaseWeightInfos: vec2f;uniform baseWeightMatrix: mat4x4f;uniform vBaseColorInfos: vec2f;uniform baseColorMatrix: mat4x4f;uniform vBaseDiffuseRoughnessInfos: vec2f;uniform baseDiffuseRoughnessMatrix: mat4x4f;uniform vBaseMetalnessInfos: vec2f;uniform baseMetalnessMatrix: mat4x4f;uniform vSpecularWeightInfos: vec2f;uniform specularWeightMatrix: mat4x4f;uniform vSpecularColorInfos: vec2f;uniform specularColorMatrix: mat4x4f;uniform vSpecularRoughnessInfos: vec2f;uniform specularRoughnessMatrix: mat4x4f;uniform vSpecularRoughnessAnisotropyInfos: vec2f;uniform specularRoughnessAnisotropyMatrix: mat4x4f;uniform vCoatWeightInfos: vec2f;uniform coatWeightMatrix: mat4x4f;uniform vCoatColorInfos: vec2f;uniform coatColorMatrix: mat4x4f;uniform vCoatRoughnessInfos: vec2f;uniform coatRoughnessMatrix: mat4x4f;uniform vCoatDarkeningInfos : vec2f;uniform coatDarkeningMatrix : mat4x4f;uniform vGeometryNormalInfos: vec2f;uniform geometryNormalMatrix: mat4x4f;uniform vGeometryTangentInfos: vec2f;uniform geometryTangentMatrix: mat4x4f;uniform vGeometryCoatNormalInfos: vec2f;uniform geometryCoatNormalMatrix: mat4x4f;uniform vGeometryCoatTangentInfos: vec2f;uniform geometryCoatTangentMatrix: mat4x4f;uniform vGeometryOpacityInfos: vec2f;uniform geometryOpacityMatrix: mat4x4f;uniform vEmissionInfos: vec2f;uniform emissionMatrix: mat4x4f;uniform vAmbientOcclusionInfos: vec2f;uniform ambientOcclusionMatrix: mat4x4f;\n#define ADDITIONAL_UBO_DECLARATION\n#include<sceneUboDeclaration>\n#include<meshUboDeclaration>\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStoreWGSL[name]) {\n ShaderStore.IncludesShadersStoreWGSL[name] = shader;\n}\n/** @internal */\nexport const openpbrUboDeclarationWGSL = { name, shader };\n"]}
@@ -0,0 +1,52 @@
1
+ import "./ShadersInclude/prePassDeclaration.js";
2
+ import "./ShadersInclude/oitDeclaration.js";
3
+ import "./ShadersInclude/openpbrUboDeclaration.js";
4
+ import "./ShadersInclude/pbrFragmentExtraDeclaration.js";
5
+ import "./ShadersInclude/lightUboDeclaration.js";
6
+ import "./ShadersInclude/openpbrFragmentSamplersDeclaration.js";
7
+ import "./ShadersInclude/imageProcessingDeclaration.js";
8
+ import "./ShadersInclude/clipPlaneFragmentDeclaration.js";
9
+ import "./ShadersInclude/logDepthDeclaration.js";
10
+ import "./ShadersInclude/fogFragmentDeclaration.js";
11
+ import "./ShadersInclude/helperFunctions.js";
12
+ import "./ShadersInclude/subSurfaceScatteringFunctions.js";
13
+ import "./ShadersInclude/importanceSampling.js";
14
+ import "./ShadersInclude/pbrHelperFunctions.js";
15
+ import "./ShadersInclude/imageProcessingFunctions.js";
16
+ import "./ShadersInclude/shadowsFragmentFunctions.js";
17
+ import "./ShadersInclude/harmonicsFunctions.js";
18
+ import "./ShadersInclude/pbrDirectLightingSetupFunctions.js";
19
+ import "./ShadersInclude/pbrDirectLightingFalloffFunctions.js";
20
+ import "./ShadersInclude/pbrBRDFFunctions.js";
21
+ import "./ShadersInclude/hdrFilteringFunctions.js";
22
+ import "./ShadersInclude/pbrDirectLightingFunctions.js";
23
+ import "./ShadersInclude/pbrIBLFunctions.js";
24
+ import "./ShadersInclude/openpbrNormalMapFragmentMainFunctions.js";
25
+ import "./ShadersInclude/openpbrNormalMapFragmentFunctions.js";
26
+ import "./ShadersInclude/reflectionFunction.js";
27
+ import "./ShadersInclude/openpbrDielectricReflectance.js";
28
+ import "./ShadersInclude/openpbrConductorReflectance.js";
29
+ import "./ShadersInclude/openpbrBlockAmbientOcclusion.js";
30
+ import "./ShadersInclude/openpbrGeometryInfo.js";
31
+ import "./ShadersInclude/openpbrIblFunctions.js";
32
+ import "./ShadersInclude/clipPlaneFragment.js";
33
+ import "./ShadersInclude/pbrBlockNormalGeometric.js";
34
+ import "./ShadersInclude/openpbrNormalMapFragment.js";
35
+ import "./ShadersInclude/openpbrBlockNormalFinal.js";
36
+ import "./ShadersInclude/openpbrBaseLayerData.js";
37
+ import "./ShadersInclude/openpbrCoatLayerData.js";
38
+ import "./ShadersInclude/depthPrePass.js";
39
+ import "./ShadersInclude/openpbrEnvironmentLighting.js";
40
+ import "./ShadersInclude/openpbrDirectLightingInit.js";
41
+ import "./ShadersInclude/openpbrDirectLighting.js";
42
+ import "./ShadersInclude/logDepthFragment.js";
43
+ import "./ShadersInclude/fogFragment.js";
44
+ import "./ShadersInclude/pbrBlockImageProcessing.js";
45
+ import "./ShadersInclude/pbrBlockPrePass.js";
46
+ import "./ShadersInclude/oitFragment.js";
47
+ import "./ShadersInclude/pbrDebug.js";
48
+ /** @internal */
49
+ export declare const openpbrPixelShaderWGSL: {
50
+ name: string;
51
+ shader: string;
52
+ };