シームレスなテクスチャを作成するためにラップアラウンドするC#のダイヤモンドスクエアアルゴリズムのimplementationについて読んでいます。次の点を計算するために、正方形または菱形に配置された4つのサンプル点の平均が取られる。テクスチャのエッジにサンプルポイントがある場合、サンプルポイントは反対側にラップされます。このラッピングは、以下のメソッドを使用して行われます。この文のビット単位の&の機能は何ですか?
public double sample(int x, int y)
{
return values[(x & (width - 1)) + (y & (height - 1)) * width];
}
これはビット演算子です。私は以前にそれらを使用していないし、wikipedia articleは啓発されていませんでした。誰かが&
オペレータがこの方法で何をしているのか説明できますか?
EDIT:テクスチャ寸法は、それは「ラッピング」のためだ常に2