1

显然,曲面细分着色器能够在 OSX 10.8.3 下运行:

http://www.geeks3d.com/20130507/gptest-0-4-0-cross-platform-opengl-benchmark-released-opengl-4-tessellation-test-enabled-under-mac-osx

有没有人有能够编译和运行的最小示例(C++、OpenGL 和 GLSL)?

目前支持/不支持哪些功能?

我知道 OS/X 还没有正式支持曲面细分着色器。我正在寻找的是 GPUTest 0.4.0 中使用的破解方法,它显然似乎在某些硬件上支持它。

4

2 回答 2

4

好的,通过 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 ...)。

我打算很快做一个完整的演示/写下来,但是因为是星期五下午,我整天都在盯着代码看,所以我要去酒吧!

内层和外层设置为 6 的镶嵌

于 2013-05-10T09:58:10.337 回答
0

我看到了同样的情况,在标题中找不到任何内容,现在正在寻找其他示例。

该程序似乎在我的 mac / hackintosh (nVidia GT640) 和我使用 GT330M 的 Mac Book Pro 上都可以正常工作,它们都是最新的 Mountain Lion。

因此,如果它是真正运行的曲面细分着色器,则必须有一些我找不到的私有 API / hack。

于 2013-05-10T09:02:10.377 回答