2

一部の入力データと取得した古いハードウェアを反復処理するフラグメント シェーダーがあります。

エラー C6013: このプロファイルでは、texcoords の配列のみにインデックスを付けることができ、ループ インデックス変数を使用する必要があります

グーグルで調べてみると、「XXより前のハードウェアはフラグメントシェーダーでのインデックス作成をサポートしていません」などのものがたくさんありました。

この動作がGLSLバージョンで標準化されているかどうか疑問に思っていました.「XX以前のglslバージョンはフラグメントシェーダーでのインデックス作成をサポートしていません」. もしそうなら、どのバージョンがそれをサポートし始めますか。

4

2 に答える 2

2

あなたの正確なハードウェアは何ですか?

古い ATI カード (X1600 以下) とそのドライバには、このような問題があります。確かに、Intel の最新のカードがこれに悩まされているわけではありません。

「私のハードウェアがフラグメント シェーダーでインデックスを作成できるかどうかを検出する方法について何か提案はありますか?」

信頼性はあるがあまり美しくない唯一の方法は、Renderer 情報を取得することです。

glGetString(GL_RENDERER)

このレンダラーがサポートされていないもののリストに含まれているかどうかを確認します。

于 2012-05-31T17:28:02.403 に答える
1

その特定のエラーは、nv4x (GeForce 6/7 カード) 用の Nvidia コンパイラから発生し、ハードウェアの制限です。回避策として、ハードウェアを完全に無効にし、純粋なソフトウェア レンダリングを使用する必要があります。

GLSL のすべてのバージョンは、言語でのインデックス作成をサポートしています。このエラーは、ハードウェア リソースの制限を超えるという包括的なエラーに該当します。

于 2012-05-31T17:50:40.860 に答える