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); }
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); }
void Dispose(bool disposing) { if (disposed) { return; } if (disposing) { ChunkEffect.Dispose(); } disposed = true; }
/// <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); }
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; }
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; }