8

私と何人かは、XNA 4.0 で簡単なゲームを作成しています (MS ではサポートされていないことはわかっていますが、家庭教師からの要件です)。最近、 J. Coluna のものに基づいて Light-Pre Pass Renderer を書きました。バンプ マップとアルベド マップを使用してメッシュを追加するまでは、問題なく動作していました。今、奇妙なバグがあります。以下に例を示します。

レンダラーのバグ レンダラーのバグ レンダラーのバグ

これらのアーティファクト (緑/紫) の原因がわかりません。同様のアーティファクトが床に発生し、それらが黒くなることがあります。レンダラーで何が問題になっているのか分かりますか?

私の投稿が十分に明確でない場合はお知らせください。明確にするよう努めます。

4

1 に答える 1

2

コードを提供していないので、観察のみに基づいて回答する必要があります。

問題は、オブジェクト ジオメトリの作成方法に関連する法線の反転によるものだと思います。

画像 #3 をよく見ると、オブジェクトの左側にも紫色のアーティファクトが見られますが、狭い領域にあることがわかります。それによると、これは私が提供する理論です:

あなたのアニメーターはオブジェクトを作成しましたが、鋭いエッジが気に入らなかったので、それらを取り除くために、エッジの頂点を回転させ、形状の外側に重なるようにそれらを内側に移動しました。

どういうわけかそれを説明しようとすると、次のようになります。

元のオブジェクト:

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

対いじくり回されたオブジェクト:

  -------
|x===x|
|=====|
|x===x|
  -------

「+」が「x」に変換される場所 - 頂点が回転し、形状の内側にさらに移動したことを意味します。これはおそらく、オブジェクトから反射される光に影響を与える法線を反転させました。

画像 #3 で左側にアーティファクトのある狭い領域が見られる理由は、おそらくアーティストがすべてのコーナーを同時に回転させたためです。その場合、形状を回転させると現象が対称になると思います。オブジェクトの右側に幅が広く、左側に狭いアーティファクトが再び表示されますが、形状を反転すると (Y 軸で 180 度回転)、現象も反転します。

これをテストする別のオプションは、新しい単純なボックス シェイプをシーンに配置し、アーティファクトがなくなったかどうかを確認することです。

于 2013-07-29T01:14:00.493 に答える