@@ -259,6 +259,10 @@ SAssetBundle CMitsubaLoader::loadAsset(system::IFile* _file, const IAssetLoader:
259259 {
260260 return this ->interm_getAssetInHierarchy (filename,ctx.inner .params ,_hierarchyLevel+hierarchyOffset,ctx.override_ );
261261 };
262+ ctx.interm_getImageViewInHierarchy = [&](const char * filename, const uint16_t hierarchyOffset)->SAssetBundle
263+ {
264+ return this ->interm_getImageViewInHierarchy <std::string>(filename,ctx.inner .params ,_hierarchyLevel+hierarchyOffset,ctx.override_ );
265+ };
262266 //
263267 ctx.scene ->m_ambientLight = result.ambient ;
264268
@@ -448,7 +452,7 @@ parameter_t SContext::getTexture(const CElementTexture* const rootTex, hlsl::flo
448452 {
449453 assert (tex->type ==CElementTexture::Type::BITMAP);
450454 const auto & bitmap = tex->bitmap ;
451- SAssetBundle viewBundle = {}; // interm_getImageViewInHierarchy(tex->bitmap.filename,/*ICPUScene::MATERIAL_IMAGES_HIERARCHY_LEVELS_BELOW*/1);
455+ SAssetBundle viewBundle = interm_getImageViewInHierarchy (tex->bitmap .filename ,/* ICPUScene::MATERIAL_IMAGES_HIERARCHY_LEVELS_BELOW*/ 1 );
452456 if (auto contents=viewBundle.getContents (); !contents.empty ())
453457 {
454458 if (bitmap.channel !=CElementTexture::Bitmap::CHANNEL::INVALID)
@@ -498,9 +502,6 @@ parameter_t SContext::getTexture(const CElementTexture* const rootTex, hlsl::flo
498502 // TODO: embed the gamma in the material compiler Frontend
499503 // or adjust gamma on pixels (painful and long process)
500504 assert (std::isnan (bitmap.gamma ));
501- {
502- _NBL_DEBUG_BREAK_IF (true );
503- }
504505 auto & transform = *outUvTransform;
505506 transform[0 ][0 ] = bitmap.uscale ;
506507 transform[0 ][2 ] = bitmap.uoffset ;
@@ -915,7 +916,7 @@ auto SContext::genMaterial(const CElementBSDF* bsdf, system::ISystem* debugFileW
915916 break ;
916917 }
917918 default :
918- assert (false ); // we shouldn't get this case here
919+ // assert(false); // we shouldn't get this case here
919920 return {};
920921 }
921922 assert (!leaf->brdfBottom );
@@ -926,6 +927,8 @@ auto SContext::genMaterial(const CElementBSDF* bsdf, system::ISystem* debugFileW
926927 if (bsdf->isMeta ()) // TODO: temporary
927928 return {};
928929 const auto rootH = createMistubaLeaf (bsdf);
930+ if (!rootH)
931+ return {};
929932 // material compiler is designed so that we don't need to reciprocate the BRDFs as we go through layers as long as observer is still on the same side
930933
931934#if 0
0 commit comments