C#は電気羊の夢を見るか?(引っ越し中)

dtiブログが閉鎖とのことでhttp://tanocs.blog.fc2.com/へ引っ越します。

セマンティクスの罠

セマンティクスのポジションを指定するときXNA側でVector3を指定したとき、
HLSL側での指定をfloat3とかやってしまうと、座標系がどこぞへとぶっ飛んでしまう模様。
この事実に気がつかず、モデルが一切表示されない状態に一週間陥っていた・・

分かってしまえばなんてことはないんだけど、
分からないとHLSLはどうにもハマることが多くていけない。

こう、もっとサラリと使えるデバッガがあればいいのに・・


ちなみに今回問題となったVertexElementは下記の通り

VertexElement[] {
new VertexElement(0, 0, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Position, 0),
new VertexElement(0, sizeof(float) * 3, VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Normal, 0),
new VertexElement(0, sizeof(float) * (3 + 3), VertexElementFormat.Vector3, VertexElementMethod.Default, VertexElementUsage.Color, 0),
new VertexElement(0, sizeof(float) * (3 + 3 + 3), VertexElementFormat.Vector4, VertexElementMethod.Default, VertexElementUsage.BlendIndices, 0),
new VertexElement(0, sizeof(float) * (3 + 3 + 3 + 4), VertexElementFormat.Vector4, VertexElementMethod.Default, VertexElementUsage.BlendWeight, 0),
new VertexElement(0, sizeof(float) * (3 + 3 + 3 + 4 + 4), VertexElementFormat.Vector2, VertexElementMethod.Default, VertexElementUsage.TextureCoordinate, 0)
}


んで、HLSLのポジションのセマンティクスが
float3 Position : POSITION0;
って感じだとダメで
float4 Position : POSITION0;
とする必要がある。


普段気にせずにいたけど、勝手に型の変換とかしてくれてるんだと思う。
やれやれ。
このエントリーをはてなブックマークに追加
LINEで送る

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://t01a.dtiblog.com/tb.php/109-725f55fd

-

管理人の承認後に表示されます

« anchorとサイズの挙動  | HOME |  変換とか »

PAGE TOP ▲

Appendix

■春条

■春条

生息地は愛知
車と甘い物が好きな31歳
特技は無限昼寝

MONOからSharpDXを使う
変態的な手法で、
.NET Frameworkを使わずに
ゲーム作りやってます。

Search

Calender

« | 2018-08 | »
S M T W T F S
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -

Twitter

Recent Entries

DTIブログポータルへ
このブログを通報
Report Abuse

利用規約