なぜ私は、OpenGLの状態はGLSLに点灯知ることができませんか?

StackOverflow https://stackoverflow.com/questions/946622

  •  09-09-2019
  •  | 
  •  

質問

光が属性を渡すか、別のシェーダのトンを作成含まないGLSLで有効になっているかどうかを確認する方法はありますか?

グラフィックス(CG)のためにNVIDIAのCを使用してはどう? CGでそれを行うことができますか?

私は今あなたがそれを行うことができないことを確信しています。しかし、今私が尋ねる:?なぜ

役に立ちましたか?

解決

GLSLよくある間違いの一部「を有効または有効にしない」の私の理解によるとこれは哲学的な理由です:シェーダは、固定されたパイプラインを無効にするために書かれているので、彼らは固定パイプラインの状態に依存しないでください。あなたが必要とする各機能に異なるシェーダーを使用しなきゃます。

また、私は、これは枝がGPUに高価であり、誰かがあなたが

のようなものをやってされるべきではないと思っていなければならないという事実に基づいて設計上の選択であるかもしれないと思います
if (gl_LightSource[0].enabled)
{ ... }

最初の場所インチ

他のヒント

unforgiven3は権利である - GLSLの状態を有効に固定パイプへのアクセスを提供していません。あなたは制服としてそれを渡す必要があります。

GLSLが、私はそれは疑うHLSL(DirectXの者と同等)、のようなものであれば、私はあなたが合格属性で立ち往生していると思います。

: - (

あなたはその上の(0,0,0,0)支店のいずれかに光の色を設定、またはちょうどそれがループ今や非貢献ライトの上に聞かせて可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top