public void EvaluateSkinnedMeshesOffscreenUpdate() { // Arrange var profile = new CullingControllerProfile(); profile.shadowMapProjectionSizeThreshold = 6; profile.shadowRendererSizeThreshold = 20; profile.shadowDistanceThreshold = 15; var settings = new CullingControllerSettings(); settings.enableAnimationCullingDistance = 20; settings.enableAnimationCulling = true; // Act var farTest = CullingControllerUtils.TestSkinnedRendererOffscreenRule(settings, 30); var nearTest = CullingControllerUtils.TestSkinnedRendererOffscreenRule(settings, 10); settings.enableAnimationCulling = false; var farTestWithCullingDisabled = CullingControllerUtils.TestSkinnedRendererOffscreenRule(settings, 30); // Assert Assert.IsTrue(nearTest); Assert.IsFalse(farTest); Assert.IsTrue(farTestWithCullingDisabled); }
public void EvaluateRendererVisibility() { //Arrange var profile = new CullingControllerProfile(); profile.emissiveSizeThreshold = 10; profile.opaqueSizeThreshold = 20; profile.visibleDistanceThreshold = 5; // Act // Truth tests var farAndBigTest = CullingControllerUtils.TestRendererVisibleRule(profile, 30, 20, false, true, true); var smallAndNearTest = CullingControllerUtils.TestRendererVisibleRule(profile, 5, 2, false, true, true); var cameraInBoundsTest = CullingControllerUtils.TestRendererVisibleRule(profile, 1, 100, true, true, true); var emissiveTest = CullingControllerUtils.TestRendererVisibleRule(profile, 15, 20, false, false, true); // Falsehood tests var farAndSmallTest = CullingControllerUtils.TestRendererVisibleRule(profile, 5, 20, false, true, true); var emissiveAndFarTest = CullingControllerUtils.TestRendererVisibleRule(profile, 5, 20, false, false, true); var farAndTransparentTest = CullingControllerUtils.TestRendererVisibleRule(profile, 1, 50, false, false, false); // Assert Assert.IsTrue(farAndBigTest); Assert.IsTrue(smallAndNearTest); Assert.IsTrue(cameraInBoundsTest); Assert.IsTrue(emissiveTest); Assert.IsFalse(farAndSmallTest); Assert.IsFalse(emissiveAndFarTest); Assert.IsFalse(farAndTransparentTest); }
public void EvaluateShadowVisibility() { // Arrange var profile = new CullingControllerProfile(); profile.shadowMapProjectionSizeThreshold = 6; profile.shadowRendererSizeThreshold = 20; profile.shadowDistanceThreshold = 15; // Act var nearTest = CullingControllerUtils.TestRendererShadowRule(profile, 1, 5, 10); var nearButSmallTexel = CullingControllerUtils.TestRendererShadowRule(profile, 1, 5, 1); var farAndBigEnough = CullingControllerUtils.TestRendererShadowRule(profile, 30, 30, 30); var farAndSmall = CullingControllerUtils.TestRendererShadowRule(profile, 10, 30, 30); var farAndSmallTexel = CullingControllerUtils.TestRendererShadowRule(profile, 10, 30, 1); // Assert Assert.IsTrue(nearTest); Assert.IsTrue(farAndBigEnough); Assert.IsFalse(nearButSmallTexel); Assert.IsFalse(farAndSmall); Assert.IsFalse(farAndSmallTexel); }