显然,曲面细分着色器能够在 OSX 10.8.3 下运行:
有没有人有能够编译和运行的最小示例(C++、OpenGL 和 GLSL)?
目前支持/不支持哪些功能?
我知道 OS/X 还没有正式支持曲面细分着色器。我正在寻找的是 GPUTest 0.4.0 中使用的破解方法,它显然似乎在某些硬件上支持它。
显然,曲面细分着色器能够在 OSX 10.8.3 下运行:
有没有人有能够编译和运行的最小示例(C++、OpenGL 和 GLSL)?
目前支持/不支持哪些功能?
我知道 OS/X 还没有正式支持曲面细分着色器。我正在寻找的是 GPUTest 0.4.0 中使用的破解方法,它显然似乎在某些硬件上支持它。
好的,通过 OpenGL 分析器运行代码,似乎它使用了曲面细分着色器,但没有使用 OpenGL 定义。
据我所知,使用
glCreateShader(0x00008e87); // 测试评估
和
glCreateShader(0x00008e88); // 测试控制
我可以确认应用程序确实使用了镶嵌着色器,因为我已经检查了着色器源,我现在将尝试使用上面的十六进制值集成到我自己的代码库中,并将报告回来。
如果您使用以下内容进行编辑,它应该可以正常工作(请参阅此处的博客和视频)
所以有很多基本的代码黑客来让它工作,我使用了以下定义并得到了一个基本的直通着色器系统工作。
首先我使用以下
#ifdef DARWIN
#ifndef GL_TESS_CONTROL_SHADER
#define GL_TESS_CONTROL_SHADER 0x00008e88
#endif
#ifndef GL_TESS_EVALUATION_SHADER
#define GL_TESS_EVALUATION_SHADER 0x00008e87
#endif
#ifndef GL_PATCHES
#define GL_PATCHES 0x0000000e
#endif
#endif
然后,您可以像往常一样加载着色器,但使用 EVAL / Control 作为有效的着色器类型。当你开始绘图时,你必须使用补丁来绘制,所以像往常一样使用 glDrawArrays(GL_PATCHES ...)。
我打算很快做一个完整的演示/写下来,但是因为是星期五下午,我整天都在盯着代码看,所以我要去酒吧!
我看到了同样的情况,在标题中找不到任何内容,现在正在寻找其他示例。
该程序似乎在我的 mac / hackintosh (nVidia GT640) 和我使用 GT330M 的 Mac Book Pro 上都可以正常工作,它们都是最新的 Mountain Lion。
因此,如果它是真正运行的曲面细分着色器,则必须有一些我找不到的私有 API / hack。