Esempio n. 1
0
        public ChunkMesh(string name, ChunkEffect chunkEffect)
            : base(name)
        {
            if (chunkEffect == null) throw new ArgumentNullException("chunkEffect");

            this.chunkEffect = chunkEffect;
            this.graphicsDevice = chunkEffect.GraphicsDevice;

            occlusionQuery = new OcclusionQuery(graphicsDevice);
        }
Esempio n. 2
0
        public ChunkMesh(string name, ChunkEffect chunkEffect)
            : base(name)
        {
            if (chunkEffect == null)
            {
                throw new ArgumentNullException("chunkEffect");
            }

            this.chunkEffect    = chunkEffect;
            this.graphicsDevice = chunkEffect.GraphicsDevice;

            occlusionQuery = new OcclusionQuery(graphicsDevice);
        }
Esempio n. 3
0
        void Dispose(bool disposing)
        {
            if (disposed)
            {
                return;
            }

            if (disposing)
            {
                ChunkEffect.Dispose();
            }

            disposed = true;
        }
Esempio n. 4
0
        /// <summary>
        /// チャンク メッシュを生成します。
        /// </summary>
        /// <param name="effect">チャンクのエフェクト。</param>
        /// <param name="translucent">
        /// true (半透明の場合)、false (それ以外の場合)。
        /// </param>
        /// <returns>チャンク メッシュ。</returns>
        ChunkMesh CreateMesh(ChunkEffect effect, bool translucent, int segmentX, int segmentY, int segmentZ)
        {
            meshNameBuilder.Length = 0;
            meshNameBuilder.Append((translucent) ? "TranslucentMesh" : "OpaqueMesh");
            meshNameBuilder.Append('_').AppendNumber(segmentX);
            meshNameBuilder.Append('_').AppendNumber(segmentY);
            meshNameBuilder.Append('_').AppendNumber(segmentZ);

            var name = meshNameBuilder.ToString();

            var mesh = new ChunkMesh(name, effect);

            mesh.Translucent = translucent;

            MeshCount++;

            return(mesh);
        }
Esempio n. 5
0
        public void Initialize(AssetManager assetManager, Effect chunkEffect)
        {
            if (assetManager == null)
            {
                throw new ArgumentNullException("assetManager");
            }
            if (chunkEffect == null)
            {
                throw new ArgumentNullException("chunkEffect");
            }

            AssetManager = assetManager;

            // リージョン毎にタイル カタログが異なるため、エフェクトを複製して利用。
            ChunkEffect = new ChunkEffect(chunkEffect);

            // タイル カタログのテクスチャをチャンク エフェクトへ設定。
            ChunkEffect.TileMap     = TileCatalog.TileMap;
            ChunkEffect.EmissiveMap = TileCatalog.EmissiveColorMap;
        }
Esempio n. 6
0
        public void Initialize(AssetManager assetManager, Effect chunkEffect)
        {
            if (assetManager == null) throw new ArgumentNullException("assetManager");
            if (chunkEffect == null) throw new ArgumentNullException("chunkEffect");

            AssetManager = assetManager;

            // リージョン毎にタイル カタログが異なるため、エフェクトを複製して利用。
            ChunkEffect = new ChunkEffect(chunkEffect);

            // タイル カタログのテクスチャをチャンク エフェクトへ設定。
            ChunkEffect.TileMap = TileCatalog.TileMap;
            ChunkEffect.EmissiveMap = TileCatalog.EmissiveColorMap;
        }