Жарық (Освещение) OpenGL – де бірнеше көзден шығатын әрқайсысы қосылған немесе өшірілген болатын жарық моделі қолданылады. Сонымен қатар жалпы фондық жарық бар. Обьектілерді дұрыс жарықтандыру үшін обьектінің әрбір беті үшін материалды анықтау қажет. Материал өз жарығын шығару мүмкін. Түскен жарықты барлық бағытта шашырату мүмкін немесе айна сияқты жарықты белгілі уақытта бейнелеуі мүмкін.
Қолданушы 8-ге дейін жарық көздерін, олардың қасиеттерін анықтай алады. Жарық көздерінің қасиеттері. Олар: түс, орналасуы және бағыты. Бұл қасиетті орнату үшін:
gllight{i f}[v](GLenum light, GLenum pname, TYPE param) процедурасы қолданылады. Мұндағы light қабылдайтын мәндері.
GL_LIGHT0, GL_LIGHT1, ..., GL_LIGHT7.
pname параметрі жарық көзінің сипаттамасын анықтайды. Жарық көзін қолдану үшін есептеулер жүргізуге рұхсат glEnable(GL_LGHTING) командасымен беріледі, ал сәйкес жарық көзін қосуға рұхсат glEnable командасымен беріледі. Жалпы фондық жарықты gtLightModel{i f} [v] (GL_LIGHT_MODEL_AMBIENT, ambientColor) командасымен анықталады. Бақылаушының орналасуын обьектідегі биіктерге әсер етеді. Үнсіз келісім бойынша жарық есептеулерінде бақылаушы шексіз алыс нүктеде орналасады деп саналады. Әрбір төбе үшін есептеулерді жеке жүргізу үшін: glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE) бұл шынайы бейне алу үшін қолданылады. Обьектінің алдыңғы және артқы беттерін жарықтандыру үшін: glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE) командасы қолданылады.
Материал Обьектінің материал қасиеттері келесі процедура көмегімен анықталады.glMaterial{i f}[v](GLenum face, GLenum pname, TYPE param).
Мұндағы face параметрі қасиет қай бет үшін берілетіні анықтайды және келесі мәндердің біреуін GL_BACK, GL_FRONT_AND_BACK, GL_FRONT қабылдайды.
Pname параметрі материалдың қай қасиеті берілетінін анықтайды. Қасиеттінің сипаттамасы: glMaterial{i f}[v] процедурасын қолданғанда Pname параметрі келесі мәндерді қабылдай алады:
GL_AMBIENT – түсті анықтайтын 4 мән. Үнсіз келісім бойынша (0.2, 0.2, 0.2, 1.0).
GL_DIFFUSE – шашыраңқы және диффузиялық бейнелеудегі түсті анықтайтын 4 мән (0.2, 0.8, 0.8, 1.0).
GL_SPECULAR – бейнелеудің түсі. Үнсіз келісім бойынша мәні (0.0, 0.0, 0.0, 1.0) болады.
GL_EMISSION – обьект шығаратын түс. Үнсіз келісім бойынша (0.0, 0.0, 0.0, 1.0) .
GL_SHININESS – айналық бейнелеудің дәрежесін анықтайтын бір бүтін нақты мән.
GL_COLORINDE – шашыраңқы диффузиялық және айналық бейнеленулердің индекстерін анықтауға мүмкіндік беретін үш бүтін немесе нақты сан.
glMaterial{i f} командасы үшін p name параметрі GLSHININESS қабылдай алады.
Текстура Текстураны қолдану, бейнені көпбұрышқа орналастырып осы көпбұрышты түрлендіруге мүмкіндік береді. Бір және екі өлшемді текстураларды қолдайды. Текстураны қолданудың әртүрлі тәсілдерін ұсынады.
Текстураны қолдану алдында
glEnable(GL_TEXTURE1D)
glEnable(GL_TEXTURE_2D) командасымен беріледі.
Екі өлшемді процедура қолданылады.
glTexlmage2D(GLenum target, GLint level, GLint component,
GLsizei width, GLsizei height, GLint border, GLenum format,
GLenum type, const GLvoid *pixels).
target параметрі болашақта қолдану үшін арналған. OpenGL ағымдағы версиясында GL_TEXTURE_2D болады.