public async Task Render_SimpleObject_StackedGeometry() { await UnitTestHelper.InitializeWithGrahicsAsync(); using (MemoryRenderTarget memRenderTarget = new MemoryRenderTarget(1024, 1024)) { memRenderTarget.ClearColor = Color4.CornflowerBlue; // Get and configure the camera PerspectiveCamera3D camera = memRenderTarget.Camera as PerspectiveCamera3D; camera.Position = new Vector3(0f, 5f, -7f); camera.Target = new Vector3(0f, 1f, 0f); camera.UpdateCamera(); await memRenderTarget.AwaitRenderAsync(); // Define scene await memRenderTarget.Scene.ManipulateSceneAsync((manipulator) => { PalletType palType = new PalletType(); palType.ContentHeight = 0f; StackedObjectType stackedType = new StackedObjectType(palType, 10); NamedOrGenericKey geoResource = manipulator.AddResource <GeometryResource>( () => new GeometryResource(stackedType)); GenericObject newObject = manipulator.AddGeneric(geoResource); newObject.RotationEuler = new Vector3(0f, EngineMath.RAD_90DEG / 2f, 0f); newObject.Scaling = new Vector3(2f, 2f, 2f); newObject.TrySetInitialVisibility(memRenderTarget.RenderLoop.ViewInformation, true); }); // Take screenshot GDI.Bitmap screenshot = await memRenderTarget.RenderLoop.GetScreenshotGdiAsync(); //screenshot.DumpToDesktop("Blub.png"); // Calculate and check difference bool isNearEqual = BitmapComparison.IsNearEqual( screenshot, Properties.Resources.ReferenceImage_SimpleObject_StackedGeometry); Assert.True(isNearEqual, "Difference to reference image is to big!"); } // Finishing checks Assert.True(GraphicsCore.Current.MainLoop.RegisteredRenderLoopCount == 0, "RenderLoops where not disposed correctly!"); }