Możesz dzielić się swoją wiedzą doskonaląc ją ( jak? ) Zgodnie z zaleceniami odpowiednich projektów .
Język cieniowania OpenGL | |
Data pierwszej wersji | 2004 |
---|---|
Stronie internetowej | www.opengl.org |
OpenGL Shading Language ( GLSL ) to język programowania z shaderów na wysokim poziomie , którego składnia bazuje na języku C . Pozwalają one na zaawansowaną kontrolę z karty graficznej rurociągu . GLSL został opracowany przez OpenGL Architecture Review Board, aby ułatwić programowanie shaderów za pomocą API OpenGL bez konieczności używania języka asemblera ARB lub języków specyficznych dla sprzętu.
Wraz z rozwojem kart graficznych dodano nowe funkcje, aby zapewnić większą elastyczność w potoku renderowania, jeśli chodzi o przetwarzanie wierzchołków (zwanych również „wierzchołkami”) i fragmentów. Te elementy stały się programowalne przy użyciu shaderów fragmentów i wierzchołków.
Pierwotnie ta funkcjonalność została osiągnięta poprzez pisanie shaderów w asemblerze ARB ; złożone i niezbyt intuicyjne zadanie. OpenGL Architecture Review Board stworzył OpenGL Shading Language , aby zapewnić bardziej intuicyjny sposób programowania procesorów graficznych przy zachowaniu korzyści z wolnego standardzie, które złożyły historii OpenGL .
Pierwotnie wprowadzony jako rozszerzenie OpenGL 1.4, GLSL został oficjalnie włączony do jądra OpenGL 2.0 w 2004 roku przez OpenGL ARB. Była to pierwsza poważna rewizja OpenGL od czasu stworzenia OpenGL 1.0 w 1992 roku.
Kilka zalet GLSL:
Wersje GLSL ewoluowały wraz z określonymi wersjami API OpenGL . Tylko w OpenGL w wersji 3.3 i nowszych numery wersji głównej i podrzędnej GLSL i OpenGL są zgodne. Oto wersje GLSL dla każdej wersji OpenGL :
Wersja GLSL | Wersja OpenGL | Przestarzały | Kod preprocesora |
---|---|---|---|
1.10.59 | 2,0 | 30 kwietnia 2004 r. | #wersja 110 |
1,20.8 | 2,1 | 07 września 2006 | #wersja 120 |
1.30.10 | 3,0 | 22 listopada 2009 | #wersja 130 |
1.40.08 | 3.1 | 22 listopada 2009 | #wersja 140 |
1.50.11 | 3.2 | 04 grudnia 2009 | #wersja 150 |
3,30.6 | 3,3 | 11 marca 2010 | #wersja 330 |
4.00.9 | 4.0 | 24 lipca 2010 | #wersja 400 |
4.10.6 | 4.1 | 24 lipca 2010 | #wersja 410 |
4.20.11 | 4.2 | 12 grudnia 2011 | #wersja 420 |
4.30.8 | 4,3 | 7 lutego 2013 | #wersja 430 |
4.40.9 | 4.4 | 16 czerwca 2014 | #wersja 440 |
4,50.7 | 4,5 | 09 maja 2017 r. | #wersja 450 |
4,60,5 | 4,6 | 14 czerwca 2018 r. | #wersja 460 |
OpenGL ES i WebGL używają języka cieniowania OpenGL ES ( GLSL ES ).
Wersja ES GLSL | Wersja OpenGL ES | Wersja WebGL | Wersja GLSL | Przestarzały | Kod preprocesora |
---|---|---|---|---|---|
1.00.17 | 2,0 | 1,0 | 1,20 | 12 maja 2009 | #wersja 100 |
3.00.6 | 3,0 | 2,0 | 3.30 | 29 stycznia 2016 | #wersja 300 es |
3.10.5 | 3.1 | GLSL ES 3,00 | 29 stycznia 2016 | #wersja 310 es | |
3.20.6 | 3.2 | GLSL ES 3.10 | 10 lipca 2019 | #wersja 320 es |
Oba języki są powiązane, ale nie są w pełni kompatybilne. Mogą być transkompilowane na siebie za pomocą SPIR-Cross .