セルフシャドーイングとは

「自己シャドウイング」とは、オブジェクトの一部が自身に影を落とす状況を表す用語です。 セルフシャドーイングの例には、光源が上から来るときに顔または上唇に人間の鼻によって落とされる影、または椅子の脚に椅子の座席によって落とされる影が含まれます。 この用語がコンピューターグラフィックス(特にコンピューターグラフィックスプログラミング)で使用される場合、シーンの3次元(3D)オブジェクトによって投影される影、または動的オブジェクトとその周囲のオブジェクトによって投影される影への参照です。 。 リアルタイム3Dコンピューターグラフィックスプログラミングの性質により、多くのアプリケーションは、他の最適化を優先してセルフシャドウをレンダリングする可能性を排除する手法を使用しますが、コンピューターの速度と機能が向上すると、リアルタイムセルフシャドウイング手法よりアクセスしやすくなりました。 リアルタイムのセルフシャドーイングオブジェクトをレンダリングする方法はいくつかありますが、通常、ハードウェアの制限により、不正確なシャドウ、人為的にハードエッジのあるシャドウ、または信じられないほど高速ではないグラフィックカードでのレンダリングが非常に遅いシーンなど、いくつかの欠点がある結果が生じます。

セルフシャドーイングについて話すときの1つの違いは、リアルタイムグラフィックスの静的オブジェクトと動的オブジェクトの違いです。 静的オブジェクトは、シーン内の3Dオブジェクトであり、レンダリング中に移動せず、ジオメトリの一部が変更されません。 一方、動的オブジェクトとは、シーンに直接アタッチされていないオブジェクトであり、フレームごとに異なる場合があります。 ほとんどの場合、ほとんどの静的オブジェクトと非リアルタイムシーンは、レンダリングエンジンまたは使用できる他のグラフィックトリックのために、セルフシャドウを実行します。

リアルタイム3Dグラフィックスのレンダリングに使用されるいくつかの最適化により、動的なセルフシャドウイングの実装が困難になります。 いくつかの例には、シーン内のキャラクターなどの動的オブジェクトを無視して、静的な背景にのみ照明効果を適用するグラフィックエンジンや、内部ジオメトリを意識せずにオブジェクトをシルエットとしてのみ扱うエンジンが含まれます。 グラフィックプロセッサとコンピューターの増加に伴い、新しい手法により、セルフシャドウオブジェクトをリアルタイムシーンに表示できますが、いくつかの制限とトレードオフがあります。

シャドウボリュームは、3Dシーンでセルフシャドウイングを実装できる1つの方法です。 このメソッドは基本的に、シャドウが投影されるシーン内の囲まれたボリュームを占有する3Dオブジェクトを作成し、レンダラーまたはシェーダーがシャドウボリューム内にポイントがあるかどうかのテストを実行して、どのように点灯するかを決定します。 他の方法では、シャドウマップを作成するか、頂点位置から近似シャドウを作成して、エッジの忠実度に必ずしも追従しない非常に拡散したシャドウを作成します。

セルフシャドウイングのほぼすべての方法は、許容できる結果を得るために速度または品質を交換する必要があります。 品質の問題は、高速ですが低解像度またはファジー技術を使用することで発生する可能性があります。これにより、一部のセルフシャドウが間違っているか、場違いに見えることがあります。 速度の問題は、使用するアルゴリズムがフレームあたりのオーバーヘッドが大きすぎるか、シャドウ投影を正確に計算しようとすると発生します。 単一の標準的な自己シャドウ生成アルゴリズムはありませんが、一部のグラフィックカードには、いくつかの手法の速度を上げることができるさまざまな方法のネイティブアクセラレーションが含まれています。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?