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 グラフィック カードを認識できるようなものはありますか?