メインメニューを開く

差分

MonoGameでHLSLにMatrixを渡す

3 バイト追加, 2020年6月10日 (水) 01:46
編集の要約なし
[[ハードウェアインスタンシング]]を利用するにあたり[[C♯]]から[[HLSL]]にMatrix型の[[World座標]]を[[バーテックスバッファ]]経由で渡したい。
しかしMonoGameではしかしMonoGameから[[HLSL]]に渡すデータ型を示すVertexElementFormatは「Vector4」が最大となっており、Vector4が4個セットになっているMatrix型は渡せない。に渡す際にデータ型を明示するVertexElementFormatは「Vector4」が最大となっている。Matrix型はない。
そこでMatrixはVector4の4倍と仮定してVector4を4個ズラズラ列べる。VertexElementUsageはfloat4型のセマンティクス、かつ誰も使ってないであろうBlendWeightを指定した。そこで「MatrixはVector4が4個セットになったもの」と仮定してVector4を4個ズラズラ列べてみる。VertexElementUsageはfloat4型のセマンティクス、かつ誰も使ってないであろうBlendWeightを指定した。
<syntaxhighlight lang="csharp">