Skip to content

Commit 959e147

Browse files
committed
Fixed some bugs in material compiler
1 parent 95a38b6 commit 959e147

File tree

4 files changed

+5
-3
lines changed

4 files changed

+5
-3
lines changed

examples_tests/18.MitsubaLoader/main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ int main()
408408
}
409409
}
410410

411-
constexpr uint32_t ENVMAP_SAMPLE_COUNT = 16u;
411+
constexpr uint32_t ENVMAP_SAMPLE_COUNT = 64u;
412412
constexpr float LIGHT_INTENSITY_SCALE = 0.01f;
413413

414414
core::unordered_set<const asset::ICPURenderpassIndependentPipeline*> modifiedPipelines;

include/irr/builtin/material_compiler/glsl/common.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ void instr_eval_and_pdf_execute(in instr_t instr, in MC_precomputed_t precomp, i
593593
bool is_valid = true;
594594
bool refraction = false;
595595
#ifdef OP_DIELECTRIC
596-
if (op == OP_DIELECTRIC && irr_glsl_isTransmissionPath(currInteraction.inner.isotropic.NdotV, s.NdotL))
596+
if (irr_glsl_isTransmissionPath(currInteraction.inner.isotropic.NdotV, s.NdotL))
597597
{
598598
irr_glsl_calcAnisotropicMicrofacetCache(microfacet.inner, true, currInteraction.inner.isotropic.V.dir, s.L, currInteraction.inner.T, currInteraction.inner.B, currInteraction.inner.isotropic.N, s.NdotL, s.VdotL, eta, rcp_eta);
599599
finalizeMicrofacet(microfacet);

include/irr/builtin/material_compiler/glsl/rasterization/impl.glsl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ bxdf_eval_t runEvalStream(in MC_precomputed_t precomp, in instr_stream_t stream,
199199
irr_glsl_LightSample s = irr_glsl_createLightSample(L, currInteraction.inner);
200200
MC_microfacet_t microfacet;
201201
microfacet.inner = irr_glsl_calcAnisotropicMicrofacetCache(currInteraction.inner, s);
202+
finalizeMicrofacet(microfacet);
202203
for (uint i = 0u; i < stream.count; ++i)
203204
{
204205
instr_t instr = irr_glsl_MC_fetchInstr(stream.offset+i);

src/irr/ext/MitsubaLoader/CMitsubaMaterialCompilerFrontend.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ namespace MitsubaLoader
103103
if (tex.image)
104104
dst = std::move(tex);
105105
else
106-
dst = IR::INode::color_t(1.f, 0.f, 0.f); // red in case of no texture
106+
dst = IR::INode::color_t(0.5f, 0.5f, 0.5f); // red in case of no texture
107107
}
108108
else dst = src.value.vvalue;
109109
};
@@ -474,6 +474,7 @@ auto CMitsubaMaterialCompilerFrontend::compileToIRTree(asset::material_compiler:
474474
else
475475
ir_node = createIRNode(ir, node.bsdf);
476476
}
477+
node.ir_node = ir_node;
477478

478479
IRNode** dst = nullptr;
479480
if (node.parent_ix >= bfs.size())

0 commit comments

Comments
 (0)