私は、3D ボクセル画像の表面に法線を近似する方法に取り組んでいました。
この記事で提案されている方法(Google で見つけたアルゴリズムのみ) は機能しているようです。この論文から提案されている方法は、サーフェスが最も変化する方向を見つけ、何らかの手順を使用して接平面上の 2 点を選択し、外積を取ることです。ポルトガル語でコメントされている、記事の著者 code による一部のPascal コードは、このメソッドを実装しています。
ただし、法線として f の勾配 (各偏導関数をベクトルのコンポーネントとして使用) を使用すると、かなりうまく機能するようです。ボクセル化された球体のいくつかの円に沿ってこれをテストしたところ、ほとんどの場所で正しいように見える結果が得られました (約 30 度ずれている外れ値がいくつかあります)。これは論文で使用されている方法とは大きく異なりますが、それでも機能します。私が理解していないのは、オブジェクトの表面に沿って計算された f = 1/dist の勾配が法線を生成する理由です。
なぜこの手順が機能するのですか? スフィアテストが特殊すぎたというだけでしょうか?もっと簡単な方法を提案したり、これらの方法を説明したりできますか?