2012-08-15 14 views
13

Estoy siguiendo los tutoriales de arcsynthesis en OpenGL 3.3 usando 10.8 Mountain Lion y cuando construyo el proyecto compila y ejecuta los sombreadores usando GLSL versión 3.30, sin embargo, incluso en el perfil central de Mac OS 10.8 no debería tener compatibilidad con GLSL 3.30 - Sólo 1,50 (como se destaca en la imagen)Mac OS 10.8 es compatible con GLSL 3.30?

¿Hay alguien capaz de explicar cómo he logrado alcanzar esta magia negro?

+0

De hecho, con algunas pruebas adicionales funciona hasta llegar a GLSL 4.10. Solo al intentar 4.20 falla al compilar los sombreadores ... – LiarWithFire

+0

Quizás el compilador de sombreado no reconozca correctamente los idiomas de sombreado superiores. ¿Has intentado utilizar una función específica de 330? – Oskar

+1

Hasta donde yo sé, el diseño (ubicación = 0) solo se incluye en GLSL 3.3 y versiones posteriores. – LiarWithFire

Respuesta

7

OS X 10.8 todavía solo admite OpenGL 3.2, pero con algunas características como la especificación de la ubicación del atributo (#extension GL_ARB_explicit_attrib_location : enable). El compilador de sombreado acepta versiones de hasta 4.10. Podrían haberlo dejado allí por compatibilidad o (ESPECULACIÓN) que originalmente tenían la intención de soportar 4.1.

Esta es al menos mi conclusión después de unas semanas con 10.8.

EDITAR: Parece que las especulaciones 4.10 fueron muy acertadas. 10.9-10.12 soporte hasta la versión 4.10. Supongo que querían gastar recursos en su api de Metal en lugar de seguir adelante y obtener sombreadores de cómputo en ...

+1

It Cabe señalar que si '#extension GL_ARB_explicit_attrib_location: enable' realmente funciona, es fuera de especificación porque OpenGL no anuncia GL_ARB_explicit_attrib_location. O eso, o la [extensión de la página de OpenGL de Apple está desactualizada.] (Https://developer.apple.com/graphicsimaging/opengl/capabilities/) –

+1

Sí. Puedo verificar que esta extensión funciona tanto en ATI como en Nvidia en 10.7 y 10.8. Se resolvió por accidente cuando se transfieren shaders diferidos a GLSL 1.5/OS X y tienen que ser compatibles con la especificación de ubicaciones en el sombreador de fragmentos. (representación en múltiples archivos adjuntos FBO) Ya aprendí de la manera difícil lo importante que es esto, y estaba encantado de no tener que arreglarlo de la manera difícil. – Grimmy

Cuestiones relacionadas