Exemplo n.º 1
0
        private void Update()
        {
            if (BuildEveryFrame)
            {
                Camera cam = SceneCamera.Camera;
                if (cam.transform.rotation.Approximately(LastCameraRotation) && cam.transform.position.Approximately(LastCameraPosition))
                {
                    return;
                }
                LastCameraRotation = cam.transform.rotation;
                LastCameraPosition = cam.transform.position;

                FrustumPlanes2.FromCamera(cam, SourcePlanes, Planes);

                RenderNodes.Clear();
                BuildTerrainJob job = BuildTerrainJob.Create(Extents, cam.transform.position, Planes, RenderNodes);
                JobHandle = job.Schedule();
                BuildCount++;
            }
        }
Exemplo n.º 2
0
        public void Build()
        {
            Camera camera = SceneCamera.Camera;

            FrustumPlanes2.FromCamera(camera, SourcePlanes, Planes);

            RenderNodes.Clear();
            BuildTerrainJob job = BuildTerrainJob.Create(Extents, camera.transform.position, Planes, RenderNodes);


            var watch = System.Diagnostics.Stopwatch.StartNew();

            job.Run();

            watch.Stop();
            Debug.LogFormat("Construct: {0}", watch.ElapsedTicks);


            Debug.LogFormat("RenderNode count {0}", RenderNodes.Length);
        }