MEP 16: swizzle演算子対応
- Created: 2023-08-02 11:17:42
ここまでベクトル関連を整備したのだから、swizzle演算子もあって良いんじゃないか、と思うので対応したい。 ついでにタプルの要素を取り出す演算子として.0, .1なども対応したい。
tup.0, tup.1みたいな記法はSwiftにある。
Data Type (GLSL) - OpenGL Wiki
.rgba, .xyzw, .stpqのアクセスがあるらしい。 stpqはテクスチャの時だけか?あまり見かけないが。
Source register swizzling (HLSL PS reference) - Win32 apps - Microsoft Learn
これにはxyzwしか載ってないが、bgraもありそうなことはちらっと書いてある。 やはりこの2つでいいかな。
Metalは Metal Shading Language Specification.pdf の「2.2.1 Accessing Vector Components」に書いてあって、xyzwとrgbaの二つだと言っている。
なんかみんな順番はrgbaだと言っているなぁ。aが最後なのは妙な気もするが。 MFGとしてはbgraにしないと都合が悪いが、それならサポートしない方がむしろややこしくなくていいか?