public void OnLoad() { var dir = Directory.GetCurrentDirectory(); ResourceGroupManager.Instance.AddResourceLocation(dir, "Folder"); //MaterialManager.Instance.Initialize(); _scene = _root.CreateSceneManager("DefaultSceneManager", "SLSharpInstance"); _scene.ClearScene(); Bindings.Axiom.SLSharp.Init(); Shader.DebugMode = true; //Shader.DebugMode = true; _clipmap = new Clipmap(_scene); RecalcHeight(); _camera = _scene.CreateCamera("MainCamera"); _camera.Position = new Vector3(0, 0, 5); _camera.LookAt(Vector3.Zero); _camera.Near = 0.001f; _camera.Far = 20.0f; _camera.AutoAspectRatio = true; var vp = _window.AddViewport(_camera); vp.BackgroundColor = ColorEx.CornflowerBlue; }
public void OnLoad() { var dir = Directory.GetCurrentDirectory(); ResourceGroupManager.Singleton.AddResourceLocation(dir, "FileSystem"); MaterialManager.Singleton.Initialise(); _scene = _root.CreateSceneManager("DefaultSceneManager", "SLSharpInstance"); _scene.ClearScene(); Bindings.MOGRE.SLSharp.Init(); Shader.DebugMode = true; //Shader.DebugMode = true; _clipmap = new Clipmap(_scene); RecalcHeight(); _camera = _scene.CreateCamera("MainCamera"); _camera.Position = new Vector3(0, 0, 5); _camera.LookAt(Vector3.ZERO); _camera.NearClipDistance = 0.001f; _camera.FarClipDistance = 20.0f; _camera.AutoAspectRatio = true; var vp = _window.AddViewport(_camera); vp.BackgroundColour = ColourValue.Blue; }
// Updates our clipmap region. Has to be set from the outside! private void UpdateRanges() { // Make sure horizontal ranges are always correct HorizontalChunkLoadRadius = Mathf.Max(HorizontalMinRange, HorizontalChunkLoadRadius); HorizontalChunkLoadRadius = Mathf.Min(HorizontalMaxRange - 1, HorizontalChunkLoadRadius); // Make sure vertical ranges are always correct VerticalChunkLoadRadius = Mathf.Max(VerticalMinRange, VerticalChunkLoadRadius); VerticalChunkLoadRadius = Mathf.Min(VerticalMaxRange - 1, VerticalChunkLoadRadius); bool isDifferenceXZ = HorizontalChunkLoadRadius != m_chunkHorizontalLoadRadiusPrev || m_chunkPositions == null; bool isDifferenceY = VerticalChunkLoadRadius != m_chunkVerticalLoadRadiusPrev; m_chunkHorizontalLoadRadiusPrev = HorizontalChunkLoadRadius; m_chunkVerticalLoadRadiusPrev = VerticalChunkLoadRadius; // Rebuild precomputed chunk positions if (isDifferenceXZ) { m_chunkPositions = ChunkLoadOrder.ChunkPositions(HorizontalChunkLoadRadius); } // Invalidate prev pos so that updated ranges can take effect right away if (isDifferenceXZ || isDifferenceY || HorizontalChunkLoadRadius != m_chunkHorizontalLoadRadiusPrev || VerticalChunkLoadRadius != m_chunkVerticalLoadRadiusPrev) { m_clipmap = new Clipmap( HorizontalChunkLoadRadius, HorizontalChunkLoadRadius + 1, VerticalChunkLoadRadius, VerticalChunkLoadRadius + 1 ); m_clipmap.Init(0, 0); m_viewerPos = m_viewerPos + Vector3Int.one; // Invalidate prev pos so that updated ranges can take effect right away } }
protected override void OnUpdateRanges() { m_clipmap = new Clipmap( HorizontalChunkLoadRadius, VerticalChunkLoadRadius, VerticalChunkLoadRadius + 1 ); m_clipmap.Init(0, 0); }