2012-08-15 10 views
13

Podążam za tutorialami arcsynthesis na OpenGL 3.3 używając 10.8 Mountain Lion i podczas budowania projektu kompiluje i uruchamia shadery używając GLSL w wersji 3.30, jednak nawet w głównym profilu na Mac OS 10.8 nie powinienem mieć wsparcia GLSL 3.30 - tylko 1,50 (jak podkreślono w obrazie)Mac OS 10.8 obsługuje GLSL 3.30?

Czy ktoś w stanie wyjaśnić, w jaki sposób udało mi się osiągnąć ten czarną magię?

+0

W rzeczywistości, po dalszych testach działa aż do GLSL 4.10. Tylko przy próbie 4.20 nie można skompilować shaderów ... – LiarWithFire

+0

Może kompilator shaderów nie rozpoznaje odpowiednio wyższych języków modułu cieniującego. Czy próbowałeś używać funkcji 330? – Oskar

+1

O ile mi wiadomo, układ (location = 0) jest zawarty tylko w GLSL 3.3 i wyżej. – LiarWithFire

Odpowiedz

7

System OS X 10.8 nadal obsługuje tylko OpenGL 3.2, ale z niektórymi elementami 3.3, takimi jak określenie lokalizacji atrybutu (#extension GL_ARB_explicit_attrib_location : enable). Kompilator shaderów akceptuje wersje do 4.10. Mogli zostawić to tam dla kompatybilności lub (SPOSOBY), którą pierwotnie zamierzali wspierać 4.1.

Jest to przynajmniej mój wniosek po kilku tygodniach z 10.8.

EDYCJA: Wygląda na to, że spekulacje 4.10 były na miejscu. 10.9-10.12 wsparcie do wersji 4.10. Wydaje mi się, że chcieli wydać zasoby na ich api Metal zamiast jechać dalej i uzyskać shadery Compute w ..

+1

It należy zauważyć, że jeśli '#extension GL_ARB_explicit_attrib_location: enable' faktycznie działa, jest to niezgodne ze specyfikacją, ponieważ OpenGL nie anonsuje GL_ARB_explicit_attrib_location. Albo to, albo strona rozszerzenia [OpenGL firmy Apple jest nieaktualna.] (Https://developer.apple.com/graphicsimaging/opengl/capabilities/) –

+1

Tak. Mogę sprawdzić, czy to rozszerzenie działa zarówno na ATI, jak i na Nvidii w wersjach 10.7 i 10.8. Wykryli to przypadkowo podczas przenoszenia odroczonego modułu cieniującego do GLSL 1.5/OS X, który musiał obsługiwać określanie lokalizacji w module cieniującym fragment. (renderowanie do wielu załączników FBO) Już nauczyłem się na własnej skórze, jak ważne jest to i był zachwycony, że nie musiałem go naprawiać na własnej skórze. – Grimmy

Powiązane problemy