示例#1
0
        public void Draw(Camera cam)
        {
            int ctd  = (int)Math.Ceiling(cam.FarClip / celld);
            int ccx  = (int)(cam.Position.X / celld);
            int ccz  = (int)(cam.Position.Z / celld);
            var pool = Model3DPool.GetInstance();

            for (int x = Math.Max(0, ccx - ctd); x < Math.Min(floorWidth, ccx + ctd); x++)
            {
                for (int z = Math.Max(0, ccz - ctd); z < Math.Min(floorHeight, ccz + ctd); z++)
                {
                    Object3D model = pool.Acquire();
                    model.Model = plate; model.Position = new Vector3(x * celld, 0, z * celld);
                    model.Draw(cam);
                    pool.Release(model);
                }
            }
        }
示例#2
0
 private Model3DPool()
 {
     instance = this;
 }
示例#3
0
 private Model3DPool()
 {
     instance = this;
 }