ゲームEchochromeのように、サーフェスのエッジ (ポリゴンではなく!) を描画できるシェーダーのセットを作成しようとしています。
グラフィックス プログラミングで覚えていることによると、これを行うためのテクニックは、マルチパス レンダリングを作成することです。最初のパスでは、面の法線ベクトルと深度を RGBA カラーとしてエンコードし、これらをテクスチャに描画する必要があります。2 番目のパスでは、テクスチャ内の値を検索し、現在のフラグメントの法線または深度情報が周囲のテクセルの法線または深度と大幅に異なる場合、エッジを描画する必要があります。
(注:これを行う簡単な方法があれば、特にFlashで簡単にできる場合は教えてください。ただし、私の具体的な質問は次のとおりです。)
最初のパスのプログラミングで問題が発生しました。DirectX 9.0c を使用した 3D ゲーム プログラミングの紹介 で読んだことから:フランク D. ルナによるシェーダー アプローチ、法線ベクトルを「補間」する正しい方法は、三角形の頂点の法線ベクトルを平均してから、それを使用することです。表面上のすべてのフラグメントの値。ただし、私のフラグメント シェーダーは代わりに法線ベクトルを補間しているため、サーフェスの単色ではなくグラデーションが描画されます。
補間の代わりに AGAL に必要な平均化を行わせるにはどうすればよいですか?