2013-06-06 2 views
8

私といくつかの人はXNA 4.0でシンプルなゲームを作成しています(それはもうMSによってサポートされていませんが、私たちの教師が要求します)。最近、私はJ. Coluna's oneに基づいてLight-Pre Pass Rendererを書いた。バンプとアルベドのマップを追加するまでうまくいきました。今、私たちは奇妙なバグを持っています。ここでは例を与えている:私はdont't軽いプレパス(または遅延)パイプラインバグ

Renderer bug Renderer bug Renderer bug

は、これらのアーティファクト(緑/紫)を引き起こすものの手掛かりを持っています。フロアに類似のアーティファクトが発生することがあります。レンダラで何が問題になるか考えていますか?

私の投稿が十分にわからない場合は、私はそれを明確にしようとします。

+0

コードなしではわかりにくいです。拡散地図は完全に灰色ですね。それはおそらく照明の問題です。いくつかの軽いコンポーネント(周囲、拡散、鏡面)を消して、どこに問題があるかを見てください。 –

+0

可視バッファ(左上隅)は、それぞれ、正常バッファ、深さバッファ、ライトバッファです。私は家に帰るとすぐに軽い部品を回してみるつもりです。アイデアありがとう:) – Shot

+0

ライトコンポーネントをオフにしても役立ちませんでした。それでも同じ人工物を得ます。私の同僚の一人がカメラを変更した後、これらのアーティファクトが現れ始めたことに気がつきましたが、彼はそのポジションだけで作業しました... – Shot

答えて

2

あなたはコードを提供していないので、私は自分の答えを観測のみに基づいていなければなりません。

私は、オブジェクトのジオメトリがどのように作成されたかに関連する反転された法線からの問題だと考えています。

イメージ#3をよく見ると、紫色のアーティファクトがオブジェクトの左側にも狭い領域に見えることがわかります。これは私が提供している理論によると、

あなたのアニメーターはオブジェクトを作成し、鋭いエッジが好きではなかったので、それらを取り除くために、エッジの頂点を回転させ、外形と重なり合う。私は何とかそれを説明しようとするでしょう場合は、次のようになります

元のオブジェクト:

+ ------- +
| ===== |
| ===== |
| ===== |
+ ------- +

対ティンカー製のオブジェクト:

    -------
| X === X |
| ===== |
| x === x |
    -------「+」「X」に変換され

- 頂点を回転させて形状の内部さらに移動した意味します。これはおそらく、物体から反射されて戻ってくる光に影響する法線を反転させました。

画像#3に見られる理由は、左側にアーティファクトがある狭い領域は、おそらくアーティストが同時にすべてのコーナーを回転させているからです。その場合、現象を回転させると現象が起こります左右対称であることを意味します。オブジェクトの右側にアーティファクトが広がり、左側が狭くなりますが、シェイプを反転すると(180度回転すると)、現象が反転します。

これをテストするもう1つのオプションは、新しい単純なボックスの形をシーンに入れ、アーティファクトがなくなっているかどうかをチェックすることです。