読者です 読者をやめる 読者になる 読者になる

メタデータの利用

DirectX .NET

masafumiさんも指摘されていますが,DirectX本来の「GPUの薄いラッパー」という役割を超えて巨大化していっているのがエフェクトファイル界隈の規格です.エフェクトファイルで私は特に気に入っているのは,処理の記述を積極的にセマンティクスとアノテーションに集約しているところです.属性ベースプログラミングの有効性を示す意味でも,是非このまま突き進んで欲しいですね.ちょっと話はずれますが,最近よく耳にするDIコンテナの考え方なんかも案外応用が利くかもしれません.サーバ屋さんとはなかなか人的交流は難しいでしょうか……?
一方,現状のManaged DirectX (MDX)の設計はいささか保守的な部分が気になっています.例えばエフェクトファイルとMDX+C#での頂点構造体の記述を比べてみましょう.
>

//エフェクトファイル
//入力頂点情報
struct VS_INPUT
{
float4 Pos : POSITION;
float3 Normal : NORMAL0;
};

//C#
//入力頂点情報
[StructLayout(LayoutKind.Explicit)]
public struct VS_INPUT
{
[FieldOffset(0)]
public Vector4 Pos;
[FieldOffset(16)]
public Vector3 Pos;
public static VertexFormats Format = VertexFormats.Transformed | VertexFormats.Normal;
};