コード例 #1
0
ファイル: ChunkRenderer.cs プロジェクト: hhy5277/dwarfcorp
        public void Update(DwarfTime gameTime, Camera camera, GraphicsDevice g)
        {
            var visibleSet = new HashSet <VoxelChunk>();

            GetChunksIntersecting(camera.GetDrawFrustum(), visibleSet);
            RenderList = visibleSet.ToList();
            foreach (var chunk in visibleSet)
            {
                if (chunk.Visible == false)
                {
                    chunk.Visible = true;
                    chunk.Manager.InvalidateChunk(chunk);
                }

                chunk.RenderCycleWhenLastVisible = RenderCycle;
            }

            foreach (var chunk in RenderList)
            {
                if (chunk.RenderCycleWhenLastVisible != RenderCycle)
                {
                    chunk.Visible = false;
                }
            }

            RenderList   = visibleSet.ToList();
            RenderCycle += 1;
        }
コード例 #2
0
 public void Update(DwarfTime gameTime, Camera camera, GraphicsDevice g)
 {
     visibilityChunksTimer.Update(gameTime);
     if (visibilityChunksTimer.HasTriggered)
     {
         var visibleSet = new HashSet <VoxelChunk>();
         GetChunksIntersecting(camera.GetDrawFrustum(), visibleSet);
         RenderList = visibleSet.ToList();
     }
 }