/ / 246より大きい均一なint配列でのGLSLパフォーマンスの問題-opengl、graphics、glsl、shader

246を超えるuniform int配列を持つGLSLパフォーマンスの問題 - OpenGL、グラフィックス、glsl、シェーダ

Perlin Noiseを実装したかっただけですフラグメントシェーダー。したがって、フラグメントシェーダーにサイズ512の均一なint配列を渡す必要があります。今、これは私のそれほど古いMacでは恐ろしいパフォーマンス(1FPS)につながります。配列のサイズを小さくしようとしましたが、その結果、配列には246個の要素のハード制限があり、インタラクティブなフレームレートが生成されます。だから私の質問は:

  • この制限はどこから来たのですか? OSX?グラフィックスカード? OpenGLバージョン?
  • これを回避する方法はありますか?整数テクスチャを使用してみましたが、これらは私のOSでサポートされていません!

誰かが似たようなことを経験しましたか?

回答:

回答№1の場合は3

したがって、フラグメントシェーダーにサイズ512の均一なint配列を渡す必要があります。

代わりに1Dテクスチャを使用できます。整数さえ必要ありません。PerlinNoiseでもフロートは同じように機能します。


回答№2の場合は1

ハードウェアまたはシェーダーのバージョン制限である必要があります。代わりにテクスチャを使用できますか?