【发布时间】:2013-04-04 13:35:27
【问题描述】:
在 Nvidia 卡上,如果要启用剪切平面,则必须在 glsl 程序中分配 gl_ClipVertex。但是在 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
您可以查看此link 了解更多信息。
有问题。在英特尔显卡(例如 HD Graphics 3000)上,也必须分配 gl_GlipVertex。如果不是,则剪切平面是无用的。但正如我们所知,__GLSL_CG_DATA_TYPES 仅在 Nvidia 系统上定义。所以 gl_ClipVertex 行在英特尔上是 skippd 的。现在似乎很难在 Nvidia/Ati/Intel 卡上编写兼容的 glsl 程序。
在GLSL程序中是否有__GLSL_CG_DATA_TYPES可以识别intel显卡?
【问题讨论】: