public DualContourChunkBuilder(GraphicsDevice device, World world, ITerrainGradientFunction densityGradientFunction, float minimumSolidDensity) { _device = device; _world = world; _vertices = new Dictionary <Chunk, List <VertexPositionNormalColorLight> >(); _meshVertices = new Dictionary <Chunk, List <VertexPositionNormalColorLight> >(); _indices = new Dictionary <Chunk, List <short> >(); _positionToIndex = new Dictionary <Chunk, Dictionary <Vector3I, short> >(); _intersectingEdges = new Dictionary <Chunk, HashSet <Edge> >(); _normalVertices = new Dictionary <Chunk, List <VertexPositionColor> >(); _borderEdges = new Dictionary <Chunk, HashSet <Edge> >(); _neededBorderPositions = new Dictionary <Chunk, HashSet <Vector3I> >(); _densityGradientFunction = densityGradientFunction; _minimumSolidDensity = minimumSolidDensity; }
public DualContourDeferredColoredChunkSystem(GraphicsDevice device, ContentLibrary contentLibrary, IChunkManager chunkManager, CameraManager cameraManager, World world, ITerrainGradientFunction densityGradientFunction, float minimumSolidDensity) { _builder = new DualContourChunkBuilder(device, world, densityGradientFunction, minimumSolidDensity); _renderer = new DeferredColoredChunkRenderer(world.EngineConfiguration, contentLibrary, device, cameraManager, chunkManager); }