Teraz nadszedł czas aby poszerzyć wiedzę na temat grafiki a dokładnie rzecz ujmując, chciałam dzisiaj zając się bibiotekom OpenGl. W tym poście umieszczę, na razie tylko informacje podstawowe informacje o bibliotece OpenGL, składnia funkcji oraz typy danych. W kolejnym poście zajmę się dalszym rozwinięciem informacji na temat biblioteki.
Podstawy
Pierwsza wersja biblioteki OpenGL
(ang. Open Graphics Library) powstała w 1992 roku na bazie
języka GL opracowanego przez firmę Silicon Graphics Inc. (w
skrócie SGI) na potrzeby stacji graficznych IRIS. Dopiero jednak
sukces systemów z rodziny Microsoft Windows, w których
zaimplementowano OpenGL w wersji 1.1, stał się początkiem ogromnej
popularności biblioteki. Obecnie OpenGL jest podstawowa
niskopoziomowa biblioteka graficzna 3D, obsługiwana przez wszystkie
liczące się systemy operacyjne oraz większość procesorów
graficznych.
Niezależność od platformy sprzętowej oraz ogólnie dostępna specyfikacji czyni z OpenGL standard powszechnie wykorzystywany przez producentów oprogramowania użytkowego i gier. Rozwojem OpenGL zajmuje się organizacja ARB (ang. Architecture Review Board), w skład której wchodzą przedstawiciele firm 3DLabs, Apple, ATI, Dell, IBM, Intel, NVIDIA, SGI i Sun (stan na koniec 2004 roku). Taki sposób wprowadzania zmian w bibliotece zapewnia zachowanie niezależności OpenGL od jednej platformy sprzętowej lub programowej przy jednoczesnym uwzględnieniu do najnowszych osiągnięć w dziedzinie grafiki komputerowej. Materiały ze spotkań członków ARB, specyfikacje i szeregu innych materiałów na temat OpenGL dostępne są na oficjalnej stronie ARB: http://www.opengl.org/. Ważnym uzupełnieniem OpenGL jest biblioteka GLU (ang. OpenGL Graphics System Utility Library). GLU zawiera szereg dodatkowych narzędzi, w tym do obsługi macierzy, odwzorowania tekstur, kafelkowania wielokątów, powierzchni drugiego stopnia oraz krzywych i powierzchni NURBS.
Niezależność od platformy sprzętowej oraz ogólnie dostępna specyfikacji czyni z OpenGL standard powszechnie wykorzystywany przez producentów oprogramowania użytkowego i gier. Rozwojem OpenGL zajmuje się organizacja ARB (ang. Architecture Review Board), w skład której wchodzą przedstawiciele firm 3DLabs, Apple, ATI, Dell, IBM, Intel, NVIDIA, SGI i Sun (stan na koniec 2004 roku). Taki sposób wprowadzania zmian w bibliotece zapewnia zachowanie niezależności OpenGL od jednej platformy sprzętowej lub programowej przy jednoczesnym uwzględnieniu do najnowszych osiągnięć w dziedzinie grafiki komputerowej. Materiały ze spotkań członków ARB, specyfikacje i szeregu innych materiałów na temat OpenGL dostępne są na oficjalnej stronie ARB: http://www.opengl.org/. Ważnym uzupełnieniem OpenGL jest biblioteka GLU (ang. OpenGL Graphics System Utility Library). GLU zawiera szereg dodatkowych narzędzi, w tym do obsługi macierzy, odwzorowania tekstur, kafelkowania wielokątów, powierzchni drugiego stopnia oraz krzywych i powierzchni NURBS.
Składnia
Polecenia OpenGL określane są jako
funkcje lub procedury. Znaczna część funkcji
wykonuje te same operacje, ale rożni się zbiorem argumentów.
Przyjęta konwencja nazewnictwa określa ilość i rodzaj parametrów
funkcji według poniższego schematu:
rtype
Name {1|2|3|4} {b|s|i|f|d|ub|us|ui} {v}
([args,] T arg1, ..., T argN [,args])
([args,] T arg1, ..., T argN [,args])
gdzie poszczególne elementy oznaczają:
rtype | wartość zwracana przez funkcje. |
Name | nazwa funkcji poprzedzona przedrostkiem gl lub glu dla funkcji z biblioteki GLU. |
1, 2, 3, 4 | ilość argumentów funkcji. |
b | argumenty typu GLbyte. |
s | argumenty typu GLshort. |
i | argumenty typu GLint. |
f | argumenty typu GLfloat. |
d | argumenty typu GLdouble. |
ub | argumenty typu GLubyte. |
us | argumenty typu GLushort. |
ui | argumenty typu GLuint. |
v | argument funkcji stanowi tablica wartości - w tym wypadku nie występuje określenie ilości argumentów funkcji. |
T arg1, ..., T argN | argumenty funkcji. |
Składnia ta przypomina w swoich
założeniach notacje węgierska, stosowana m.in. w API systemów z
rodziny Windows. Może ona początkowo sprawiać problemy, ale przy
pewnej praktyce okazuje się praktyczna i wygodna w stosowaniu.
Podobnie jak w specyfikacja biblioteki OpenGL ta i dalsza
część opisu wykorzystuje notacje przyjęta w języku ANSI C.
część opisu wykorzystuje notacje przyjęta w języku ANSI C.
Typy danych w OpenGL
typ OpenGL | minimalna ilość bitów |
opis |
---|---|---|
GLboolean | 1 | typ logiczny |
GLbyte | 8 | liczba całkowita ze znakiem (U2) |
GLubyte | 8 | liczba całkowita bez znaku |
GLchar | 8 | ciąg znaków tekstowych |
GLshort | 16 | liczba całkowita ze znakiem (U2) |
GLushort | 16 | liczba całkowita bez znaku |
GLint | 32 | liczba całkowita ze znakiem (U2) |
GLuint | 32 | liczba całkowita bez znaku |
GLsizei | 32 | nieujemna liczba całkowita |
GLenum | 32 | typ wyliczeniowy całkowity |
GLintptr | ptrbits | wskaźnik na liczbę całowitą ze znakiem (U2) |
GLsizeiptr | ptrbits | wskaźnik na nieujemna liczbę całkowita |
GLbitfield | 32 | pole bitowe |
GLfloat | 32 | liczba zmiennoprzecinkowa |
GLclampf | 32 | liczba zmiennoprzecinkowa z przedziału [0, 1] |
GLdouble | 64 | liczba zmiennoprzecinkowa |
GLclampd | 64 | liczba zmiennoprzecinkowa z przedziału [0, 1] |
Specyfikacja nie określa jakiego rodzaju typy danych są użyte w konkretnej implementacji biblioteki OpenGL. W szczególności typy danych OpenGL nie są typami danych występującymi w języku C (pomimo częściowej zgodności nazw). Implementacja OpenGL może stosować typy danych zawierające większą niż minimalna ilość bitów. prtbits oznacza minimalna ilość bitów niezbędna do umieszczenia wskaźnika Stad typy intptr i sizeiptr muszą umożliwić zapamiętanie dowolnego adresu. Poza wyżej wymienionymi typami danych biblioteka OpenGL zawiera typ pusty GLvoid.
Ja się aż tak dokłądnie na kwestiach informatycznych nie znam, ale wiem z doświadczenia, że na pewno dobre oprogramowanie się przydaje. Jak czytałem niedawno na stronie https://www.connecto.pl/oprogramowanie-dla-produkcji/ to właśnie oprogramowanie dla produkcji jest niezwykle ważne.
OdpowiedzUsuńProfesjonalny grafik komputerowy powinien być na bieżąco z najnowszymi trendami w projektowaniu oraz posiadać umiejętności pracy z zaawansowanymi narzędziami graficznymi. Ważne jest, aby był w stanie oferować klientom innowacyjne i skuteczne rozwiązania, które pomogą wyróżnić ich markę na rynku. Dobry grafik powinien także oferować elastyczność w adaptacji do różnych stylów i preferencji, co jest istotne w pracy nad różnorodnymi projektami. Dla osób zainteresowanych usługami graficznymi, strona https://grafik.warszawa.pl/ dostarcza informacji o dostępnych opcjach oraz portfolio, co może pomóc w ocenie kreatywności i profesjonalizmu potencjalnego wykonawcy.
OdpowiedzUsuń