2017-09-24 4 views
0

OpenGLにはglEnable(GL_LIGHTING);で有効にできるビルトイン照明があることがわかりました。チュートリアルなどでシェーダで作られたカスタムのものを使用するのはなぜですか?理由があるはずです。ビルトイン照明は何を悪化させますか?OpenGL OpenGLには、組み込みの照明やシェーダー付きのカスタム照明を使用しています。

+0

「内蔵照明」は、グーローシェーディングを使用します。 Gouraudシェーディングが頂点シェーダのライトを計算する間、Phongシェーディングはフラグメントシェーダのライトを計算します - [GLSL固定関数フラグメントプログラムの置き換え](https://stackoverflow.com/questions/8421778/glsl-fixed-function-フラグメントプログラム置換/ 45716107#45716107) – Rabbid76

答えて

3

OpenGLは内蔵されてい

を点灯するいいえ、それはしません。そのようなものはすべてremoved from OpenGL in 3.1 and put into the compatibility profileでした。サポートする必要があるのはで、ではありません。

組み込み照明は悪化しますか?

すべてです。それはすべて悪化します。

固定機能のライティングは、頂点ごとですが、シェーダベースのライティングは任意のものにできますが、頂点ごと、フラグメントごとなどは自由に設定できます。固定機能ライティングは、遅延レンダリング、ライティングプリパス、またはその他のさまざまなレンダリング手法では機能しません。固定機能照明はHDRまたはガンマ補正照明を処理できません。

ユーザ定義の照明ではできない固定機能の照明はありません。ユーザーが定義した照明では固定機能ができないほどのものがありますが、

最新のOpenGLチュートリアルでは古いゴミを教えてくれないのは良いことです。

+0

glShadeModel(GL_SMOOTH)はどうですか?ジオメトリシェーダでカスタムを作成する必要がありますか? – Maineri

関連する問題