public DemoPartition(DemoPartitionContext context) { if (context == null) throw new ArgumentNullException("context"); this.context = context; settings = context.Settings; heightMap = new Map<float>(settings.HeightMapWidth, settings.HeightMapHeight); terrain = new CDLODTerrain(context.Settings); terrain.HeightMap = heightMap; texture = new Texture2D(context.GraphicsDevice, settings.HeightMapWidth, settings.HeightMapWidth, false, SurfaceFormat.Single); md.Destination = heightMap; md.Seed = context.MDSeed; fastThermalErosion.HeightMap = heightMap; fastThermalErosion.Talus = 0.5f; }
protected override void LoadContent() { settings.LevelCount = levelCount; settings.LeafNodeSize = leafNodeSize; settings.PatchResolution = patchResolution; settings.MapScale = mapScale; settings.HeightScale = heightScale; settings.HeightMapWidth = heightMapWidth; settings.HeightMapHeight = heightMapHeight; var visibleRanges = new CDLODDefaultVisibleRanges(settings); visibleRanges.FinestNodeSize = finestNodeSize; visibleRanges.DetailBalance = detailBalance; visibleRanges.Initialize(); partitionContext = new DemoPartitionContext( GraphicsDevice, Content, settings, visibleRanges); partitionContext.TerrainRenderer.FogEnabled = true; partitionContext.TerrainRenderer.FogStart = fogStart; partitionContext.TerrainRenderer.FogEnd = fogEnd; partitionContext.TerrainRenderer.FogColor = fogColor; partitionContext.MDHurst = mdHurst; partitionFactory = new DemoPartitionFactory(partitionContext); var terrainScale = settings.TerrainScale; partitionManager = new PartitionManager(partitionFactory.Create, loadThreadCount, initialPartitionPoolCapacity, maxPartitionPoolCapacity); partitionManager.PartitionWidth = terrainScale.X; partitionManager.PartitionHeight = terrainScale.Z; partitionManager.ActivationRange = terrainScale.X * 3.0f; partitionManager.DeactivationRange = partitionManager.ActivationRange * 1.5f; partitionManager.EyePosition = view.Position; #region Debug spriteBatch = new SpriteBatch(GraphicsDevice); font = Content.Load<SpriteFont>("Fonts/Debug"); fillTexture = Texture2DHelper.CreateFillTexture(GraphicsDevice); helpMessageFontSize = font.MeasureString(helpMessage); BuildInformationMessage(); informationTextFontSize = font.MeasureString(stringBuilder); #endregion }
public DemoPartitionFactory(DemoPartitionContext context) { if (context == null) throw new ArgumentNullException("context"); this.context = context; }