@Test public void testChildOverridesParent() { material("Common/MatDefs/Light/Lighting.j3md"); inputParentMpo(mpoFloat("AlphaDiscardThreshold", 3.12f)); inputMpo(mpoFloat("AlphaDiscardThreshold", 2.79f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 2.79f)); outDefines(def("DISCARD_ALPHA", VarType.Float, 2.79f)); }
@Test public void testFloatOverride() { material("Common/MatDefs/Light/Lighting.j3md"); inputMp(mpoFloat("AlphaDiscardThreshold", 3.12f)); inputMpo(mpoFloat("AlphaDiscardThreshold", 2.79f)); outDefines(def("DISCARD_ALPHA", VarType.Float, 2.79f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 2.79f)); }
@Test public void testForcedOverride() { material("Common/MatDefs/Light/Lighting.j3md"); inputMp(mpoFloat("AlphaDiscardThreshold", 3.12f)); inputMpo(mpoFloat("AlphaDiscardThreshold", 2.79f)); inputFpo(mpoFloat("AlphaDiscardThreshold", 1.23f)); outDefines(def("DISCARD_ALPHA", VarType.Float, 1.23f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 1.23f)); reset(); root.clearMatParamOverrides(); root.updateGeometricState(); outDefines(def("DISCARD_ALPHA", VarType.Float, 2.79f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 2.79f)); }
@Test public void testParamOnly() { material("Common/MatDefs/Light/Lighting.j3md"); inputMpo(mpoFloat("ShadowMapSize", 3.12f)); outDefines(); outUniforms(uniform("ShadowMapSize", VarType.Float, 3.12f)); }
@Test public void testFloatMpoOnly() { material("Common/MatDefs/Light/Lighting.j3md"); inputMpo(mpoFloat("AlphaDiscardThreshold", 3.12f)); outDefines(def("DISCARD_ALPHA", VarType.Float, 3.12f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 3.12f)); }
@Test public void testFloatMpZero() { material("Common/MatDefs/Light/Lighting.j3md"); inputMp(mpoFloat("AlphaDiscardThreshold", 0.0f)); outDefines(def("DISCARD_ALPHA", VarType.Float, 0.0f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 0.0f)); }
@Test public void testFloatMpOnly() { material("Common/MatDefs/Light/Lighting.j3md"); inputMp(mpoFloat("AlphaDiscardThreshold", 3.12f)); outDefines(def("DISCARD_ALPHA", VarType.Float, 3.12f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 3.12f)); }
@Test public void testOverrides_CloningScene_DoesntCloneMPO() { Node originalScene = createDummyScene(); originalScene.getChild("A").addMatParamOverride(mpoInt("int", 5)); originalScene.getChild("A").addMatParamOverride(mpoBool("bool", true)); originalScene.getChild("A").addMatParamOverride(mpoFloat("float", 3.12f)); Node clonedScene = originalScene.clone(false); validateScene(clonedScene); validateScene(originalScene); List<MatParamOverride> clonedOverrides = clonedScene.getChild("A").getLocalMatParamOverrides(); List<MatParamOverride> originalOverrides = originalScene.getChild("A").getLocalMatParamOverrides(); assertNotSame(clonedOverrides, originalOverrides); assertEquals(clonedOverrides, originalOverrides); for (int i = 0; i < clonedOverrides.size(); i++) { assertNotSame(clonedOverrides.get(i), originalOverrides.get(i)); assertEquals(clonedOverrides.get(i), originalOverrides.get(i)); } }
@Test public void testMpoDisable() { material("Common/MatDefs/Light/Lighting.j3md"); inputMp(mpoFloat("AlphaDiscardThreshold", 3.12f)); MatParamOverride override = mpoFloat("AlphaDiscardThreshold", 2.79f); inputMpo(override); outDefines(def("DISCARD_ALPHA", VarType.Float, 2.79f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 2.79f)); reset(); override.setEnabled(false); outDefines(def("DISCARD_ALPHA", VarType.Float, 3.12f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 3.12f)); reset(); override.setEnabled(true); outDefines(def("DISCARD_ALPHA", VarType.Float, 2.79f)); outUniforms(uniform("AlphaDiscardThreshold", VarType.Float, 2.79f)); }