2

Mac OS X 10.6 で動作するように、ジオメトリ シェーダーを介した単純なパスを取得しようとしています。コードは問題なくコンパイルおよびリンクされますが、何らかの理由でジオメトリが画面に描画されません。ここに私のシェーダーコードがあります:

#version 120
#extension GL_EXT_geometry_shader4: enable

void main()
{
    gl_Position = gl_PositionIn[0];
    EmitVertex();

    EndPrimitive();
}

誰かが助けてくれれば、私はそれを感謝します.

4

2 に答える 2

2

結局のところ、問題はシェーダー コードにはまったくありませんでした。どうやら、ジオメトリ シェーダでバージョン 120 を使用する場合、次のように入力と出力のタイプを設定する必要があります。

glProgramParameteriEXT(shaderProgramID, GL_GEOMETRY_OUTPUT_TYPE_EXT, GL_POINTS);
glProgramParameteriEXT(shaderProgramID, GL_GEOMETRY_VERTICES_OUT_EXT, GL_POINTS);

その後、すべてが完璧に機能しました。

于 2010-11-16T02:53:37.337 に答える
0

ジオメトリ シェーダーは、プリミティブ全体で機能します。あなたのはポイントにのみ適しているようです。ポイントを渡さない場合は、すべてのgl_VerticesIn(カウント) 頂点を処理する必要があります。

于 2010-11-14T23:38:17.427 に答える