@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,221 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrIblFunctions";
4
+ const shader = `#ifdef REFLECTION
5
+ vec3 sampleIrradiance(
6
+ in vec3 surfaceNormal
7
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
8
+ ,in vec3 vEnvironmentIrradianceSH
9
+ #endif
10
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
11
+ ,in mat4 iblMatrix
12
+ #endif
13
+ #ifdef USEIRRADIANCEMAP
14
+ #ifdef REFLECTIONMAP_3D
15
+ ,in samplerCube irradianceSampler
16
+ #else
17
+ ,in sampler2D irradianceSampler
18
+ #endif
19
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
20
+ ,in vec3 reflectionDominantDirection
21
+ #endif
22
+ #endif
23
+ #ifdef REALTIME_FILTERING
24
+ ,in vec2 vReflectionFilteringInfo
25
+ #ifdef IBL_CDF_FILTERING
26
+ ,in sampler2D icdfSampler
27
+ #endif
28
+ #endif
29
+ ,in vec2 vReflectionInfos
30
+ ,in vec3 viewDirectionW
31
+ ,in float diffuseRoughness
32
+ ,in vec3 surfaceAlbedo
33
+ ) {vec3 environmentIrradiance=vec3(0.,0.,0.);
34
+ #if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))
35
+ vec3 irradianceVector=(iblMatrix*vec4(surfaceNormal,0)).xyz;vec3 irradianceView=(iblMatrix*vec4(viewDirectionW,0)).xyz;
36
+ #if !defined(USE_IRRADIANCE_DOMINANT_DIRECTION) && !defined(REALTIME_FILTERING)
37
+ #if BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LAMBERT && BASE_DIFFUSE_MODEL != BRDF_DIFFUSE_MODEL_LEGACY
38
+ {float NdotV=max(dot(surfaceNormal,viewDirectionW),0.0);irradianceVector=mix(irradianceVector,irradianceView,(0.5*(1.0-NdotV))*diffuseRoughness);}
39
+ #endif
40
+ #endif
41
+ #ifdef REFLECTIONMAP_OPPOSITEZ
42
+ irradianceVector.z*=-1.0;
43
+ #endif
44
+ #ifdef INVERTCUBICMAP
45
+ irradianceVector.y*=-1.0;
46
+ #endif
47
+ #endif
48
+ #ifdef USESPHERICALFROMREFLECTIONMAP
49
+ #if defined(NORMAL) && defined(USESPHERICALINVERTEX)
50
+ environmentIrradiance=vEnvironmentIrradianceSH;
51
+ #else
52
+ #if defined(REALTIME_FILTERING)
53
+ environmentIrradiance=irradiance(reflectionSampler,irradianceVector,vReflectionFilteringInfo,diffuseRoughness,surfaceAlbedo,irradianceView
54
+ #ifdef IBL_CDF_FILTERING
55
+ ,icdfSampler
56
+ #endif
57
+ );
58
+ #else
59
+ environmentIrradiance=computeEnvironmentIrradiance(irradianceVector);
60
+ #endif
61
+ #endif
62
+ #elif defined(USEIRRADIANCEMAP)
63
+ #ifdef REFLECTIONMAP_3D
64
+ vec4 environmentIrradianceFromTexture=sampleReflection(irradianceSampler,irradianceVector);
65
+ #else
66
+ vec4 environmentIrradianceFromTexture=sampleReflection(irradianceSampler,reflectionCoords);
67
+ #endif
68
+ environmentIrradiance=environmentIrradianceFromTexture.rgb;
69
+ #ifdef RGBDREFLECTION
70
+ environmentIrradiance.rgb=fromRGBD(environmentIrradianceFromTexture);
71
+ #endif
72
+ #ifdef GAMMAREFLECTION
73
+ environmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);
74
+ #endif
75
+ #ifdef USE_IRRADIANCE_DOMINANT_DIRECTION
76
+ vec3 Ls=normalize(reflectionDominantDirection);float NoL=dot(irradianceVector,Ls);float NoV=dot(irradianceVector,irradianceView);vec3 diffuseRoughnessTerm=vec3(1.0);
77
+ #if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON
78
+ float LoV=dot (Ls,irradianceView);float mag=length(reflectionDominantDirection)*2.0;vec3 clampedAlbedo=clamp(surfaceAlbedo,vec3(0.1),vec3(1.0));diffuseRoughnessTerm=diffuseBRDF_EON(clampedAlbedo,diffuseRoughness,NoL,NoV,LoV)*PI;diffuseRoughnessTerm=diffuseRoughnessTerm/clampedAlbedo;diffuseRoughnessTerm=mix(vec3(1.0),diffuseRoughnessTerm,sqrt(clamp(mag*NoV,0.0,1.0)));
79
+ #elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY
80
+ vec3 H=(irradianceView+Ls)*0.5;float VoH=dot(irradianceView,H);diffuseRoughnessTerm=vec3(diffuseBRDF_Burley(NoL,NoV,VoH,diffuseRoughness)*PI);
81
+ #endif
82
+ environmentIrradiance=environmentIrradiance.rgb*diffuseRoughnessTerm;
83
+ #endif
84
+ #endif
85
+ environmentIrradiance*=vReflectionInfos.x;return environmentIrradiance;}
86
+ #define pbr_inline
87
+ #ifdef REFLECTIONMAP_3D
88
+ vec3 createReflectionCoords(
89
+ #else
90
+ vec2 createReflectionCoords(
91
+ #endif
92
+ in vec3 vPositionW
93
+ ,in vec3 normalW
94
+ )
95
+ {vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);
96
+ #ifdef REFLECTIONMAP_OPPOSITEZ
97
+ reflectionVector.z*=-1.0;
98
+ #endif
99
+ #ifdef REFLECTIONMAP_3D
100
+ vec3 reflectionCoords=reflectionVector;
101
+ #else
102
+ vec2 reflectionCoords=reflectionVector.xy;
103
+ #ifdef REFLECTIONMAP_PROJECTION
104
+ reflectionCoords/=reflectionVector.z;
105
+ #endif
106
+ reflectionCoords.y=1.0-reflectionCoords.y;
107
+ #endif
108
+ return reflectionCoords;}
109
+ #define pbr_inline
110
+ #define inline
111
+ vec3 sampleRadiance(
112
+ in float alphaG
113
+ ,in vec3 vReflectionMicrosurfaceInfos
114
+ ,in vec2 vReflectionInfos
115
+ ,in geometryInfoOutParams geoInfo
116
+ #ifdef REFLECTIONMAP_3D
117
+ ,in samplerCube reflectionSampler
118
+ ,const vec3 reflectionCoords
119
+ #else
120
+ ,in sampler2D reflectionSampler
121
+ ,const vec2 reflectionCoords
122
+ #endif
123
+ #ifdef REALTIME_FILTERING
124
+ ,in vec2 vReflectionFilteringInfo
125
+ #endif
126
+ )
127
+ {vec4 environmentRadiance=vec4(0.,0.,0.,0.);
128
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
129
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);
130
+ #elif defined(LINEARSPECULARREFLECTION)
131
+ float reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);
132
+ #else
133
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);
134
+ #endif
135
+ reflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;
136
+ #ifdef REALTIME_FILTERING
137
+ environmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0);
138
+ #else
139
+ environmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);
140
+ #endif
141
+ #ifdef RGBDREFLECTION
142
+ environmentRadiance.rgb=fromRGBD(environmentRadiance);
143
+ #endif
144
+ #ifdef GAMMAREFLECTION
145
+ environmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);
146
+ #endif
147
+ environmentRadiance.rgb*=vec3(vReflectionInfos.x);return environmentRadiance.rgb;}
148
+ #if defined(ANISOTROPIC)
149
+ #define pbr_inline
150
+ #define inline
151
+ vec3 sampleRadianceAnisotropic(
152
+ in float alphaG
153
+ ,in vec3 vReflectionMicrosurfaceInfos
154
+ ,in vec2 vReflectionInfos
155
+ ,in geometryInfoAnisoOutParams geoInfo
156
+ ,const vec3 normalW
157
+ ,const vec3 viewDirectionW
158
+ ,const vec3 positionW
159
+ ,const vec3 noise
160
+ #ifdef REFLECTIONMAP_3D
161
+ ,in samplerCube reflectionSampler
162
+ #else
163
+ ,in sampler2D reflectionSampler
164
+ #endif
165
+ #ifdef REALTIME_FILTERING
166
+ ,in vec2 vReflectionFilteringInfo
167
+ #endif
168
+ )
169
+ {vec4 environmentRadiance=vec4(0.,0.,0.,0.);float alphaT=alphaG*sqrt(2.0/(1.0+(1.0-geoInfo.anisotropy)*(1.0-geoInfo.anisotropy)));float alphaB=(1.0-geoInfo.anisotropy)*alphaT;alphaG=alphaB;
170
+ #if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)
171
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);
172
+ #elif defined(LINEARSPECULARREFLECTION)
173
+ float reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);
174
+ #else
175
+ float reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);
176
+ #endif
177
+ reflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;
178
+ #ifdef REALTIME_FILTERING
179
+ vec3 view=(reflectionMatrix*vec4(viewDirectionW,0.0)).xyz;vec3 tangent=(reflectionMatrix*vec4(geoInfo.anisotropicTangent,0.0)).xyz;vec3 bitangent=(reflectionMatrix*vec4(geoInfo.anisotropicBitangent,0.0)).xyz;vec3 normal=(reflectionMatrix*vec4(normalW,0.0)).xyz;
180
+ #ifdef REFLECTIONMAP_OPPOSITEZ
181
+ view.z*=-1.0;tangent.z*=-1.0;bitangent.z*=-1.0;normal.z*=-1.0;
182
+ #endif
183
+ environmentRadiance =
184
+ vec4(radianceAnisotropic(alphaT,alphaB,reflectionSampler,
185
+ view,tangent,
186
+ bitangent,normal,
187
+ vReflectionFilteringInfo,noise.xy),
188
+ 1.0);
189
+ #else
190
+ const int samples=16;vec4 radianceSample=vec4(0.0);vec3 reflectionCoords=vec3(0.0);float sample_weight=0.0;float total_weight=0.0;float step=1.0/float(max(samples-1,1));for (int i=0; i<samples; ++i) {float t=mix(-1.0,1.0,float(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);vec3 bentNormal;if (t<0.0) {float blend=t+1.0;bentNormal=normalize(mix(-geoInfo.anisotropicTangent,normalW,blend));} else if (t>0.0) {float blend=t;bentNormal=normalize(mix(normalW,geoInfo.anisotropicTangent,blend));} else {bentNormal=normalW;}
191
+ reflectionCoords=createReflectionCoords(positionW,bentNormal);radianceSample=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);
192
+ #ifdef RGBDREFLECTION
193
+ environmentRadiance.rgb+=sample_weight*fromRGBD(radianceSample);
194
+ #elif defined(GAMMAREFLECTION)
195
+ environmentRadiance.rgb+=sample_weight*toLinearSpace(radianceSample.rgb);
196
+ #else
197
+ environmentRadiance.rgb+=sample_weight*radianceSample.rgb;
198
+ #endif
199
+ total_weight+=sample_weight;}
200
+ environmentRadiance=vec4(environmentRadiance.xyz/float(total_weight),1.0);
201
+ #endif
202
+ environmentRadiance.rgb*=vec3(vReflectionInfos.x);return environmentRadiance.rgb;}
203
+ #endif
204
+ #define pbr_inline
205
+ vec3 conductorIblFresnel(in ReflectanceParams reflectance,in float NdotV,in float roughness,in vec3 environmentBrdf)
206
+ {
207
+ #if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)
208
+ vec3 albedoF0=mix(reflectance.coloredF0,pow(reflectance.coloredF0,vec3(1.4)),roughness);return getF82Specular(NdotV,albedoF0,reflectance.coloredF90,roughness);
209
+ #else
210
+ return getReflectanceFromBRDFLookup(reflectance.coloredF0,reflectance.coloredF90,environmentBrdf);
211
+ #endif
212
+ }
213
+ #endif
214
+ `;
215
+ // Sideeffect
216
+ if (!ShaderStore.IncludesShadersStore[name]) {
217
+ ShaderStore.IncludesShadersStore[name] = shader;
218
+ }
219
+ /** @internal */
220
+ export const openpbrIblFunctions = { name, shader };
221
+ //# sourceMappingURL=openpbrIblFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrIblFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkNd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,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 = \"openpbrIblFunctions\";\nconst shader = `#ifdef REFLECTION\nvec3 sampleIrradiance(\nin vec3 surfaceNormal\n#if defined(NORMAL) && defined(USESPHERICALINVERTEX)\n,in vec3 vEnvironmentIrradianceSH\n#endif\n#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))\n,in mat4 iblMatrix\n#endif\n#ifdef USEIRRADIANCEMAP\n#ifdef REFLECTIONMAP_3D\n,in samplerCube irradianceSampler\n#else\n,in sampler2D irradianceSampler\n#endif\n#ifdef USE_IRRADIANCE_DOMINANT_DIRECTION\n,in vec3 reflectionDominantDirection\n#endif\n#endif\n#ifdef REALTIME_FILTERING\n,in vec2 vReflectionFilteringInfo\n#ifdef IBL_CDF_FILTERING\n,in sampler2D icdfSampler\n#endif\n#endif\n,in vec2 vReflectionInfos\n,in vec3 viewDirectionW\n,in float diffuseRoughness\n,in vec3 surfaceAlbedo\n) {vec3 environmentIrradiance=vec3(0.,0.,0.);\n#if (defined(USESPHERICALFROMREFLECTIONMAP) && (!defined(NORMAL) || !defined(USESPHERICALINVERTEX))) || (defined(USEIRRADIANCEMAP) && defined(REFLECTIONMAP_3D))\nvec3 irradianceVector=(iblMatrix*vec4(surfaceNormal,0)).xyz;vec3 irradianceView=(iblMatrix*vec4(viewDirectionW,0)).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{float NdotV=max(dot(surfaceNormal,viewDirectionW),0.0);irradianceVector=mix(irradianceVector,irradianceView,(0.5*(1.0-NdotV))*diffuseRoughness);}\n#endif\n#endif\n#ifdef REFLECTIONMAP_OPPOSITEZ\nirradianceVector.z*=-1.0;\n#endif\n#ifdef INVERTCUBICMAP\nirradianceVector.y*=-1.0;\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,irradianceVector,vReflectionFilteringInfo,diffuseRoughness,surfaceAlbedo,irradianceView\n#ifdef IBL_CDF_FILTERING\n,icdfSampler\n#endif\n);\n#else\nenvironmentIrradiance=computeEnvironmentIrradiance(irradianceVector);\n#endif\n#endif\n#elif defined(USEIRRADIANCEMAP)\n#ifdef REFLECTIONMAP_3D\nvec4 environmentIrradianceFromTexture=sampleReflection(irradianceSampler,irradianceVector);\n#else\nvec4 environmentIrradianceFromTexture=sampleReflection(irradianceSampler,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\nvec3 Ls=normalize(reflectionDominantDirection);float NoL=dot(irradianceVector,Ls);float NoV=dot(irradianceVector,irradianceView);vec3 diffuseRoughnessTerm=vec3(1.0);\n#if BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_EON\nfloat LoV=dot (Ls,irradianceView);float mag=length(reflectionDominantDirection)*2.0;vec3 clampedAlbedo=clamp(surfaceAlbedo,vec3(0.1),vec3(1.0));diffuseRoughnessTerm=diffuseBRDF_EON(clampedAlbedo,diffuseRoughness,NoL,NoV,LoV)*PI;diffuseRoughnessTerm=diffuseRoughnessTerm/clampedAlbedo;diffuseRoughnessTerm=mix(vec3(1.0),diffuseRoughnessTerm,sqrt(clamp(mag*NoV,0.0,1.0)));\n#elif BASE_DIFFUSE_MODEL==BRDF_DIFFUSE_MODEL_BURLEY\nvec3 H=(irradianceView+Ls)*0.5;float VoH=dot(irradianceView,H);diffuseRoughnessTerm=vec3(diffuseBRDF_Burley(NoL,NoV,VoH,diffuseRoughness)*PI);\n#endif\nenvironmentIrradiance=environmentIrradiance.rgb*diffuseRoughnessTerm;\n#endif\n#endif\nenvironmentIrradiance*=vReflectionInfos.x;return environmentIrradiance;}\n#define pbr_inline\n#ifdef REFLECTIONMAP_3D\nvec3 createReflectionCoords(\n#else\nvec2 createReflectionCoords(\n#endif\nin vec3 vPositionW\n,in vec3 normalW\n)\n{vec3 reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#ifdef REFLECTIONMAP_OPPOSITEZ\nreflectionVector.z*=-1.0;\n#endif\n#ifdef REFLECTIONMAP_3D\nvec3 reflectionCoords=reflectionVector;\n#else\nvec2 reflectionCoords=reflectionVector.xy;\n#ifdef REFLECTIONMAP_PROJECTION\nreflectionCoords/=reflectionVector.z;\n#endif\nreflectionCoords.y=1.0-reflectionCoords.y;\n#endif\nreturn reflectionCoords;}\n#define pbr_inline\n#define inline\nvec3 sampleRadiance(\nin float alphaG\n,in vec3 vReflectionMicrosurfaceInfos\n,in vec2 vReflectionInfos\n,in geometryInfoOutParams geoInfo\n#ifdef REFLECTIONMAP_3D\n,in samplerCube reflectionSampler\n,const vec3 reflectionCoords\n#else\n,in sampler2D reflectionSampler\n,const vec2 reflectionCoords\n#endif\n#ifdef REALTIME_FILTERING\n,in vec2 vReflectionFilteringInfo\n#endif\n)\n{vec4 environmentRadiance=vec4(0.,0.,0.,0.);\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nfloat reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);\n#elif defined(LINEARSPECULARREFLECTION)\nfloat reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);\n#else\nfloat reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);\n#endif\nreflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\n#ifdef REALTIME_FILTERING\nenvironmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0);\n#else\nenvironmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\n#endif\n#ifdef RGBDREFLECTION\nenvironmentRadiance.rgb=fromRGBD(environmentRadiance);\n#endif\n#ifdef GAMMAREFLECTION\nenvironmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);\n#endif\nenvironmentRadiance.rgb*=vec3(vReflectionInfos.x);return environmentRadiance.rgb;}\n#if defined(ANISOTROPIC)\n#define pbr_inline\n#define inline\nvec3 sampleRadianceAnisotropic(\nin float alphaG\n,in vec3 vReflectionMicrosurfaceInfos\n,in vec2 vReflectionInfos\n,in geometryInfoAnisoOutParams geoInfo\n,const vec3 normalW\n,const vec3 viewDirectionW\n,const vec3 positionW\n,const vec3 noise\n#ifdef REFLECTIONMAP_3D\n,in samplerCube reflectionSampler\n#else\n,in sampler2D reflectionSampler\n#endif\n#ifdef REALTIME_FILTERING\n,in vec2 vReflectionFilteringInfo\n#endif\n)\n{vec4 environmentRadiance=vec4(0.,0.,0.,0.);float alphaT=alphaG*sqrt(2.0/(1.0+(1.0-geoInfo.anisotropy)*(1.0-geoInfo.anisotropy)));float alphaB=(1.0-geoInfo.anisotropy)*alphaT;alphaG=alphaB;\n#if defined(LODINREFLECTIONALPHA) && !defined(REFLECTIONMAP_SKYBOX)\nfloat reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,geoInfo.NdotVUnclamped);\n#elif defined(LINEARSPECULARREFLECTION)\nfloat reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);\n#else\nfloat reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);\n#endif\nreflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\n#ifdef REALTIME_FILTERING\nvec3 view=(reflectionMatrix*vec4(viewDirectionW,0.0)).xyz;vec3 tangent=(reflectionMatrix*vec4(geoInfo.anisotropicTangent,0.0)).xyz;vec3 bitangent=(reflectionMatrix*vec4(geoInfo.anisotropicBitangent,0.0)).xyz;vec3 normal=(reflectionMatrix*vec4(normalW,0.0)).xyz;\n#ifdef REFLECTIONMAP_OPPOSITEZ\nview.z*=-1.0;tangent.z*=-1.0;bitangent.z*=-1.0;normal.z*=-1.0;\n#endif\nenvironmentRadiance =\nvec4(radianceAnisotropic(alphaT,alphaB,reflectionSampler,\nview,tangent,\nbitangent,normal,\nvReflectionFilteringInfo,noise.xy),\n1.0);\n#else\nconst int samples=16;vec4 radianceSample=vec4(0.0);vec3 reflectionCoords=vec3(0.0);float sample_weight=0.0;float total_weight=0.0;float step=1.0/float(max(samples-1,1));for (int i=0; i<samples; ++i) {float t=mix(-1.0,1.0,float(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);vec3 bentNormal;if (t<0.0) {float blend=t+1.0;bentNormal=normalize(mix(-geoInfo.anisotropicTangent,normalW,blend));} else if (t>0.0) {float blend=t;bentNormal=normalize(mix(normalW,geoInfo.anisotropicTangent,blend));} else {bentNormal=normalW;}\nreflectionCoords=createReflectionCoords(positionW,bentNormal);radianceSample=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\n#ifdef RGBDREFLECTION\nenvironmentRadiance.rgb+=sample_weight*fromRGBD(radianceSample);\n#elif defined(GAMMAREFLECTION)\nenvironmentRadiance.rgb+=sample_weight*toLinearSpace(radianceSample.rgb);\n#else\nenvironmentRadiance.rgb+=sample_weight*radianceSample.rgb;\n#endif\ntotal_weight+=sample_weight;}\nenvironmentRadiance=vec4(environmentRadiance.xyz/float(total_weight),1.0);\n#endif\nenvironmentRadiance.rgb*=vec3(vReflectionInfos.x);return environmentRadiance.rgb;}\n#endif\n#define pbr_inline\nvec3 conductorIblFresnel(in ReflectanceParams reflectance,in float NdotV,in float roughness,in vec3 environmentBrdf)\n{\n#if (CONDUCTOR_SPECULAR_MODEL==CONDUCTOR_SPECULAR_MODEL_OPENPBR)\nvec3 albedoF0=mix(reflectance.coloredF0,pow(reflectance.coloredF0,vec3(1.4)),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.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrIblFunctions = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrNormalMapFragment: {
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 = `vec2 uvOffset=vec2(0.0,0.0);
5
+ #if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL) || defined(PARALLAX) || defined(DETAIL)
6
+ #ifdef NORMALXYSCALE
7
+ float normalScale=1.0;
8
+ #elif defined(GEOMETRY_NORMAL)
9
+ float normalScale=vGeometryNormalInfos.y;
10
+ #else
11
+ float normalScale=1.0;
12
+ #endif
13
+ #if defined(TANGENT) && defined(NORMAL)
14
+ mat3 TBN=vTBN;
15
+ #elif defined(GEOMETRY_NORMAL)
16
+ vec2 TBNUV=gl_FrontFacing ? vGeometryNormalUV : -vGeometryNormalUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);
17
+ #else
18
+ vec2 TBNUV=gl_FrontFacing ? vDetailUV : -vDetailUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));
19
+ #endif
20
+ #elif defined(ANISOTROPIC)
21
+ #if defined(TANGENT) && defined(NORMAL)
22
+ mat3 TBN=vTBN;
23
+ #else
24
+ vec2 TBNUV=gl_FrontFacing ? vMainUV1 : -vMainUV1;mat3 TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));
25
+ #endif
26
+ #endif
27
+ #ifdef PARALLAX
28
+ mat3 invTBN=transposeMat3(TBN);
29
+ #ifdef PARALLAXOCCLUSION
30
+ #else
31
+ #endif
32
+ #endif
33
+ #ifdef DETAIL
34
+ vec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset);vec2 detailNormalRG=detailColor.wy*2.0-1.0;float detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));vec3 detailNormal=vec3(detailNormalRG,detailNormalB);
35
+ #endif
36
+ #ifdef GEOMETRY_COAT_NORMAL
37
+ coatNormalW=perturbNormal(TBN,texture2D(geometryCoatNormalSampler,vGeometryCoatNormalUV+uvOffset).xyz,vGeometryCoatNormalInfos.y);
38
+ #endif
39
+ #ifdef GEOMETRY_NORMAL
40
+ #ifdef OBJECTSPACE_NORMALMAP
41
+ #define CUSTOM_FRAGMENT_BUMP_FRAGMENT
42
+ normalW=normalize(texture2D(geometryNormalSampler,vGeometryNormalUV).xyz *2.0-1.0);normalW=normalize(mat3(normalMatrix)*normalW);
43
+ #elif !defined(DETAIL)
44
+ normalW=perturbNormal(TBN,texture2D(geometryNormalSampler,vGeometryNormalUV+uvOffset).xyz,vGeometryNormalInfos.y);
45
+ #else
46
+ vec3 sampledNormal=texture2D(geometryNormalSampler,vGeometryNormalUV+uvOffset).xyz*2.0-1.0;
47
+ #if DETAIL_NORMALBLENDMETHOD==0
48
+ detailNormal.xy*=vDetailInfos.z;vec3 blendedNormal=normalize(vec3(sampledNormal.xy+detailNormal.xy,sampledNormal.z*detailNormal.z));
49
+ #elif DETAIL_NORMALBLENDMETHOD==1
50
+ detailNormal.xy*=vDetailInfos.z;sampledNormal+=vec3(0.0,0.0,1.0);detailNormal*=vec3(-1.0,-1.0,1.0);vec3 blendedNormal=sampledNormal*dot(sampledNormal,detailNormal)/sampledNormal.z-detailNormal;
51
+ #endif
52
+ normalW=perturbNormalBase(TBN,blendedNormal,vGeometryNormalInfos.y);
53
+ #endif
54
+ #elif defined(DETAIL)
55
+ detailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);
56
+ #endif
57
+ `;
58
+ // Sideeffect
59
+ if (!ShaderStore.IncludesShadersStore[name]) {
60
+ ShaderStore.IncludesShadersStore[name] = shader;
61
+ }
62
+ /** @internal */
63
+ export const openpbrNormalMapFragment = { name, shader };
64
+ //# sourceMappingURL=openpbrNormalMapFragment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapFragment.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/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,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,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 = \"openpbrNormalMapFragment\";\nconst shader = `vec2 uvOffset=vec2(0.0,0.0);\n#if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL) || defined(PARALLAX) || defined(DETAIL)\n#ifdef NORMALXYSCALE\nfloat normalScale=1.0;\n#elif defined(GEOMETRY_NORMAL)\nfloat normalScale=vGeometryNormalInfos.y;\n#else\nfloat normalScale=1.0;\n#endif\n#if defined(TANGENT) && defined(NORMAL)\nmat3 TBN=vTBN;\n#elif defined(GEOMETRY_NORMAL)\nvec2 TBNUV=gl_FrontFacing ? vGeometryNormalUV : -vGeometryNormalUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);\n#else\nvec2 TBNUV=gl_FrontFacing ? vDetailUV : -vDetailUV;mat3 TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));\n#endif\n#elif defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nmat3 TBN=vTBN;\n#else\nvec2 TBNUV=gl_FrontFacing ? vMainUV1 : -vMainUV1;mat3 TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));\n#endif\n#endif\n#ifdef PARALLAX\nmat3 invTBN=transposeMat3(TBN);\n#ifdef PARALLAXOCCLUSION\n#else\n#endif\n#endif\n#ifdef DETAIL\nvec4 detailColor=texture2D(detailSampler,vDetailUV+uvOffset);vec2 detailNormalRG=detailColor.wy*2.0-1.0;float detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));vec3 detailNormal=vec3(detailNormalRG,detailNormalB);\n#endif\n#ifdef GEOMETRY_COAT_NORMAL\ncoatNormalW=perturbNormal(TBN,texture2D(geometryCoatNormalSampler,vGeometryCoatNormalUV+uvOffset).xyz,vGeometryCoatNormalInfos.y);\n#endif\n#ifdef GEOMETRY_NORMAL\n#ifdef OBJECTSPACE_NORMALMAP\n#define CUSTOM_FRAGMENT_BUMP_FRAGMENT\nnormalW=normalize(texture2D(geometryNormalSampler,vGeometryNormalUV).xyz *2.0-1.0);normalW=normalize(mat3(normalMatrix)*normalW);\n#elif !defined(DETAIL)\nnormalW=perturbNormal(TBN,texture2D(geometryNormalSampler,vGeometryNormalUV+uvOffset).xyz,vGeometryNormalInfos.y);\n#else\nvec3 sampledNormal=texture2D(geometryNormalSampler,vGeometryNormalUV+uvOffset).xyz*2.0-1.0;\n#if DETAIL_NORMALBLENDMETHOD==0 \ndetailNormal.xy*=vDetailInfos.z;vec3 blendedNormal=normalize(vec3(sampledNormal.xy+detailNormal.xy,sampledNormal.z*detailNormal.z));\n#elif DETAIL_NORMALBLENDMETHOD==1 \ndetailNormal.xy*=vDetailInfos.z;sampledNormal+=vec3(0.0,0.0,1.0);detailNormal*=vec3(-1.0,-1.0,1.0);vec3 blendedNormal=sampledNormal*dot(sampledNormal,detailNormal)/sampledNormal.z-detailNormal;\n#endif\nnormalW=perturbNormalBase(TBN,blendedNormal,vGeometryNormalInfos.y);\n#endif\n#elif defined(DETAIL)\ndetailNormal.xy*=vDetailInfos.z;normalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapFragment = { name, shader };\n"]}
@@ -0,0 +1,6 @@
1
+ import "./samplerFragmentDeclaration.js";
2
+ /** @internal */
3
+ export declare const openpbrNormalMapFragmentFunctions: {
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 float minSamples=4.;const float maxSamples=15.;const int iMaxSamples=15;vec2 parallaxOcclusion(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale) {float parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;vec2 vOffsetDir=normalize(vViewDirCoT.xy);vec2 vMaxOffset=vOffsetDir*parallaxLimit;float numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));float stepSize=1.0/numSamples;float currRayHeight=1.0;vec2 vCurrOffset=vec2(0,0);vec2 vLastOffset=vec2(0,0);float lastSampledHeight=1.0;float currSampledHeight=1.0;bool keepWorking=true;for (int i=0; i<iMaxSamples; i++)
16
+ {currSampledHeight=texture2D(geometryNormalSampler,texCoord+vCurrOffset).w;if (!keepWorking)
17
+ {}
18
+ else if (currSampledHeight>currRayHeight)
19
+ {float delta1=currSampledHeight-currRayHeight;float delta2=(currRayHeight+stepSize)-lastSampledHeight;float ratio=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
+ vec2 parallaxOffset(vec3 viewDir,float heightScale)
30
+ {float height=texture2D(geometryNormalSampler,vGeometryNormalUV).w;vec2 texCoordOffset=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.IncludesShadersStore[name]) {
41
+ ShaderStore.IncludesShadersStore[name] = shader;
42
+ }
43
+ /** @internal */
44
+ export const openpbrNormalMapFragmentFunctions = { name, shader };
45
+ //# sourceMappingURL=openpbrNormalMapFragmentFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapFragmentFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/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,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,iCAAiC,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 float minSamples=4.;const float maxSamples=15.;const int iMaxSamples=15;vec2 parallaxOcclusion(vec3 vViewDirCoT,vec3 vNormalCoT,vec2 texCoord,float parallaxScale) {float parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;parallaxLimit*=parallaxScale;vec2 vOffsetDir=normalize(vViewDirCoT.xy);vec2 vMaxOffset=vOffsetDir*parallaxLimit;float numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));float stepSize=1.0/numSamples;float currRayHeight=1.0;vec2 vCurrOffset=vec2(0,0);vec2 vLastOffset=vec2(0,0);float lastSampledHeight=1.0;float currSampledHeight=1.0;bool keepWorking=true;for (int i=0; i<iMaxSamples; i++)\n{currSampledHeight=texture2D(geometryNormalSampler,texCoord+vCurrOffset).w;if (!keepWorking)\n{}\nelse if (currSampledHeight>currRayHeight)\n{float delta1=currSampledHeight-currRayHeight;float delta2=(currRayHeight+stepSize)-lastSampledHeight;float ratio=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;}\nvec2 parallaxOffset(vec3 viewDir,float heightScale)\n{float height=texture2D(geometryNormalSampler,vGeometryNormalUV).w;vec2 texCoordOffset=heightScale*viewDir.xy*height;\n#ifdef PARALLAX_RHS\nreturn texCoordOffset;\n#else\nreturn -texCoordOffset;\n#endif\n}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapFragmentFunctions = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrNormalMapFragmentMainFunctions: {
3
+ name: string;
4
+ shader: string;
5
+ };
@@ -0,0 +1,72 @@
1
+ // Do not edit.
2
+ import { ShaderStore } from "../../Engines/shaderStore.js";
3
+ const name = "openpbrNormalMapFragmentMainFunctions";
4
+ const shader = `#if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC) || defined(DETAIL)
5
+ #if defined(TANGENT) && defined(NORMAL)
6
+ varying mat3 vTBN;
7
+ #endif
8
+ #ifdef OBJECTSPACE_NORMALMAP
9
+ uniform mat4 normalMatrix;
10
+ #if defined(WEBGL2) || defined(WEBGPU)
11
+ mat4 toNormalMatrix(mat4 wMatrix)
12
+ {mat4 ret=inverse(wMatrix);ret=transpose(ret);ret[0][3]=0.;ret[1][3]=0.;ret[2][3]=0.;ret[3]=vec4(0.,0.,0.,1.);return ret;}
13
+ #else
14
+ mat4 toNormalMatrix(mat4 m)
15
+ {float
16
+ a00=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],
17
+ a10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],
18
+ a20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],
19
+ a30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],
20
+ b00=a00*a11-a01*a10,
21
+ b01=a00*a12-a02*a10,
22
+ b02=a00*a13-a03*a10,
23
+ b03=a01*a12-a02*a11,
24
+ b04=a01*a13-a03*a11,
25
+ b05=a02*a13-a03*a12,
26
+ b06=a20*a31-a21*a30,
27
+ b07=a20*a32-a22*a30,
28
+ b08=a20*a33-a23*a30,
29
+ b09=a21*a32-a22*a31,
30
+ b10=a21*a33-a23*a31,
31
+ b11=a22*a33-a23*a32,
32
+ det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;mat4 mi=mat4(
33
+ a11*b11-a12*b10+a13*b09,
34
+ a02*b10-a01*b11-a03*b09,
35
+ a31*b05-a32*b04+a33*b03,
36
+ a22*b04-a21*b05-a23*b03,
37
+ a12*b08-a10*b11-a13*b07,
38
+ a00*b11-a02*b08+a03*b07,
39
+ a32*b02-a30*b05-a33*b01,
40
+ a20*b05-a22*b02+a23*b01,
41
+ a10*b10-a11*b08+a13*b06,
42
+ a01*b08-a00*b10-a03*b06,
43
+ a30*b04-a31*b02+a33*b00,
44
+ a21*b02-a20*b04-a23*b00,
45
+ a11*b07-a10*b09-a12*b06,
46
+ a00*b09-a01*b07+a02*b06,
47
+ a31*b01-a30*b03-a32*b00,
48
+ a20*b03-a21*b01+a22*b00)/det;return mat4(mi[0][0],mi[1][0],mi[2][0],mi[3][0],
49
+ mi[0][1],mi[1][1],mi[2][1],mi[3][1],
50
+ mi[0][2],mi[1][2],mi[2][2],mi[3][2],
51
+ mi[0][3],mi[1][3],mi[2][3],mi[3][3]);}
52
+ #endif
53
+ #endif
54
+ vec3 perturbNormalBase(mat3 cotangentFrame,vec3 normal,float scale)
55
+ {
56
+ #ifdef NORMALXYSCALE
57
+ normal=normalize(normal*vec3(scale,scale,1.0));
58
+ #endif
59
+ return normalize(cotangentFrame*normal);}
60
+ vec3 perturbNormal(mat3 cotangentFrame,vec3 textureSample,float scale)
61
+ {return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}
62
+ mat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv,vec2 tangentSpaceParams)
63
+ {vec3 dp1=dFdx(p);vec3 dp2=dFdy(p);vec2 duv1=dFdx(uv);vec2 duv2=dFdy(uv);vec3 dp2perp=cross(dp2,normal);vec3 dp1perp=cross(normal,dp1);vec3 tangent=dp2perp*duv1.x+dp1perp*duv2.x;vec3 bitangent=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;float det=max(dot(tangent,tangent),dot(bitangent,bitangent));float invmax=det==0.0 ? 0.0 : inversesqrt(det);return mat3(tangent*invmax,bitangent*invmax,normal);}
64
+ #endif
65
+ `;
66
+ // Sideeffect
67
+ if (!ShaderStore.IncludesShadersStore[name]) {
68
+ ShaderStore.IncludesShadersStore[name] = shader;
69
+ }
70
+ /** @internal */
71
+ export const openpbrNormalMapFragmentMainFunctions = { name, shader };
72
+ //# sourceMappingURL=openpbrNormalMapFragmentMainFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapFragmentMainFunctions.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Dd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,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 = \"openpbrNormalMapFragmentMainFunctions\";\nconst shader = `#if defined(GEOMETRY_NORMAL) || defined(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC) || defined(DETAIL)\n#if defined(TANGENT) && defined(NORMAL) \nvarying mat3 vTBN;\n#endif\n#ifdef OBJECTSPACE_NORMALMAP\nuniform mat4 normalMatrix;\n#if defined(WEBGL2) || defined(WEBGPU)\nmat4 toNormalMatrix(mat4 wMatrix)\n{mat4 ret=inverse(wMatrix);ret=transpose(ret);ret[0][3]=0.;ret[1][3]=0.;ret[2][3]=0.;ret[3]=vec4(0.,0.,0.,1.);return ret;}\n#else\nmat4 toNormalMatrix(mat4 m)\n{float\na00=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],\na10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],\na20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],\na30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],\nb00=a00*a11-a01*a10,\nb01=a00*a12-a02*a10,\nb02=a00*a13-a03*a10,\nb03=a01*a12-a02*a11,\nb04=a01*a13-a03*a11,\nb05=a02*a13-a03*a12,\nb06=a20*a31-a21*a30,\nb07=a20*a32-a22*a30,\nb08=a20*a33-a23*a30,\nb09=a21*a32-a22*a31,\nb10=a21*a33-a23*a31,\nb11=a22*a33-a23*a32,\ndet=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;mat4 mi=mat4(\na11*b11-a12*b10+a13*b09,\na02*b10-a01*b11-a03*b09,\na31*b05-a32*b04+a33*b03,\na22*b04-a21*b05-a23*b03,\na12*b08-a10*b11-a13*b07,\na00*b11-a02*b08+a03*b07,\na32*b02-a30*b05-a33*b01,\na20*b05-a22*b02+a23*b01,\na10*b10-a11*b08+a13*b06,\na01*b08-a00*b10-a03*b06,\na30*b04-a31*b02+a33*b00,\na21*b02-a20*b04-a23*b00,\na11*b07-a10*b09-a12*b06,\na00*b09-a01*b07+a02*b06,\na31*b01-a30*b03-a32*b00,\na20*b03-a21*b01+a22*b00)/det;return mat4(mi[0][0],mi[1][0],mi[2][0],mi[3][0],\nmi[0][1],mi[1][1],mi[2][1],mi[3][1],\nmi[0][2],mi[1][2],mi[2][2],mi[3][2],\nmi[0][3],mi[1][3],mi[2][3],mi[3][3]);}\n#endif\n#endif\nvec3 perturbNormalBase(mat3 cotangentFrame,vec3 normal,float scale)\n{\n#ifdef NORMALXYSCALE\nnormal=normalize(normal*vec3(scale,scale,1.0));\n#endif\nreturn normalize(cotangentFrame*normal);}\nvec3 perturbNormal(mat3 cotangentFrame,vec3 textureSample,float scale)\n{return perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);}\nmat3 cotangent_frame(vec3 normal,vec3 p,vec2 uv,vec2 tangentSpaceParams)\n{vec3 dp1=dFdx(p);vec3 dp2=dFdy(p);vec2 duv1=dFdx(uv);vec2 duv2=dFdy(uv);vec3 dp2perp=cross(dp2,normal);vec3 dp1perp=cross(normal,dp1);vec3 tangent=dp2perp*duv1.x+dp1perp*duv2.x;vec3 bitangent=dp2perp*duv1.y+dp1perp*duv2.y;tangent*=tangentSpaceParams.x;bitangent*=tangentSpaceParams.y;float det=max(dot(tangent,tangent),dot(bitangent,bitangent));float invmax=det==0.0 ? 0.0 : inversesqrt(det);return mat3(tangent*invmax,bitangent*invmax,normal);}\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapFragmentMainFunctions = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrNormalMapVertex: {
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(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC)
5
+ #if defined(TANGENT) && defined(NORMAL)
6
+ vec3 tbnNormal=normalize(normalUpdated);vec3 tbnTangent=normalize(tangentUpdated.xyz);vec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;vTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);
7
+ #endif
8
+ #endif
9
+ `;
10
+ // Sideeffect
11
+ if (!ShaderStore.IncludesShadersStore[name]) {
12
+ ShaderStore.IncludesShadersStore[name] = shader;
13
+ }
14
+ /** @internal */
15
+ export const openpbrNormalMapVertex = { name, shader };
16
+ //# sourceMappingURL=openpbrNormalMapVertex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapVertex.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/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,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,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 = \"openpbrNormalMapVertex\";\nconst shader = `#if defined(GEOMETRY_NORMAL) || defined(PARALLAX) || defined(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL)\nvec3 tbnNormal=normalize(normalUpdated);vec3 tbnTangent=normalize(tangentUpdated.xyz);vec3 tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;vTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapVertex = { name, shader };\n"]}
@@ -0,0 +1,5 @@
1
+ /** @internal */
2
+ export declare const openpbrNormalMapVertexDeclaration: {
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(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC)
5
+ #if defined(TANGENT) && defined(NORMAL)
6
+ varying mat3 vTBN;
7
+ #endif
8
+ #endif
9
+ `;
10
+ // Sideeffect
11
+ if (!ShaderStore.IncludesShadersStore[name]) {
12
+ ShaderStore.IncludesShadersStore[name] = shader;
13
+ }
14
+ /** @internal */
15
+ export const openpbrNormalMapVertexDeclaration = { name, shader };
16
+ //# sourceMappingURL=openpbrNormalMapVertexDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrNormalMapVertexDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/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,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,iCAAiC,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(GEOMETRY_COAT_NORMAL) || defined(ANISOTROPIC)\n#if defined(TANGENT) && defined(NORMAL) \nvarying mat3 vTBN;\n#endif\n#endif\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrNormalMapVertexDeclaration = { name, shader };\n"]}
@@ -0,0 +1,7 @@
1
+ import "./sceneUboDeclaration.js";
2
+ import "./meshUboDeclaration.js";
3
+ /** @internal */
4
+ export declare const openpbrUboDeclaration: {
5
+ name: string;
6
+ shader: string;
7
+ };
@@ -0,0 +1,18 @@
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 = `layout(std140,column_major) uniform;uniform Material {vec2 vTangentSpaceParams;vec4 vLightingIntensity;float pointSize;vec2 vDebugMode;vec4 cameraInfo;vec2 vReflectionInfos;mat4 reflectionMatrix;vec3 vReflectionMicrosurfaceInfos;vec3 vReflectionPosition;vec3 vReflectionSize;vec2 vReflectionFilteringInfo;vec3 vReflectionDominantDirection;vec3 vReflectionColor;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;float vBaseWeight;vec4 vBaseColor;float vBaseDiffuseRoughness;vec4 vReflectanceInfo;vec4 vSpecularColor;vec3 vSpecularAnisotropy;float vCoatWeight;vec3 vCoatColor;float vCoatRoughness;float vCoatRoughnessAnisotropy;float vCoatIor;float vCoatDarkening;vec2 vGeometryCoatTangent;vec3 vEmissionColor;vec2 vBaseWeightInfos;mat4 baseWeightMatrix;vec2 vBaseColorInfos;mat4 baseColorMatrix;vec2 vBaseDiffuseRoughnessInfos;mat4 baseDiffuseRoughnessMatrix;vec2 vBaseMetalnessInfos;mat4 baseMetalnessMatrix;vec2 vSpecularWeightInfos;mat4 specularWeightMatrix;vec2 vSpecularColorInfos;mat4 specularColorMatrix;vec2 vSpecularRoughnessInfos;mat4 specularRoughnessMatrix;vec2 vSpecularRoughnessAnisotropyInfos;mat4 specularRoughnessAnisotropyMatrix;vec2 vCoatWeightInfos;mat4 coatWeightMatrix;vec2 vCoatColorInfos;mat4 coatColorMatrix;vec2 vCoatRoughnessInfos;mat4 coatRoughnessMatrix;vec2 vCoatDarkeningInfos;mat4 coatDarkeningMatrix;vec2 vGeometryNormalInfos;mat4 geometryNormalMatrix;vec2 vGeometryTangentInfos;mat4 geometryTangentMatrix;vec2 vGeometryCoatNormalInfos;mat4 geometryCoatNormalMatrix;vec2 vGeometryCoatTangentInfos;mat4 geometryCoatTangentMatrix;vec2 vGeometryOpacityInfos;mat4 geometryOpacityMatrix;vec2 vEmissionColorInfos;mat4 emissionColorMatrix;vec2 vAmbientOcclusionInfos;mat4 ambientOcclusionMatrix;
7
+ #define ADDITIONAL_UBO_DECLARATION
8
+ };
9
+ #include<sceneUboDeclaration>
10
+ #include<meshUboDeclaration>
11
+ `;
12
+ // Sideeffect
13
+ if (!ShaderStore.IncludesShadersStore[name]) {
14
+ ShaderStore.IncludesShadersStore[name] = shader;
15
+ }
16
+ /** @internal */
17
+ export const openpbrUboDeclaration = { name, shader };
18
+ //# sourceMappingURL=openpbrUboDeclaration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openpbrUboDeclaration.js","sourceRoot":"","sources":["../../../../../dev/core/src/Shaders/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;;;;;CAKd,CAAC;AACF,aAAa;AACb,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpD,CAAC;AACD,gBAAgB;AAChB,MAAM,CAAC,MAAM,qBAAqB,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 = `layout(std140,column_major) uniform;uniform Material {vec2 vTangentSpaceParams;vec4 vLightingIntensity;float pointSize;vec2 vDebugMode;vec4 cameraInfo;vec2 vReflectionInfos;mat4 reflectionMatrix;vec3 vReflectionMicrosurfaceInfos;vec3 vReflectionPosition;vec3 vReflectionSize;vec2 vReflectionFilteringInfo;vec3 vReflectionDominantDirection;vec3 vReflectionColor;vec3 vSphericalL00;vec3 vSphericalL1_1;vec3 vSphericalL10;vec3 vSphericalL11;vec3 vSphericalL2_2;vec3 vSphericalL2_1;vec3 vSphericalL20;vec3 vSphericalL21;vec3 vSphericalL22;vec3 vSphericalX;vec3 vSphericalY;vec3 vSphericalZ;vec3 vSphericalXX_ZZ;vec3 vSphericalYY_ZZ;vec3 vSphericalZZ;vec3 vSphericalXY;vec3 vSphericalYZ;vec3 vSphericalZX;float vBaseWeight;vec4 vBaseColor;float vBaseDiffuseRoughness;vec4 vReflectanceInfo;vec4 vSpecularColor;vec3 vSpecularAnisotropy;float vCoatWeight;vec3 vCoatColor;float vCoatRoughness;float vCoatRoughnessAnisotropy;float vCoatIor;float vCoatDarkening;vec2 vGeometryCoatTangent;vec3 vEmissionColor;vec2 vBaseWeightInfos;mat4 baseWeightMatrix;vec2 vBaseColorInfos;mat4 baseColorMatrix;vec2 vBaseDiffuseRoughnessInfos;mat4 baseDiffuseRoughnessMatrix;vec2 vBaseMetalnessInfos;mat4 baseMetalnessMatrix;vec2 vSpecularWeightInfos;mat4 specularWeightMatrix;vec2 vSpecularColorInfos;mat4 specularColorMatrix;vec2 vSpecularRoughnessInfos;mat4 specularRoughnessMatrix;vec2 vSpecularRoughnessAnisotropyInfos;mat4 specularRoughnessAnisotropyMatrix;vec2 vCoatWeightInfos;mat4 coatWeightMatrix;vec2 vCoatColorInfos;mat4 coatColorMatrix;vec2 vCoatRoughnessInfos;mat4 coatRoughnessMatrix;vec2 vCoatDarkeningInfos;mat4 coatDarkeningMatrix;vec2 vGeometryNormalInfos;mat4 geometryNormalMatrix;vec2 vGeometryTangentInfos;mat4 geometryTangentMatrix;vec2 vGeometryCoatNormalInfos;mat4 geometryCoatNormalMatrix;vec2 vGeometryCoatTangentInfos;mat4 geometryCoatTangentMatrix;vec2 vGeometryOpacityInfos;mat4 geometryOpacityMatrix;vec2 vEmissionColorInfos;mat4 emissionColorMatrix;vec2 vAmbientOcclusionInfos;mat4 ambientOcclusionMatrix;\n#define ADDITIONAL_UBO_DECLARATION\n};\n#include<sceneUboDeclaration>\n#include<meshUboDeclaration>\n`;\n// Sideeffect\nif (!ShaderStore.IncludesShadersStore[name]) {\n ShaderStore.IncludesShadersStore[name] = shader;\n}\n/** @internal */\nexport const openpbrUboDeclaration = { name, shader };\n"]}
@@ -0,0 +1,6 @@
1
+ import "./decalVertexDeclaration.js";
2
+ /** @internal */
3
+ export declare const openpbrVertexDeclaration: {
4
+ name: string;
5
+ shader: string;
6
+ };