2012-01-15 8 views
0

現実的な遅延照明を使用して2Dゲームを進めています。シーンの後にライトをレンダリングしているので、ツリーのようなオブジェクトがあると照明のある部分を遮っていると、ライティングの計算を行う方法が必要です。いくつかの読書をした後、遅延レンダリングのための私の最善の策は、深度バッファを使用することです。私は2Dグラフィックスで深度バッファを持つ方法をインターネットで検索してきましたが、実際に役立つものは何も見つかりませんでした。私はglPolygonOffsetを見つけましたが、それは私が欲しいものであるかどうか、またはポリゴンのz値を設定する別の方法があるかどうか、実際にはわかりません。助けをありがとう2D深度バッファー

答えて

4

あなたの誤解は、「3D ==パースペクティブ」と考えることにあります。デプスバッファーを生成するには、シーンの深さが必要です。しかし、それは問題ではありません。あなたが「2D」と呼んでいるのは、おそらく単に視点の欠如を意味するだけです。そのため、オルトプロジェクションを使用してさまざまな深度のレイヤーにオブジェクトを配置することで、遅延照明に役立つデータを含む深度バッファーを生成できます。

+0

ポリゴンのz座標を調整しますか? – rcapote

+1

意味は、z値が何であっても、パースペクティブがないため外観を変えないということです。カメラに近づけたり、画面に近づけたりすることができます。どちらの方向にも遠すぎない限り、同じように見えます。 – fabspro

+1

「あまりにも遠すぎる」とは、見ることができるクリッピングボリュームの外にあることを意味します。透視投影とは異なり、オルト投影では深度値はZに線形的に依存します。 – datenwolf