Skip to content

Commit 447c797

Browse files
make textures load and temporarily disable assert for layered materials
1 parent 52bab85 commit 447c797

2 files changed

Lines changed: 9 additions & 5 deletions

File tree

include/nbl/ext/MitsubaLoader/SContext.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ struct SContext final
5151
const asset::IAssetLoader::SAssetLoadContext inner;
5252
asset::IAssetLoader::IAssetLoaderOverride* override_;
5353
std::function<interm_getAssetInHierarchy_t> interm_getAssetInHierarchy;
54+
std::function<interm_getAssetInHierarchy_t> interm_getImageViewInHierarchy;
5455
CMitsubaMetadata* meta;
5556
core::smart_refctd_ptr<asset::ICPUScene> scene;
5657

src/nbl/ext/MitsubaLoader/CMitsubaLoader.cpp

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)