@@ -103,7 +103,6 @@ export class ReflectionProbe {
}
this._renderTargetTexture = new RenderTargetTexture(name, size, scene, generateMipMaps, true, textureType, true);
-
this._renderTargetTexture.onBeforeRenderObservable.add((faceIndex: number) => {
switch (faceIndex) {
case 0:
@@ -123,7 +123,6 @@
vec3 irradiance(samplerCube inputTexture, vec3 N, vec2 filteringInfo) {
vec3 n = normalize(N);
vec3 result = vec3(0.0);
vec3 tangent = abs(n.z) < 0.999 ? vec3(0., 0., 1.) : vec3(1., 0., 0.);
tangent = normalize(cross(tangent, n));
@@ -261,8 +261,12 @@
irradianceVector.z *= -1.0;
#endif
+ #ifdef INVERTCUBICMAP
+ irradianceVector.y *= -1.0;
+ #endif
+
#if defined(WEBGL2) && defined(REALTIME_FILTERING)
- environmentIrradiance = irradiance(reflectionSampler, vec3(irradianceVector.x, -irradianceVector.y, irradianceVector.z), vReflectionFilteringInfo);
+ environmentIrradiance = irradiance(reflectionSampler, irradianceVector, vReflectionFilteringInfo);
#else
environmentIrradiance = computeEnvironmentIrradiance(irradianceVector);
@@ -308,12 +308,19 @@ struct subSurfaceOutParams
#ifdef REFLECTIONMAP_OPPOSITEZ
vec3 irradianceVector = irradianceVector_;
#if defined(USESPHERICALFROMREFLECTIONMAP)
- vec3 refractionIrradiance = computeEnvironmentIrradiance(-irradianceVector);
+ #if defined(WEBGL2) && defined(REALTIME_FILTERING)
+ vec3 refractionIrradiance = irradiance(reflectionSampler, -irradianceVector, vReflectionFilteringInfo);
+ #else
+ vec3 refractionIrradiance = computeEnvironmentIrradiance(-irradianceVector);
#elif defined(USEIRRADIANCEMAP)
#ifdef REFLECTIONMAP_3D
vec3 irradianceCoords = irradianceVector;