「定数バッファ」の版間の差分

編集の要約なし
27行目: 27行目:
ほとんどのプラットフォームで「定数バッファの要素」は「16byteアライメント」となっています。
ほとんどのプラットフォームで「定数バッファの要素」は「16byteアライメント」となっています。
構造体のフィールド変数を上から順番に足したものが16バイト単位でなければなりません。
構造体のフィールド変数を上から順番に足したものが16バイト単位でなければなりません。


; 問題ない例
; 問題ない例
35行目: 36行目:
}
}
</source>
</source>


; ダメな例
; ダメな例
55行目: 57行目:
}
}
</source>
</source>


; もっとも確実な解決策
; もっとも確実な解決策
もっとも簡単な解決方法は「すべて16バイトのfloat4(vec4)を使うこと」です。
もっとも簡単な解決方法は「すべて16バイトのfloat4(vec4)を使うこと」です。
無駄だと思っても16バイトのVector4で代用しましょう。
無駄だと思っても16バイトのVector4で代用しましょう。
定数バッファがバカみたいに巨大化するようなことはまずないので、今の高速なPCだとたった数十バイトで体感速度なんて変わりません。
定数バッファがバカみたいに巨大化するようなことはまずないので、今の高速なPCだとたった数十バイトで体感速度なんて変わりません。