imported>Administrator |
(相違点なし)
|
2017年11月7日 (火) 01:52時点における版
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クラスから継承)
|
関連項目