紹介
- XORテクスチャは簡単に生成できるテクスチャで、テスト目的に有用。
- デモやゲームでは多用されており、推奨されない。
- テクスチャマッパーを素早くテストするときに役立つ。
XORテクスチャ
- XORテクスチャは、現在のピクセルの x 座標と y 座標を XOR 演算して生成される。
- C++ では
^ 演算子を使って実装できる。
- テクスチャサイズは 2 の冪である必要がある。そうでない場合は品質が低下する。
- 色の値は 0 から 255 の範囲で、テクスチャサイズが 256 より小さいと暗くなる。
- サイズが 256 より大きい場合は、色を 256 に制限する必要がある。
色
- R、G、B の値を変えて、さまざまな色の XOR テクスチャを試すことができる。
HSVtoRGB 関数を使って、色相に XOR 値を使用することもできる。
AND と OR
- AND 演算子と OR 演算子も、似たようなテクスチャを生成する。
- AND 演算子は、2 つのビットが両方とも 1 のときだけ 1 を返す。
- OR 演算子は、2 つのビットのどちらか一方でも 1 なら 1 を返す。
- AND テクスチャは暗く、OR テクスチャは明るい。
結論
- XOR テクスチャはテクスチャレンダラーのテストに有用だが、アートやゲームには適していない。
- 3D テクスチャ (
x ^ y ^ z) として使えば、惑星テクスチャレンダラーをテストできる。
1件のコメント
Hacker Newsのコメント
あるユーザーは、x86アセンブリ言語で1ビットカラーを使って画像を生成するプログラムを作った。これは
x ^ yの代わりにparity(x ^ y)を使い、1ビットの数が偶数のときとそうでないときで異なる色を適用する。その結果、ほぼ繰り返すが完全ではないタイリング効果が得られた。このプログラムは2019年にfasmで書かれ、XPM2ファイルを生成する。中学生のころ、あるユーザーは簡単なCLIアプリケーションしか作れなかったが、LodeのComputer Graphics Tutorialを通じてウィンドウを開いてグラフィックスを描く方法を学んだ。これにより、Pacman、Snake、Space Invadersのようなレトロゲームを再現できた。このサイトのおかげで、ソフトウェア開発のキャリアを早く始めることができた。
color = (y == (x ^ t))のような関数でアニメーション化された似た効果は「munching squares」と呼ばれる。これは1960年代初頭にPDP-1向けに書かれ、Computer History MuseumのPDP-1で実演されているのを見たことがある。PDP-1のディスプレイは点を描けるだけで、ビットマップフレームバッファは使っていないが、画面の蛍光体の長い残光を利用してXORテクスチャを生成する。Hamming距離テクスチャを思い出させるという意見がある。あるユーザーはこのテクスチャを使ってキルトを作り、虹色を使って壁飾りとして掛けていた。
XORテクスチャの各点は、その上や左に現れない最小の整数であるという面白い事実が共有されている。
DwitterというWebサイトは、canvasを使う1行のJavaScriptサンプルのためのプラットフォームで、ユーザーは140バイトに制限された作品を共有できる。
J言語でこのパターンを表現する方法が共有されている。Jソフトウェアのプレイグラウンドで確認できる。
20年経った今でも依然として有用な情報が多く、特にシェーダー作業をするときに役立つかもしれないと勧めている。
LodeのWebサイトを通じてレイトレーシングを学ぶようになり、このサイトのレイアウトが今でも好きだと述べている。