public void Render(VoxelStorageContext storageContext, IVoxelStorage Storage, RenderDrawContext drawContext) { if (NeedToRecreateTexture(MSAARenderTarget, new Vector3(voxelizationView.ViewSize.X, voxelizationView.ViewSize.Y, 1), PixelFormat.R8G8B8A8_UNorm, MultisampleCount.X8)) { MSAARenderTarget = Texture.New(storageContext.device, TextureDescription.New2D((int)voxelizationView.ViewSize.X, (int)voxelizationView.ViewSize.Y, new MipMapCount(false), PixelFormat.R8G8B8A8_UNorm, TextureFlags.RenderTarget, 1, GraphicsResourceUsage.Default, MultisampleCount.X8), null); } drawContext.CommandList.ResetTargets(); if (MSAARenderTarget != null) { drawContext.CommandList.SetRenderTarget(null, MSAARenderTarget); } Storage.Render(storageContext, drawContext, voxelizationView); }
public RenderView CollectViews(RenderStage stage, RenderVoxelVolume volume, VoxelStorageContext storageContext, RenderContext RenderContext) { Matrix BaseVoxelMatrix = volume.VoxelMatrix * Matrix.Identity; BaseVoxelMatrix.Invert(); BaseVoxelMatrix = BaseVoxelMatrix * Matrix.Scaling(2f, 2f, 2f); voxelizationView.View = Matrix.Identity; voxelizationView.Projection = BaseVoxelMatrix; voxelizationView.ViewProjection = voxelizationView.Projection; voxelizationView.Frustum = new BoundingFrustum(ref voxelizationView.ViewProjection); voxelizationView.CullingMode = CameraCullingMode.None; voxelizationView.NearClipPlane = 0.1f; voxelizationView.FarClipPlane = 1000.0f; voxelizationView.RenderStages.Add(stage); return(volume.Storage.CollectViews(storageContext, RenderContext, voxelizationView)); }
public void PrepareLocalStorage(VoxelStorageContext context, IVoxelStorage storage) { }