OpenGL
Видео-игра калкулације рендеровања у реалном времену предају GPU преко OpenGL.Рендеровани резултати се не шаљу назад у главну меморију, већ у бафер оквира видео меморије. Контролер екрана ће затим послати ове податке на уређај за приказ. | |
Оригинални аутор(и) | Silicon Graphics |
---|---|
Програмер(и) | Khronos Group (formerly ARB) |
Прво издање | 30. јун 1992. |
Прелиминарно издање | 4.6
|
Написан у | C[1] |
Тип | 3D graphics API |
Лиценца |
|
Веб-сајт | www |
OpenGL (енгл. Open Graphics Library)[3] је стандардна спецификација која описује вишеплатформски програмски интерфејс за писање програма који раде са дводимензионалном и тродимензионалном рачунарском графиком. Интерфејс чини преко 250 различитих функција које се могу користити за израду комплексних тродимензионалних сцена од једноставних елемената. OpenGL је развијен од стране Силикон Графикс (енгл. Silicon Graphics Inc., SGI) 1992. године и популаран је у индустрији видео игара где је пандан Мајкрософтовом Direct3D. Поред овога, много чешће се користи у научне сврхе, код CAD-програма, у пројектима виртуелне стварности као и у разним симулаторима.
Пример
[уреди | уреди извор]Следи једноставан пример једне OpenGL сцене са коментарима. На слици је приказан излаз нацртан директно у OpenGL.
glClear(GL_COLOR_BUFFER_BIT);
Чишћење фрејма пре почетка цртања. Цео фрејм ће бити обојен у подразумевану боју која је у овом случају црна.
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
Наглашавање да ће матрица за приказ тродимензионог модела бити трансформисана и њено подешавање на идентичну матрицу.
glTranslatef(0,0,-5);
glRotatef(45,0,1,1);
Транслација за -5 јединица по Z оси (помоћу glTranslatef) и ротација за 45° око вектора (0,1,1) (помоћу glRotatef). Ове трансформације се врше на претходно изабраној матрици.
glBegin(GL_POLYGON);
glColor3f(1,0,0); glVertex3f(-1,-1,0); // црвено теме
glColor3f(0,1,0); glVertex3f(-1, 1,0); // зелено теме
glColor3f(0,0,1); glVertex3f( 1, 1,0); // плаво теме
glColor3f(1,1,0); glVertex3f( 1,-1,0); // жуто теме
glEnd();
Следи цртање модела. Биће исцртан квадрат у XY равни са тачкама у (±1,±1) (задатим са glVertex3f), чија темена редом имају боје (задате са glColor3f): црвена, зелена, плава, жута. Због претходних трансформација над матрицом којом се координате квадрата трансформишу, исти ће бити приказан у пројекцији.
Види још
[уреди | уреди извор]Референце
[уреди | уреди извор]- ^ Lextrait, Vincent (јануар 2010). „The Programming Languages Beacon, v10.0”. Архивирано из оригинала 30. 5. 2012. г. Приступљено 14. 3. 2010.
- ^ „Products: Software: OpenGL: Licensing and Logos”. SGI. Архивирано из оригинала 1. 11. 2012. г. Приступљено 7. 11. 2012.
- ^ „The OpenGL Graphics System: A Specification” (PDF). 4.0 (Core Profile). 11. 3. 2010.
Спољашње везе
[уреди | уреди извор]- Званични веб-сајт
- SGI-ова интернет страна о OpenGL
- NeHe OpenGL туторијали
- OpenGL Бенчмарк Це против Перла, Перл против Пајтона, SDL::OpenGL против POGL, Microsoft Windows против Линукса