@shapediver/viewer.rendering-engine.rendering-engine-threejs 3.19.3 → 3.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/RenderingEngine.d.ts +5 -2
  2. package/dist/RenderingEngine.d.ts.map +1 -1
  3. package/dist/RenderingEngine.js +34 -15
  4. package/dist/RenderingEngine.js.map +1 -1
  5. package/dist/index.d.ts +2 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +3 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/interfaces/IRenderingEngine.d.ts +2 -1
  10. package/dist/interfaces/IRenderingEngine.d.ts.map +1 -1
  11. package/dist/loaders/EnvironmentMapLoader.d.ts.map +1 -1
  12. package/dist/loaders/EnvironmentMapLoader.js.map +1 -1
  13. package/dist/loaders/GeometryLoader.d.ts +7 -0
  14. package/dist/loaders/GeometryLoader.d.ts.map +1 -1
  15. package/dist/loaders/GeometryLoader.js +27 -6
  16. package/dist/loaders/GeometryLoader.js.map +1 -1
  17. package/dist/loaders/LightLoader.d.ts +1 -1
  18. package/dist/loaders/MaterialLoader.d.ts +5 -2
  19. package/dist/loaders/MaterialLoader.d.ts.map +1 -1
  20. package/dist/loaders/MaterialLoader.js +221 -8
  21. package/dist/loaders/MaterialLoader.js.map +1 -1
  22. package/dist/managers/RenderingManager.d.ts +5 -0
  23. package/dist/managers/RenderingManager.d.ts.map +1 -1
  24. package/dist/managers/RenderingManager.js +120 -11
  25. package/dist/managers/RenderingManager.js.map +1 -1
  26. package/dist/managers/SceneTreeManager.d.ts +1 -1
  27. package/dist/managers/SceneTreeManager.d.ts.map +1 -1
  28. package/dist/managers/SceneTreeManager.js +1 -0
  29. package/dist/managers/SceneTreeManager.js.map +1 -1
  30. package/dist/managers/postprocessing/ao/ao/AOPass.d.ts +2 -2
  31. package/dist/managers/postprocessing/ao/ao/AOPass.d.ts.map +1 -1
  32. package/dist/managers/postprocessing/ao/ao/AOPass.js +7 -4
  33. package/dist/managers/postprocessing/ao/ao/AOPass.js.map +1 -1
  34. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts +1 -1
  35. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.d.ts.map +1 -1
  36. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js +2 -1
  37. package/dist/managers/postprocessing/ao/poissionDenoise/PoissionDenoisePass.js.map +1 -1
  38. package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.d.ts +2 -2
  39. package/dist/managers/postprocessing/effects/tone-mapping/ToneMappingEffect.d.ts.map +1 -1
  40. package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts +2 -2
  41. package/dist/managers/postprocessing/utils/FullScreenQuad.d.ts.map +1 -1
  42. package/dist/managers/postprocessing/utils/NormalPass.d.ts +2 -2
  43. package/dist/managers/postprocessing/utils/NormalPass.d.ts.map +1 -1
  44. package/dist/materials/SpecularGlossinessMaterial.d.ts.map +1 -1
  45. package/dist/materials/SpecularGlossinessMaterial.js +12 -3
  46. package/dist/materials/SpecularGlossinessMaterial.js.map +1 -1
  47. package/dist/shaders/PCSS.d.ts +2 -2
  48. package/dist/shaders/PCSS.d.ts.map +1 -1
  49. package/dist/shaders/PCSS.js +108 -87
  50. package/dist/shaders/PCSS.js.map +1 -1
  51. package/dist/shaders/gem.d.ts +2 -2
  52. package/dist/shaders/gem.d.ts.map +1 -1
  53. package/dist/shaders/gem.js +24 -20
  54. package/dist/shaders/gem.js.map +1 -1
  55. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"GeometryLoader.js","sourceRoot":"","sources":["../../src/loaders/GeometryLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GeometryLoader.js","sourceRoot":"","sources":["../../src/loaders/GeometryLoader.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,6 @@ export declare class LightLoader implements ILoader {
15
15
  set shadowMapCount(value: number);
16
16
  adjustToBoundingBox(light: AbstractLight, dataChild: SDObject, boundingBox: IBox): void;
17
17
  init(): void;
18
- load(light: AbstractLight, dataChild: SDObject): THREE.Light<THREE.LightShadow<THREE.Camera> | undefined> | null;
18
+ load(light: AbstractLight, dataChild: SDObject): THREE.Light | null;
19
19
  }
20
20
  //# sourceMappingURL=LightLoader.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { GeometryData, MaterialBasicLineData, MaterialPointData, MaterialStandardData } from "@shapediver/viewer.shared.node-tree";
2
- import { type IMaterialAbstractData, MATERIAL_TYPE, PRIMITIVE_MODE } from "@shapediver/viewer.shared.types";
2
+ import { ENVIRONMENT_MAP_PBR_MODE, type IMaterialAbstractData, MATERIAL_TYPE, PRIMITIVE_MODE } from "@shapediver/viewer.shared.types";
3
3
  import { quat } from "gl-matrix";
4
4
  import * as THREE from "three";
5
5
  import { type ILoader } from "../interfaces/ILoader";
@@ -34,6 +34,7 @@ export declare class MaterialLoader implements ILoader {
34
34
  private _envMap;
35
35
  private _envMapIntensity;
36
36
  private _envMapType;
37
+ private _environmentMapPbrMode;
37
38
  private _environmentMapRotationEuler;
38
39
  private _height;
39
40
  private _lightSizeUV;
@@ -66,15 +67,17 @@ export declare class MaterialLoader implements ILoader {
66
67
  });
67
68
  assignColorCorrection(value: boolean): void;
68
69
  assignDefaultLineMaterial(): void;
70
+ private assignEnvironmentMapPbrModeToMaterial;
69
71
  assignDefaultMaterial(): void;
70
72
  assignDefaultPointMaterial(): void;
71
73
  assignEnvironmentMap(e: THREE.CubeTexture | THREE.Texture | null, type: ENVIRONMENT_MAP_TYPE): void;
72
74
  assignEnvironmentMapForUnlitMaterials(toggle: boolean): void;
75
+ assignEnvironmentMapPbrMode(value: ENVIRONMENT_MAP_PBR_MODE): void;
73
76
  assignEnvironmentMapIntensity(value: number): void;
74
77
  assignEnvironmentMapRotation(value: quat): void;
75
78
  assignPointSize(p: number): void;
76
79
  cacheSize(): number;
77
- createMaterial(type: GEOMETRY_MATERIAL_TYPE, incomingData: IMaterialAbstractData | GeometryData, materialData: IMaterialAbstractData | null, materialSettings?: MaterialSettings): THREE.Material | MultiPointsMaterial | THREE.PointsMaterial | THREE.MeshBasicMaterial | THREE.LineBasicMaterial;
80
+ createMaterial(type: GEOMETRY_MATERIAL_TYPE, incomingData: IMaterialAbstractData | GeometryData, materialData: IMaterialAbstractData | null, materialSettings?: MaterialSettings): MultiPointsMaterial | THREE.PointsMaterial | THREE.Material<THREE.MaterialEventMap> | THREE.MeshBasicMaterial | THREE.LineBasicMaterial;
78
81
  emptyMaterialCache(): void;
79
82
  getMaterialProperties(materialData: IMaterialAbstractData | null, type: GEOMETRY_MATERIAL_TYPE, materialSettings?: MaterialSettings): {
80
83
  properties: ThreeJsMaterialParameterTypes;
@@ -1 +1 @@
1
- {"version":3,"file":"MaterialLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/MaterialLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MaterialLoader.d.ts","sourceRoot":"","sources":["../../src/loaders/MaterialLoader.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,7 @@ class MaterialLoader {
66
66
  this._envMap = null;
67
67
  this._envMapIntensity = 1;
68
68
  this._envMapType = EnvironmentMapLoader_1.ENVIRONMENT_MAP_TYPE.NULL;
69
+ this._environmentMapPbrMode = viewer_shared_types_1.ENVIRONMENT_MAP_PBR_MODE.LEGACY;
69
70
  this._environmentMapRotationEuler = new THREE.Euler();
70
71
  this._height = 1020;
71
72
  this._lightSizeUV = 0.025;
@@ -77,6 +78,21 @@ class MaterialLoader {
77
78
  this._pointSize = 1.0;
78
79
  this._textureEncoding = THREE.SRGBColorSpace;
79
80
  this._threeJsTextureCache = {};
81
+ this.assignEnvironmentMapPbrModeToMaterial = (material, mode) => {
82
+ if (!(material instanceof THREE.MeshStandardMaterial))
83
+ return;
84
+ const materialWithDefines = material;
85
+ materialWithDefines.defines = materialWithDefines.defines || {};
86
+ if (mode === viewer_shared_types_1.ENVIRONMENT_MAP_PBR_MODE.LEGACY) {
87
+ materialWithDefines.defines[viewer_shared_types_1.ENVIRONMENT_MAP_PBR_MODE.LEGACY] = "";
88
+ materialWithDefines.defines["SDV_LEGACY_DFG_APPROX"] = "";
89
+ }
90
+ else {
91
+ delete materialWithDefines.defines[viewer_shared_types_1.ENVIRONMENT_MAP_PBR_MODE.LEGACY];
92
+ delete materialWithDefines.defines["SDV_LEGACY_DFG_APPROX"];
93
+ }
94
+ material.needsUpdate = true;
95
+ };
80
96
  }
81
97
  // #endregion Constructors (1)
82
98
  // #region Public Getters And Setters (12)
@@ -224,6 +240,7 @@ class MaterialLoader {
224
240
  else {
225
241
  material.copy(new THREE.MeshPhysicalMaterial(properties));
226
242
  }
243
+ this.assignEnvironmentMapPbrModeToMaterial(material, this._environmentMapPbrMode);
227
244
  material.needsUpdate = true;
228
245
  }
229
246
  }
@@ -328,6 +345,12 @@ class MaterialLoader {
328
345
  }
329
346
  }
330
347
  }
348
+ assignEnvironmentMapPbrMode(value) {
349
+ this._environmentMapPbrMode = value;
350
+ for (const cacheKey in this._materialCache) {
351
+ this.assignEnvironmentMapPbrModeToMaterial(this._materialCache[cacheKey].material, value);
352
+ }
353
+ }
331
354
  assignEnvironmentMapIntensity(value) {
332
355
  this._envMapIntensity = value;
333
356
  for (const cacheKey in this._materialCache) {
@@ -535,6 +558,7 @@ class MaterialLoader {
535
558
  return Object.entries(this._materialCache).length;
536
559
  }
537
560
  createMaterial(type, incomingData, materialData, materialSettings) {
561
+ var _a;
538
562
  const { properties, mapCount } = this.getMaterialProperties(materialData, type, materialSettings);
539
563
  this.maxMapCount = Math.max(this.maxMapCount, mapCount);
540
564
  let material;
@@ -611,6 +635,7 @@ class MaterialLoader {
611
635
  };
612
636
  if (material instanceof SpecularGlossinessMaterial_1.SpecularGlossinessMaterial ||
613
637
  material instanceof THREE.MeshPhysicalMaterial) {
638
+ (_a = material.defines) !== null && _a !== void 0 ? _a : (material.defines = {});
614
639
  material.defines["ENVMAP_TYPE_" + this._envMapType.toUpperCase()] = "";
615
640
  if (materialSettings && materialSettings.useVertexTangents)
616
641
  material.normalScale.y *= -1;
@@ -625,6 +650,7 @@ class MaterialLoader {
625
650
  }
626
651
  if (materialSettings && materialSettings.useVertexColors)
627
652
  material.vertexColors = true;
653
+ this.assignEnvironmentMapPbrModeToMaterial(material, this._environmentMapPbrMode);
628
654
  if (materialData instanceof viewer_shared_node_tree_1.MaterialStandardData ||
629
655
  materialData instanceof viewer_shared_node_tree_1.MaterialGemData ||
630
656
  materialData instanceof viewer_shared_node_tree_1.MaterialSpecularGlossinessData ||
@@ -1565,18 +1591,199 @@ var GEOMETRY_MATERIAL_TYPE;
1565
1591
  })(GEOMETRY_MATERIAL_TYPE || (GEOMETRY_MATERIAL_TYPE = {}));
1566
1592
  // #endregion Enums (1)
1567
1593
  // #region Variables (1)
1594
+ const replaceShaderFunction = (shader, signature, replacement) => {
1595
+ const start = shader.lastIndexOf(signature);
1596
+ if (start === -1)
1597
+ return shader;
1598
+ const bodyStart = shader.indexOf("{", start);
1599
+ if (bodyStart === -1)
1600
+ return shader;
1601
+ let depth = 0;
1602
+ for (let i = bodyStart; i < shader.length; i++) {
1603
+ if (shader[i] === "{")
1604
+ depth++;
1605
+ else if (shader[i] === "}") {
1606
+ depth--;
1607
+ if (depth === 0) {
1608
+ return (shader.substring(0, start) +
1609
+ replacement +
1610
+ shader.substring(i + 1));
1611
+ }
1612
+ }
1613
+ }
1614
+ return shader;
1615
+ };
1568
1616
  const adaptShaders = () => {
1569
1617
  let shader = THREE.ShaderChunk.shadowmap_pars_fragment;
1570
1618
  if (!shader.includes("PCSS implementation")) {
1571
- shader = shader.replace("#ifdef USE_SHADOWMAP", "#ifdef USE_SHADOWMAP" + PCSS_1.main);
1572
- shader = shader.replace(shader.substr(shader.indexOf("#if defined( SHADOWMAP_TYPE_PCF )"), shader.indexOf("#elif defined( SHADOWMAP_TYPE_PCF_SOFT )") -
1573
- shader.indexOf("#if defined( SHADOWMAP_TYPE_PCF )")), "#if defined( SHADOWMAP_TYPE_PCF )\n" + PCSS_1.entry);
1619
+ const getShadowSignature = "float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord )";
1620
+ const adaptedShader = replaceShaderFunction(shader, getShadowSignature, PCSS_1.getShadow);
1621
+ if (adaptedShader !== shader) {
1622
+ shader = adaptedShader.replace("#ifdef USE_SHADOWMAP", "#ifdef USE_SHADOWMAP" + PCSS_1.main);
1623
+ THREE.ShaderChunk.shadowmap_pars_fragment = shader;
1624
+ }
1625
+ }
1626
+ if (!THREE.ShaderChunk.envmap_physical_pars_fragment.includes(viewer_shared_types_1.ENVIRONMENT_MAP_PBR_MODE.LEGACY)) {
1627
+ const legacyEnvironmentMapPbrMix = `
1628
+ #ifdef ${viewer_shared_types_1.ENVIRONMENT_MAP_PBR_MODE.LEGACY}
1629
+ float sdvEnvironmentMapPbrMix = roughness * roughness;
1630
+ #else
1631
+ float sdvEnvironmentMapPbrMix = roughness * roughness * roughness * roughness;
1632
+ #endif
1633
+ reflectVec = normalize( mix( reflectVec, normal, sdvEnvironmentMapPbrMix ) );`;
1634
+ THREE.ShaderChunk.envmap_physical_pars_fragment =
1635
+ THREE.ShaderChunk.envmap_physical_pars_fragment.replace("reflectVec = normalize( mix( reflectVec, normal, pow4( roughness ) ) );", legacyEnvironmentMapPbrMix);
1636
+ THREE.ShaderChunk.envmap_physical_pars_fragment =
1637
+ THREE.ShaderChunk.envmap_physical_pars_fragment.replace("reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );", legacyEnvironmentMapPbrMix);
1574
1638
  }
1575
- THREE.ShaderChunk.shadowmap_pars_fragment = shader;
1576
- // here we replace in the background cube fragment shader the y component of the reflection vector with the negative y component and inverse the rotation in the case of a LDR environment map
1577
- // console.log(THREE.ShaderChunk.backgroundCube_frag.includes('vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );'))
1639
+ // In legacy PBR mode, restore the analytical DFG approximation from three.js r162
1640
+ // instead of the DFG lookup texture introduced in r181.
1641
+ if (!THREE.ShaderChunk.lights_physical_pars_fragment.includes("SDV_LEGACY_DFG_APPROX")) {
1642
+ // Restore the DFGApprox function that was removed in r181
1643
+ const dfgApproxFunction = `
1644
+ #ifdef SDV_LEGACY_DFG_APPROX
1645
+ vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
1646
+ float dotNV = saturate( dot( normal, viewDir ) );
1647
+ const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );
1648
+ const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );
1649
+ vec4 r = roughness * c0 + c1;
1650
+ float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;
1651
+ vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;
1652
+ return fab;
1653
+ }
1654
+ #endif`;
1655
+ // Inject DFGApprox function right before EnvironmentBRDF
1656
+ THREE.ShaderChunk.lights_physical_pars_fragment =
1657
+ THREE.ShaderChunk.lights_physical_pars_fragment.replace("vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {", dfgApproxFunction +
1658
+ "\n\nvec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {");
1659
+ // Replace the dfgLUT lookup in EnvironmentBRDF with a legacy/modern branch
1660
+ THREE.ShaderChunk.lights_physical_pars_fragment =
1661
+ THREE.ShaderChunk.lights_physical_pars_fragment.replace("\tvec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg;\n\treturn specularColor * fab.x + specularF90 * fab.y;", `\t#ifdef SDV_LEGACY_DFG_APPROX
1662
+ vec2 fab = DFGApprox( normal, viewDir, roughness );
1663
+ #else
1664
+ vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg;
1665
+ #endif
1666
+ return specularColor * fab.x + specularF90 * fab.y;`);
1667
+ // Replace the dfgLUT lookup in computeMultiscattering with a legacy/modern branch
1668
+ THREE.ShaderChunk.lights_physical_pars_fragment =
1669
+ THREE.ShaderChunk.lights_physical_pars_fragment.replace("\tfloat dotNV = saturate( dot( normal, viewDir ) );\n\tvec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg;\n\t#ifdef USE_IRIDESCENCE", `\tfloat dotNV = saturate( dot( normal, viewDir ) );
1670
+ #ifdef SDV_LEGACY_DFG_APPROX
1671
+ vec2 fab = DFGApprox( normal, viewDir, roughness );
1672
+ #else
1673
+ vec2 fab = texture2D( dfgLUT, vec2( roughness, dotNV ) ).rg;
1674
+ #endif
1675
+ #ifdef USE_IRIDESCENCE`);
1676
+ // In legacy mode, skip the multi-scattering energy compensation for direct lighting
1677
+ // that was added in r181. In r162, RE_Direct_Physical just used BRDF_GGX without compensation.
1678
+ THREE.ShaderChunk.lights_physical_pars_fragment =
1679
+ THREE.ShaderChunk.lights_physical_pars_fragment.replace("reflectedLight.directSpecular += irradiance * BRDF_GGX_Multiscatter( directLight.direction, geometryViewDir, geometryNormal, material );", `#ifdef SDV_LEGACY_DFG_APPROX
1680
+ reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );
1681
+ #else
1682
+ reflectedLight.directSpecular += irradiance * BRDF_GGX_Multiscatter( directLight.direction, geometryViewDir, geometryNormal, material );
1683
+ #endif`);
1684
+ // In legacy mode, replace RE_IndirectSpecular_Physical with the r162 single-call approach.
1685
+ // r184 splits into dielectric/metallic paths and mixes by metalness, which produces brighter results.
1686
+ const legacyIndirectSpecular = `void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {
1687
+ #ifdef USE_CLEARCOAT
1688
+ clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );
1689
+ #endif
1690
+ #ifdef USE_SHEEN
1691
+ #ifdef SDV_LEGACY_DFG_APPROX
1692
+ sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
1693
+ #else
1694
+ sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness ) * RECIPROCAL_PI;
1695
+ #endif
1696
+ #endif
1697
+ #ifdef SDV_LEGACY_DFG_APPROX
1698
+ vec3 singleScattering = vec3( 0.0 );
1699
+ vec3 multiScattering = vec3( 0.0 );
1700
+ vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
1701
+ #ifdef USE_IRIDESCENCE
1702
+ computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColorBlended, material.specularF90, material.iridescence, material.iridescenceFresnelDielectric, material.roughness, singleScattering, multiScattering );
1703
+ #else
1704
+ computeMultiscattering( geometryNormal, geometryViewDir, material.specularColorBlended, material.specularF90, material.roughness, singleScattering, multiScattering );
1705
+ #endif
1706
+ vec3 totalScattering = singleScattering + multiScattering;
1707
+ vec3 diffuse = material.diffuseContribution * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );
1708
+ reflectedLight.indirectSpecular += radiance * singleScattering;
1709
+ reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;
1710
+ reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;
1711
+ #else
1712
+ vec3 singleScatteringDielectric = vec3( 0.0 );
1713
+ vec3 multiScatteringDielectric = vec3( 0.0 );
1714
+ vec3 singleScatteringMetallic = vec3( 0.0 );
1715
+ vec3 multiScatteringMetallic = vec3( 0.0 );
1716
+ #ifdef USE_IRIDESCENCE
1717
+ computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnelDielectric, material.roughness, singleScatteringDielectric, multiScatteringDielectric );
1718
+ computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.iridescence, material.iridescenceFresnelMetallic, material.roughness, singleScatteringMetallic, multiScatteringMetallic );
1719
+ #else
1720
+ computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScatteringDielectric, multiScatteringDielectric );
1721
+ computeMultiscattering( geometryNormal, geometryViewDir, material.diffuseColor, material.specularF90, material.roughness, singleScatteringMetallic, multiScatteringMetallic );
1722
+ #endif
1723
+ vec3 singleScattering = mix( singleScatteringDielectric, singleScatteringMetallic, material.metalness );
1724
+ vec3 multiScattering = mix( multiScatteringDielectric, multiScatteringMetallic, material.metalness );
1725
+ vec3 totalScatteringDielectric = singleScatteringDielectric + multiScatteringDielectric;
1726
+ vec3 diffuse = material.diffuseContribution * ( 1.0 - totalScatteringDielectric );
1727
+ vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
1728
+ vec3 indirectSpecular = radiance * singleScattering;
1729
+ indirectSpecular += multiScattering * cosineWeightedIrradiance;
1730
+ vec3 indirectDiffuse = diffuse * cosineWeightedIrradiance;
1731
+ #ifdef USE_SHEEN
1732
+ float sheenAlbedo = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
1733
+ float sheenEnergyComp = 1.0 - max3( material.sheenColor ) * sheenAlbedo;
1734
+ indirectSpecular *= sheenEnergyComp;
1735
+ indirectDiffuse *= sheenEnergyComp;
1736
+ #endif
1737
+ reflectedLight.indirectSpecular += indirectSpecular;
1738
+ reflectedLight.indirectDiffuse += indirectDiffuse;
1739
+ #endif
1740
+ }`;
1741
+ THREE.ShaderChunk.lights_physical_pars_fragment =
1742
+ replaceShaderFunction(THREE.ShaderChunk.lights_physical_pars_fragment, "void RE_IndirectSpecular_Physical", legacyIndirectSpecular);
1743
+ // In legacy mode, use the r162 IBLSheenBRDF formula (piecewise curve-fit
1744
+ // with PI normalization). r184 changed to a different curve-fit without it.
1745
+ THREE.ShaderChunk.lights_physical_pars_fragment =
1746
+ replaceShaderFunction(THREE.ShaderChunk.lights_physical_pars_fragment, "float IBLSheenBRDF", `float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
1747
+ float dotNV = saturate( dot( normal, viewDir ) );
1748
+ #ifdef SDV_LEGACY_DFG_APPROX
1749
+ float r2 = roughness * roughness;
1750
+ float a = roughness < 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;
1751
+ float b = roughness < 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;
1752
+ float DG = exp( a * dotNV + b ) + ( roughness < 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );
1753
+ return saturate( DG * RECIPROCAL_PI );
1754
+ #else
1755
+ float r2 = roughness * roughness;
1756
+ float rInv = 1.0 / ( roughness + 0.1 );
1757
+ float a = -1.9362 + 1.0678 * roughness + 0.4573 * r2 - 0.8469 * rInv;
1758
+ float b = -0.6014 + 0.5538 * roughness - 0.4670 * r2 - 0.1255 * rInv;
1759
+ float DG = exp( a * dotNV + b );
1760
+ return saturate( DG );
1761
+ #endif
1762
+ }`);
1763
+ // In legacy mode, skip sheen energy compensation in RE_Direct_Physical
1764
+ // that was added in r181. r162 had no sheen energy comp for direct lights.
1765
+ THREE.ShaderChunk.lights_physical_pars_fragment =
1766
+ THREE.ShaderChunk.lights_physical_pars_fragment.replace("\tfloat sheenAlbedoV = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );", "#ifndef SDV_LEGACY_DFG_APPROX\n\t\tfloat sheenAlbedoV = IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );");
1767
+ // In legacy mode, restore the r162 sheen assembly in meshphysical_frag.
1768
+ // r162 multiplied outgoingLight by sheenEnergyComp before adding sheen,
1769
+ // r184 moved energy comp into RE_Direct/RE_Indirect and removed it here.
1770
+ THREE.ShaderChunk.meshphysical_frag =
1771
+ THREE.ShaderChunk.meshphysical_frag.replace("outgoingLight = outgoingLight + sheenSpecularDirect + sheenSpecularIndirect;", `#ifdef SDV_LEGACY_DFG_APPROX
1772
+ float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );
1773
+ outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;
1774
+ #else
1775
+ outgoingLight = outgoingLight + sheenSpecularDirect + sheenSpecularIndirect;
1776
+ #endif`);
1777
+ THREE.ShaderChunk.lights_physical_pars_fragment =
1778
+ THREE.ShaderChunk.lights_physical_pars_fragment.replace("\t\tirradiance *= sheenEnergyComp;", "\t\tirradiance *= sheenEnergyComp;\n\t\t#endif");
1779
+ }
1780
+ // here we replace in the background cube fragment shader the y component of the reflection vector with the negative y component in the case of a LDR environment map
1781
+ // older and newer three.js versions set up the background rotation matrix differently, so we patch both shader variants
1578
1782
  THREE.ShaderChunk.backgroundCube_frag =
1579
- THREE.ShaderChunk.backgroundCube_frag.replace("vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );", "vec4 texColor = textureCube( envMap, inverse(backgroundRotation) * vec3( flipEnvMap * vWorldDirection.x, -vWorldDirection.y, vWorldDirection.z ) );");
1783
+ THREE.ShaderChunk.backgroundCube_frag.replace("vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );", "vec4 texColor = textureCube( envMap, inverse(backgroundRotation) * vec3( flipEnvMap * vWorldDirection.x, -vWorldDirection.y, vWorldDirection.z ) );").replace("vec4 texColor = textureCube( envMap, backgroundRotation * vWorldDirection );", `
1784
+ vec3 rotatedBackgroundDir = backgroundRotation * vec3( -vWorldDirection.x, -vWorldDirection.y, vWorldDirection.z );
1785
+ vec4 texColor = textureCube( envMap, vec3( -rotatedBackgroundDir.x, rotatedBackgroundDir.y, rotatedBackgroundDir.z ) );
1786
+ `);
1580
1787
  THREE.ShaderLib.backgroundCube.fragmentShader =
1581
1788
  THREE.ShaderChunk.backgroundCube_frag;
1582
1789
  // here we replace in the envmap_physical_pars_fragment the z component of the reflection vector with the negative z component in the case of a LDR environment map
@@ -1604,7 +1811,6 @@ const adaptShaders = () => {
1604
1811
  #endif
1605
1812
  `);
1606
1813
  // here we replace in the envmap_fragment the z component of the reflection vector with the negative z component in the case of a LDR environment map
1607
- // console.log(THREE.ShaderChunk.envmap_fragment, THREE.ShaderChunk.envmap_fragment.includes('vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );'));
1608
1814
  THREE.ShaderChunk.envmap_fragment =
1609
1815
  THREE.ShaderChunk.envmap_fragment.replace("vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );", `
1610
1816
  #ifdef ENVMAP_TYPE_LDR
@@ -1612,6 +1818,13 @@ const adaptShaders = () => {
1612
1818
  #else
1613
1819
  vec4 envColor = textureCube( envMap, envMapRotation * vec3(flipEnvMap * reflectVec.x, reflectVec.zy ) );
1614
1820
  #endif
1821
+ `).replace("vec4 envColor = textureCube( envMap, envMapRotation * reflectVec );", `
1822
+ #ifdef ENVMAP_TYPE_LDR
1823
+ vec3 rotatedReflectVec = envMapRotation * vec3( -reflectVec.x, reflectVec.y, -reflectVec.z );
1824
+ vec4 envColor = textureCube( envMap, vec3( -rotatedReflectVec.x, rotatedReflectVec.y, rotatedReflectVec.z ) );
1825
+ #else
1826
+ vec4 envColor = textureCube( envMap, envMapRotation * reflectVec );
1827
+ #endif
1615
1828
  `);
1616
1829
  // here we replace the z and y component of the sampleDir in the cube_uv_reflection_fragment
1617
1830
  // console.log(THREE.ShaderChunk.cube_uv_reflection_fragment.includes('vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );'))