3

Nvidia カードでは、クリップ プレーンを有効にする場合、gl_ClipVertex を glsl プログラムで割り当てる必要があります。ただし、Ati カードでは、gl_ClipVertex が割り当てられている場合に問題があります。

Nvidia/Ati との互換性のために、次のようなコードを記述します。

// fix the clipping bug for both Nvidia and Ati   
#ifdef __GLSL_CG_DATA_TYPES
    gl_ClipVertex = gl_ModelViewMatrix*gl_Vertex;
#endif

詳細については、このリンクを確認してください。

問題がある。Intel グラフィック カード (HD Graphics 3000 など) では、gl_GlipVertex も割り当てる必要があります。そうでない場合、クリップ プレーンは役に立ちません。しかし、ご存知のように、__GLSL_CG_DATA_TYPES は Nvidia システムでのみ定義されています。したがって、gl_ClipVertex の行は intel では skippd です。現在、互換性のある glsl プログラムを Nvidia/Ati/Intel カードの両方で適切に作成するのは難しいようです。

GLSL プログラムで __GLSL_CG_DATA_TYPES が Intel グラフィック カードを認識できるようなものはありますか?

4

2 に答える 2