private void OnDestroy() { Camera.onPreRender -= Render; if (defRenderer != null) { defRenderer.Destroy(); } curRenderer = null; if (meshMan != null) { meshMan.Destroy(); } if (hmStream != null) { hmStream.Close(); } if (trnRes != null) { trnRes.Destroy(); } }
// Collect nodes for rendering public void CollectRenderNodes(Camera cam, ITerrainRenderer renderer) { curCamera = cam; camPlanes = GeometryUtility.CalculateFrustumPlanes(cam); curRenderer = renderer; // collect from root CollectRenderNodes_r(0); }
public VisionCenterUpdateSystem(Contexts contexts) { _levelManager = contexts.session.commonSession.LevelManager; if (contexts.session.clientSessionObjects.TerrainRenderer != null) { _terrainRenderer = contexts.session.clientSessionObjects.TerrainRenderer; Camera.main.gameObject.transform.position = contexts.session.commonSession.InitPosition; _terrainRenderer.SetCamera(Camera.main); } }
private void Awake() { Camera.onPreCull += Render; // leafGridSize & maxDrawnNodeGridSize must be 2^n number Debug.Assert(leafGridSize > 2 && Misc.Is2Power(leafGridSize)); Debug.Assert(maxDrawnNodeGridSize > leafGridSize && Misc.Is2Power(maxDrawnNodeGridSize)); // Determine vista node's LOD vistaLOD = 0; for (int i = leafGridSize; i <= maxDrawnNodeGridSize;) { if (i > 128) { break; } vistaLOD++; i <<= 1; } // open heightmap stream string fileName = Application.dataPath + "/ADQuadtreeTerrain/heightmap.raw16"; try { trnRes = new TerrainRes(this); hmStream = new HeightStreamRawFile(fileName, eHMFile.RAW_16, leafGridSize + 1); hmSize = hmStream.hmWidth; gemBuilder = new GeometryBuilder(this); gemBuilder.AddHeightStream(hmStream); meshMan = new QuadtreeMeshMan(this); qtree = new Quadtree(this, hmSize); defRenderer = new TerrainRendererDefault(this); curRenderer = defRenderer; } catch { Debug.Log("ADQuadtreeTerrain.Start, error happen!"); } }
public TerrainDataLoadSystem(Contexts ctx) { _levelManager = ctx.session.commonSession.LevelManager; _terrainRenderer = ctx.session.clientSessionObjects.TerrainRenderer; }