Пређи на садржај

OpenGL

С Википедије, слободне енциклопедије
OpenGL
Видео-игра калкулације рендеровања у реалном времену предају GPU преко OpenGL.Рендеровани резултати се не шаљу назад у главну меморију, већ у бафер оквира видео меморије. Контролер екрана ће затим послати ове податке на уређај за приказ.
Видео-игра калкулације рендеровања у реалном времену предају GPU преко OpenGL.Рендеровани резултати се не шаљу назад у главну меморију, већ у бафер оквира видео меморије. Контролер екрана ће затим послати ове податке на уређај за приказ.
Оригинални аутор(и)Silicon Graphics
Програмер(и)Khronos Group
(formerly ARB)
Прво издање30. јун 1992.; пре 32 године (1992-06-30)
Прелиминарно издање
4.6
Написан уC[1]
Тип3D graphics API
Лиценца
  • Отворени код лиценца за коришћење С.И. Ово је лиценца за бесплатни софтвер Б по узору на БСД, Х и Мозила лиценце.
  • Лиценца за жиг за нове кориснике лиценци који желе да користе ОпенГЛ заштитни знак и лого и потврђују усклађеност.[2]
Веб-сајтwww.opengl.org

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): црвена, зелена, плава, жута. Због претходних трансформација над матрицом којом се координате квадрата трансформишу, исти ће бити приказан у пројекцији.

Референце

[уреди | уреди извор]
  1. ^ Lextrait, Vincent (јануар 2010). „The Programming Languages Beacon, v10.0”. Архивирано из оригинала 30. 5. 2012. г. Приступљено 14. 3. 2010. 
  2. ^ „Products: Software: OpenGL: Licensing and Logos”. SGI. Архивирано из оригинала 1. 11. 2012. г. Приступљено 7. 11. 2012. 
  3. ^ „The OpenGL Graphics System: A Specification” (PDF). 4.0 (Core Profile). 11. 3. 2010. 


Спољашње везе

[уреди | уреди извор]