From 8489915dd5a6e6e8133e1cb68a11eccaae45c94d Mon Sep 17 00:00:00 2001 From: Jonathan Stone Date: Wed, 10 Jan 2024 20:49:23 -0800 Subject: [PATCH] Fix irradiance generation in MaterialXView (#1647) This changelist fixes a regression to environment irradiance generation in MaterialXView, caused by a change to image caching logic for GLSL rendering in MaterialX 1.38.8. This fix restores the ability to render environment maps that are missing their pre-generated irradiance data, with irradiance being generated on the fly via spherical harmonics. --- source/MaterialXView/Viewer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/MaterialXView/Viewer.cpp b/source/MaterialXView/Viewer.cpp index f6da076f17..c6a810c2d4 100644 --- a/source/MaterialXView/Viewer.cpp +++ b/source/MaterialXView/Viewer.cpp @@ -402,7 +402,7 @@ void Viewer::loadEnvironmentLight() } // Look for an irradiance map using an expected filename convention. - mx::ImagePtr envIrradianceMap = _imageHandler->getZeroImage(); + mx::ImagePtr envIrradianceMap; if (!_normalizeEnvironment && !_splitDirectLight) { mx::FilePath envIrradiancePath = _envRadianceFilename.getParentPath() / IRRADIANCE_MAP_FOLDER / _envRadianceFilename.getBaseName(); @@ -410,7 +410,7 @@ void Viewer::loadEnvironmentLight() } // If not found, then generate an irradiance map via spherical harmonics. - if (envIrradianceMap == _imageHandler->getZeroImage()) + if (!envIrradianceMap || envIrradianceMap->getWidth() == 1) { if (_generateReferenceIrradiance) {