/// <summary> /// Renders a test where the GBuffer is displayed containing a sphere with provided maps. /// </summary> private void testGBufferSphere(ITexture diffuse, ITexture normal, ITexture specular) { var game = createGame(); var pool = createTexturePool(game); var txDiffuse = diffuse == null ? null : pool.LoadTexture(diffuse); var txNormal = normal == null ? null : pool.LoadTexture(normal); var txSpecular = specular == null ? null : pool.LoadTexture(specular); var mat = new DeferredMaterial(game, txDiffuse, txNormal, txSpecular); var part = RenderingTestsHelper.CreateSphereMeshPart(); var fact = new MeshRenderDataFactory(game, null, null); var partData = fact.CreateMeshPartData(part); var buffer = createGBuffer(game); var perObject = DeferredMaterial.CreatePerObjectCB(game); var ctx = game.Device.ImmediateContext; perObject.UpdatePerObjectBuffer(ctx, Matrix.Identity); var scene = new RenderingTestsHelper.SimpleLightedScene(game, buffer); game.GameLoopEvent += delegate { ctx.ClearState(); buffer.Clear(); buffer.SetTargetsToOutputMerger(); mat.SetCamera(game.Camera.View, game.Camera.Projection); mat.SetToContext(ctx); mat.SetPerObjectBuffer(ctx, perObject); partData.Draw(ctx); scene.Render(); }; game.Run(); }
public VoxelCustomRenderer(DX11Game game, DeferredRenderer dRenderer, DualContouringMeshBuilder dcMeshBuilder, DualContouringAlgorithm dcAlgo, MeshRenderDataFactory renderDataFactory) { this.game = game; this.dRenderer = dRenderer; this.dcMeshBuilder = dcMeshBuilder; this.dcAlgo = dcAlgo; this.renderDataFactory = renderDataFactory; var tex = new RAMTexture(); defaultMaterial = new DCVoxelMaterial() { Texture = DCFiles.UVCheckerMap11_512 }; objectBuffer = DeferredMaterial.CreatePerObjectCB(game); }