MonoGame/クラスライブラリ/VertexBufferクラス

提供: MonoBook
< MonoGame‎ | クラスライブラリ
2017年11月7日 (火) 01:52時点におけるimported>Administratorによる版 (ページの作成:「VertexBufferクラスは、ポリゴンを表示するのに使う頂点のリストである。 MonoGameでは頂点構造体を単純な配列で保持して...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

VertexBufferクラスは、ポリゴンを表示するのに使う頂点のリストである。

MonoGameでは頂点構造体を単純な配列で保持しておいてもDrawUserPrimitevesメソッドで描画できるが、VertexBufferクラスを使っておくと頂点バッファメインメモリからVRAMへ事前に転送しておけるので高速化が見込める。

C#でゴリゴリと頂点データを加工したい場合はメインメモリVRAMを行ったり来たりが相当な無駄になるのであまり向いていない。 逆にほとんどのケースが該当する「頂点データを決めたら破棄するまで変形させないもの」には使ったほうがよいとされている。 また、C#ではなくHLSL頂点シェーダー頂点バッファの加工を行う場合は必須となる。

ちなみに一部のOpenGL系プラットフォームでは一度格納すると二度と取り出せない(GetDataできない)ものも存在している。 3Dモデルの頂点データを入れて頂点シェーダーで当たり判定の範囲を動的に生成しGetDataで取得していたものが動かなくて悲しくなった。

継承

  • System.Object
    • Microsoft.Xna.Framework.Graphics.GraphicsResource
      • Microsoft.Xna.Framework.Graphics.VertexBuffer
        • Microsoft.Xna.Framework.Graphics.DynamicVertexBuffer

名前空間

構文

public class VertexBuffer : GraphicsResource

コンストラクタ

名称 概要
protected VertexBuffer(GraphicsDevice, VertexDeclaration, int, BufferUsage, bool)
public VertexBuffer(GraphicsDevice, VertexDeclaration, int, BufferUsage)
public VertexBuffer(GraphicsDevice, Type, int, BufferUsage)

プロパティ

名称 概要
public BufferUsage
public GraphicsDevice (GameResourceクラスから継承)
public IsDisposed (GameResourceクラスから継承)
public Name (GameResourceクラスから継承)
public Tag (GameResourceクラスから継承)
public VertexCount
public VertexDeclaration

メソッド

名称 概要
public Dispose(bool) 派生クラスを作る場合は自前管理のリソースの破棄を実装する必要がある。
protected Dispose() (GameResourceクラスから継承)
protected Finalize (GameResourceクラスから継承)
public GetData<T>(int, T[], int, int, int) この頂点バッファから頂点データを取得する。
public GetData<T>(T[], int, int)
public GetData<T>(T[])
protected internal GraphicsDeviceResetting GraphicsDeviceがリセットされGPU上のリソースを再作成する必要があるときに呼ばれる。
public SetData<T>(int, T[], int, int, int) この頂点バッファに頂点データを設定する。大雑把に言えば頂点データの配列をメインメモリからVRAMにコピーする。
public SetData<T>(T[])
public SetData<T>(T[], int, int)
protected SetDataInternal<T>
public ToString (GameResourceクラスから継承)

イベント

名称 概要
public Disposing (GameResourceクラスから継承)

関連項目