顯然細分着色器的OpenGL 4鑲嵌能夠OSX 10.8.3下運行:在OS/X
是否有人在最小例如(C++,OpenGL和GLSL),這是能夠編譯並運行?
此外,目前支持/不支持哪些功能?
我知道OS/X尚未正式支持鑲嵌着色器。我正在尋找的是GPUTest 0.4.0中使用的黑客配方,顯然它似乎在某些硬件上支持它。
顯然細分着色器的OpenGL 4鑲嵌能夠OSX 10.8.3下運行:在OS/X
是否有人在最小例如(C++,OpenGL和GLSL),這是能夠編譯並運行?
此外,目前支持/不支持哪些功能?
我知道OS/X尚未正式支持鑲嵌着色器。我正在尋找的是GPUTest 0.4.0中使用的黑客配方,顯然它似乎在某些硬件上支持它。
確定已經通過OpenGL分析器運行代碼,它似乎使用鑲嵌細化着色器,但不使用OpenGL定義。
至於我可以告訴你使用
glCreateShader(0x00008e87); //苔絲EVAL
和
glCreateShader(0x00008e88); //苔絲控件
我可以確認應用程序確實使用鑲嵌着色器,因爲我已經檢查了着色器源代碼,現在我要嘗試使用上面的十六進制值集成到我自己的代碼庫中,並將報告回來。
編輯如果您使用以下應該所有的工作(見博客和視頻here)
所以有很多的代碼基本黑客得到這個工作,我已經使用了以下定義,並得到一個基本的直通着色系統工作。
首先我用下面的
#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 /控制是有效的着色器類型。當你開始繪畫的時候,你必須使用補丁來繪製,所以使用glDrawArrays(GL_PATCHES ...)就像你通常做的那樣。
我打算儘快做一個完整的演示/寫作,但是因爲是星期五下午,所以我一直在盯着代碼,我要去酒吧!
很酷。我期待看到你的結果! – Mortennobel 2013-05-10 10:00:39
好吧,目前我可以創建和編譯一個tess評估着色器,但編譯失敗的控件,我得到以下錯誤錯誤:0:2:佈局'頂點'的無效使用 錯誤:0:11:使用未聲明的標識符'gl_InvocationID' 錯誤:0:14:賦值的左手邊一定不能是隻讀的,奇怪的是這個着色器會在Mac上的OpenGL profiler中編譯,所以它與OpenGL上下文有關創建或GL狀態,需要深入挖掘。 – 2013-05-10 11:38:02
太棒了。幹得不錯! – Mortennobel 2013-05-11 12:23:57
我看到了一樣,在標題中找不到任何內容,現在正在搜索其他示例。
該程序似乎可以在我的Mac/hackintosh(nVidia GT640)上正常工作,而且我的Mac Book Pro使用GT330M都是最新的Mountain Lion。
因此,如果它真的是鑲嵌着色器,那麼必須有一些我無法找到的私有API/hack。
我完全意識到OS/X尚未正式支持曲面細分着色器。我期待的是它如何在GPU測試0.4中實現。0(如果它是真正鑲嵌着色器運行)。 – Mortennobel 2013-05-10 09:11:15
我想,我知道ML中沒有官方支持的很多東西(例如,您可以使用#version 410核心並使用佈局限定符來運行着色器),這兩者都不應該被支持,所以這只是一個問題。弄清楚這個「黑客」是如何工作的,或者它只是一些奇特的Geo着色器。 – 2013-05-10 09:28:28
[根據特徵矩陣(https://developer.apple.com/graphicsimaging/opengl/capabilities/),鑲嵌不10.8.3下支持。所以我不知道他們是如何得到它的工作,除非這是一個無證的變化。 – 2013-05-09 13:27:27