2
ステンシルシャドウ-ドゥーム3エンジン-精度エラー-シャドウクラック-なぜですか?
最大マップサイズに関して、Doom 3エンジンの制限をテストしています。 オブジェクトがマップの原点から遠ざかるにつれて、ステンシルシャドウの精度エラーがさらに顕著になることに気づきました。 位置:-10901 -18214 -11204 位置:-10802 -26483 -19383 位置:-10802 -34683 -27540 これらのエラーは「シャドウクラック」と呼ばれていたと思いますが、これらのアーティファクトが以前に何と呼ばれていたかはわかりません。 ほぼすべてのアーティファクトがライト/シャドウの境界に沿って表示されます-これは次のとおりです。 ステンシルシャドウを使用して、このタイプのグラフィックアーティファクトを見たことがありますか?彼らは何と呼ばれている?原因は何ですか? その他の例: これは、ここにあるバニラドゥーム3エンジンです:https : //github.com/TTimo/doom3.gpl r_useOptimizedShadows cvar(worldspawnジオメトリのシャドウボリュームを処理する)をテストしているときに、アーティファクトが消えていることに気付きました。それから私はこの関数に私の方法を働きました: R_LinkLightSurf( &vLight->globalShadows, tri, NULL, light, NULL, vLight->scissorRect, true /* FIXME? */ ); 私はこれに変更しました: R_LinkLightSurf( &vLight->globalShadows, tri, NULL, light, NULL, vLight->scissorRect, false /* FIXME? */ ); これによりアーティファクトが取り除かれますが、今度は、worldspawnジオメトリのシャドウボリューム内にいることはないと想定しています。したがって、シャドウボリュームの内部に移動すると、そのシャドウボリュームは適切にレンダリングされません。