0

私はRadeonHD6750、MacOS10.7.5を搭載したMacBookproを持っていますが、OpenGL3.2およびGLSL1.5プルーフをサポートする必要があることがわかりまし。残念ながら、シェーダー(OpenVDBビューア)を使用してサードパーティのアプリケーションを1つ作成しようとすると、ハードウェアがをサポートしていないことが返されます#version 130。コードは以下のとおりです。

mShader.setVertShader(
    "#version 130\n
    "in vec3 vertex;\n"
    "in vec3 color;\n"
    "out vec4 f_color;\n"
    "void main() {\n"
    "f_color = vec4(color, 1.0);\n"
    "gl_Position =  gl_ModelViewProjectionMatrix * vec4(vertex, 1.0);}\n");
//check that it is shader and add source
glCompileShader(mVertShader);

char buffer[256];
int l = 0;
glGetShaderInfoLog(mVertShader, 256, &l, buffer);
if(GL_NO_ERROR != glGetError()) throw "Error: Unable to compile vertex shader.";

OpenGL Extension Viewerをインストールしましたが、シェーディング言語のバージョンが1.20で、OpenGLのバージョンが2.1であることが通知されます(完全にサポートされており、3.2の一部の機能が利用可能です)。ハードウェアが新しいバージョンをサポートできる場合は、GLSL1.2を使用したくありません。私のドライバー/ハードウェアの何が問題になっているのか、そしてこの問題をどのように修正できるのか、あなたは知っていますか?

4

1 に答える 1

1

OpenGL 3.2(またはコアopengl)を使用するようにピクセル形式を指示する必要があります。

NSOpenGLPixelFormatAttribute attribute[] = 
{
    NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion3_2Core,
    //You can add other attributes here
    0
};

NSOpenGLPixelFormat *pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:attribute];
[self setPixelFormat:pixelFormat];

編集:補足: OpenGL Extension Viewerを使用すると、OpenGL3.2を使用するCoreOpenGLをどこかで使用できると確信しています。

于 2013-01-28T00:33:18.870 に答える