私はローグライクに取り組んでいます。そのために、黒丸のすべての点にブレゼンハム線をプロットすることで構成されるレイトレーシング/キャスティング視野(FoV)アルゴリズムを作成しました。アーティファクトはありません(そして、かなり効率的です)が、私の重要な要件である対称性が欠けています(対称性を確認できる場合は、モンスターも確認できる必要があります)。
これが私のコードの非対称的な動作の例です。左の画像では、角に立っています(赤い「X」ブロック=壁)。右上のタイルを見ることができます。ただし、これらのタイルの1つ(右の画像)に移動すると、元のタイルが表示されなくなります。
私はある種のPermissive Field of Viewを求めているのではないかと思いますが、それはローグベイスンの記事が対称性を考慮に入れていることを示唆したからです。対称性を得るための代替手段はありますか?
1
可視性をテストするときは、視点が光線をキャストする位置と同じ位置にあることを確認してください。
—
MichaelHouse