From 5caadf4a12eb2f4847f06c05bb3648870f01172d Mon Sep 17 00:00:00 2001 From: Mugen87 Date: Fri, 5 Jul 2024 19:32:57 +0200 Subject: [PATCH] NodeMaterial: Honor `ambientOcclusion` in basic, lambert and phong. --- src/nodes/functions/BasicLightingModel.js | 6 ++++-- src/nodes/functions/PhongLightingModel.js | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/nodes/functions/BasicLightingModel.js b/src/nodes/functions/BasicLightingModel.js index 7ff70c2bdc35a0..0d3f6566d48692 100644 --- a/src/nodes/functions/BasicLightingModel.js +++ b/src/nodes/functions/BasicLightingModel.js @@ -12,9 +12,11 @@ class BasicLightingModel extends LightingModel { } - indirectDiffuse( { reflectedLight } ) { + indirectDiffuse( { ambientOcclusion, reflectedLight } ) { - reflectedLight.indirectDiffuse.assign( diffuseColor.rgb ); + reflectedLight.indirectDiffuse.addAssign( diffuseColor.rgb ); + + reflectedLight.indirectDiffuse.mulAssign( ambientOcclusion ); } diff --git a/src/nodes/functions/PhongLightingModel.js b/src/nodes/functions/PhongLightingModel.js index 31f2a9eb4894f6..6a573c0413cb08 100644 --- a/src/nodes/functions/PhongLightingModel.js +++ b/src/nodes/functions/PhongLightingModel.js @@ -56,10 +56,12 @@ class PhongLightingModel extends BasicLightingModel { } - indirectDiffuse( { irradiance, reflectedLight } ) { + indirectDiffuse( { ambientOcclusion, irradiance, reflectedLight } ) { reflectedLight.indirectDiffuse.addAssign( irradiance.mul( BRDF_Lambert( { diffuseColor } ) ) ); + reflectedLight.indirectDiffuse.mulAssign( ambientOcclusion ); + } }