Opengl архитектурасы. Компьютерлік графика



Кіріспе
1. Компьютерлік графика ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 3
а) Растрлық графика ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
б)Векторлық графика
в)Фрактальды графика
2. OpenGL кітапханасы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 4
3. OpenGL интерфейс ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 5
4. OpenGL архитектурасы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 5
5. Геометриялық объектілерді салу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 8
6. Растрлық графика ерекшелігі. Photoshop бағдарламасының интерфейсі ... ... ... 11
7. Corel Draw программасының интерфейсі. Фигураларды салу, оларды өзгерту... 14
8. AutoCad программасы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 21
9. 3D Max программасы ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 22
10. Қорытынды ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... 27
Есеп ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... . 28
Қолданылған әдебиеттер ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 29
Бұл компьютерге графикалық бейнелермен (суреттермен, сызумен, видеокадрлармен және т.б.) жұмыс істеу мүмкіндігін беретін информатиканың бір бөлімі. Сонымен бірге компьютер көмегімен графикалық бейнелер алу әдістері құрылып қолданылады.

Компьютерлік графиканың даму этаптары:
- белгілік баспа құрылғысында символдан жасалған мозаика түріндегі псевдографиялық баспа;
- плоттер көмегімен қағазға графикалық бейнелерді (графиктер, диаграмма, сызбалар) шығару;
- түрлі-түсті баспа құрылғыларға графикалық баспа, көпшілікке арналған графикалық пакеттерге графикалық дисплейлерді пайдалану.

Компьютерлік графиканың қолданылу облысы:
1. Ғылыми графика
2. Іскерлік графика
3. Конструкторлық графика
4. Безендірмелік графика
5. Көркемдік және жарнамалық графика: үш өлшемді шынайы бейнелер, компьютерлік жасанды қозғалыс, мультимедиа.

Компьютерлік графика кескіндерін қалыптастыру әдістеріне байланысты графика растрлық (bitmap немесе raster), векторлық (vector draw) және фрактальды (fractal) деп бөлінеді.
Растрлық кескіндер арасында ерекше маңызды орын алатын нүкте шешуі (разрешение) түсінігі. Шешу деп - ұзындық бірлігінде жататын нүктелер санын айтады. Экран бетіндегі нүктені көбінесе пиксел деп атайды. Шешу – растрдың маңызды сипаттамасы. Оның өсуі пикселдердің майда болуына әсер етеді, сондықтан біз пикселдерді бөлек тұрған нүктелер ретінде қабылдамай, ұсақталмаған бір объект ретінде көріп қабылдаймыз. Қазіргі заманғы мониторларда пиксел ұзындығы 0,28 мм-0,21 мм.
Жылдан жылға қазіргі мониторлардың шешуші қабілеттілігі өсуде. Шешудің өлшем бірліктеріде әр түрлі болады. Олар шешу ұғымының ерекшеленуіне байланысты: 1. оригинал шешуі; 2. экрандағы кескінді шешуі; 3. баспаға жіберілетін кескін шешуі.
Оригиналдың шешуін dpi (dots per inch) – дюймдағы нүктелер санымен өлшейді (1дюйм ~25 мм3). Енді сол оригиналды экранда бейнелеу үшін пиксел қолданылады. Пиксел өлшемі экранның шешуіне, оригиналдың шешуіне және бейне масштабына байланысты.


Растрлық графика
Растрлық графиканың негізгі элементі нүкте болып табылады. Принтердің паспортында жазылған 600 dpi деген сипаттама 1 дюйм кесіндісінде принтер 600 нүкте басып шығаратынын көрсетеді. Яғни баспадан шығару үшін бейне растрленуі керек. Растрлену процесі принтердің лазер сәулесін құрайтын нүктелерді растрлік нүктелерді құрайтын топтарға біріктіруден тұрады. Біріктіру кезінде оригинал үстінен растрлық тор орнатылады. Бұндай тордың жиілігі lpi (lines per inch) – дюймдағы сызықтар санымен өлшенеді де линиатура деп аталады. Сол тор ұяшықтары растр нүктелерін құрайды. Растрлық кескін линиатурасы әрқашан принтер шешуінен төмен, өйткені бір ғана растрлік нүктені принтерден шығару үшін оған бірнеше нүкте қатысады. Растрлік графиканың кемшілігі – кескінді үлкейту кезіндегі пикселизация. Кескін масштабын үлкейткен кезде оригиналдың нүктелері де үлкейіп көзге түсетіндей болып, кескінді бұрмалайды.

Векторлық графика
Векторлық графикадағы бейнелеуде негізгі элемент сызық болып табылады. Сызық - бұл векторлық графиканың негізгі объектісі және математикалық түрде бір объект сияқты қабылданады, сондықтан векторлық графикада объектіні кескіндеу үшін растрлық графикаға қарағанда берілгендер көлемі аздау болады. Кез келген объект сияқты сызық та өзінің қасиеттерімен ерекшеленеді: формасы (түзу, қисық), қалындығы, түсі, сызықтарымен (біртұтас, үздікті). Тұйық сызықтар толықтыру қасиетке ие болады. Толықтыру растрлық және векторлық болып бөлінеді. Қарапайым сызық екі жағынан нүктелермен шектеледі, оларды түйін деп атайды. Векторлық графиканың барлық объектілері сызық арқылы құрастырылады. Векторлық графиканың объектілерінің негізі - математикалық аппарат.
Нүкте – бұл объект жазықтықта екі (х,у) сандармен (координаталармен) ұсынылады, олар сол нүктенің координаталар ортасына қарай орналасуын білдіреді.
Түзу сызық – оның теңдеуі y=kx+b, мұнда k мен b коэффициенттер.
Түзу кесіндісі – оны көрсету үшін басы мен аяғын сипаттайтын екі параметр (нүктелер) қажет.
Екінші деңгейдегі қисықтар – бұларға парабола, гипербола, эллипс және т.б. жатады.
Фрактальды графика
1. Виноградов В. Начертательная геометрия: Москва, Просвещение, 1989.
2. Романычева Э., Соколова Т., Шандурина Г. Начертательная и компьютерная графика. Москва, ДМК, 2001.
3. Красильникова Г., Самсонова В., Тарелкин С. Автоматизация инженерно-графических работ. СПб, Питер, 2001.
4. Шикин Е., Боресков А. Компьютерная графика. Москва, Диалог-МИФИ, 2000.
5. Тихомиров Ю. Программирование трехмерной графики.
6. Ткачев Д. Самоучитель AutoCAD 2005, Питер-2005.
7. Стразнизницкас М. Эффективная работа с Photoshop 5.- СПб.: Питер, 1999.
8. Электронный учебник по Photoshop 5.5.
9. Миронов Д. Corel Draw X3. Питер, 2006
10. Бондаренко С., Бондаренко М. 3DS Max 6. Питер, 2005
11. Бебрс А. AutoCad 2006. Москва, Триумф, 2007

Мазмұны
Мазмұн
Кіріспе
1. Компьютерлікграфика
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... .
... ... ... ... ... ... .. 3

а) Растрлық графика
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... 4
б)Векторлық графика
в)Фрактальды графика

2. OpenGL кітапханасы
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... 4

3. OpenGL интерфейс
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... . 5

4. OpenGL архитектурасы
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... . 5

5. Геометриялық объектілерді
салу ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... .. 8

6. Растрлық графика ерекшелігі. Photoshop бағдарламасының интерфейсі
... ... ... 11
7. Corel Draw программасының интерфейсі. Фигураларды салу, оларды
өзгерту... 14
8. AutoCad программасы
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... . 21
9. 3D Max программасы
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... 22
10. Қорытынды
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... 27
Есеп
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... ... ... ... ... ... ... ... ... ... .. 28
Қолданылған әдебиеттер
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ..
... ... ... ... ... .. 29

Компьютерлік графика

Бұл компьютерге графикалық бейнелермен (суреттермен, сызумен,
видеокадрлармен және т.б.) жұмыс істеу мүмкіндігін беретін информатиканың
бір бөлімі. Сонымен бірге компьютер көмегімен графикалық бейнелер алу
әдістері құрылып қолданылады.

Компьютерлік графиканың даму этаптары:
- белгілік баспа құрылғысында символдан жасалған мозаика түріндегі
псевдографиялық баспа;
- плоттер көмегімен қағазға графикалық бейнелерді (графиктер, диаграмма,
сызбалар) шығару;
- түрлі-түсті баспа құрылғыларға графикалық баспа, көпшілікке арналған
графикалық пакеттерге графикалық дисплейлерді пайдалану.

Компьютерлік графиканың қолданылу облысы:
1. Ғылыми графика
2. Іскерлік графика
3. Конструкторлық графика
4. Безендірмелік графика
5. Көркемдік және жарнамалық графика: үш өлшемді шынайы бейнелер,
компьютерлік жасанды қозғалыс, мультимедиа.

Компьютерлік графика кескіндерін қалыптастыру әдістеріне байланысты
графика растрлық (bitmap немесе raster), векторлық (vector draw) және
фрактальды (fractal) деп бөлінеді.
Растрлық кескіндер арасында ерекше маңызды орын алатын нүкте шешуі
(разрешение) түсінігі. Шешу деп - ұзындық бірлігінде жататын нүктелер санын
айтады. Экран бетіндегі нүктені көбінесе пиксел деп атайды. Шешу – растрдың
маңызды сипаттамасы. Оның өсуі пикселдердің майда болуына әсер етеді,
сондықтан біз пикселдерді бөлек тұрған нүктелер ретінде қабылдамай,
ұсақталмаған бір объект ретінде көріп қабылдаймыз. Қазіргі заманғы
мониторларда пиксел ұзындығы 0,28 мм-0,21 мм.

1 сурет. Растр 2 сурет. Растрмен құрылған кескін

Жылдан жылға қазіргі мониторлардың шешуші қабілеттілігі өсуде.
Шешудің өлшем бірліктеріде әр түрлі болады. Олар шешу ұғымының
ерекшеленуіне байланысты: 1. оригинал шешуі; 2. экрандағы кескінді шешуі;
3. баспаға жіберілетін кескін шешуі.
Оригиналдың шешуін dpi (dots per inch) – дюймдағы нүктелер санымен
өлшейді (1дюйм ~25 мм3). Енді сол оригиналды экранда бейнелеу үшін пиксел
қолданылады. Пиксел өлшемі экранның шешуіне, оригиналдың шешуіне және бейне
масштабына байланысты.

Растрлық графика
Растрлық графиканың негізгі элементі нүкте болып табылады. Принтердің
паспортында жазылған 600 dpi деген сипаттама 1 дюйм кесіндісінде принтер
600 нүкте басып шығаратынын көрсетеді. Яғни баспадан шығару үшін бейне
растрленуі керек. Растрлену процесі принтердің лазер сәулесін құрайтын
нүктелерді растрлік нүктелерді құрайтын топтарға біріктіруден тұрады.
Біріктіру кезінде оригинал үстінен растрлық тор орнатылады. Бұндай тордың
жиілігі lpi (lines per inch) – дюймдағы сызықтар санымен өлшенеді де
линиатура деп аталады. Сол тор ұяшықтары растр нүктелерін құрайды. Растрлық
кескін линиатурасы әрқашан принтер шешуінен төмен, өйткені бір ғана
растрлік нүктені принтерден шығару үшін оған бірнеше нүкте қатысады.
Растрлік графиканың кемшілігі – кескінді үлкейту кезіндегі пикселизация.
Кескін масштабын үлкейткен кезде оригиналдың нүктелері де үлкейіп көзге
түсетіндей болып, кескінді бұрмалайды.

Векторлық графика
Векторлық графикадағы бейнелеуде негізгі элемент сызық болып табылады.
Сызық - бұл векторлық графиканың негізгі объектісі және математикалық түрде
бір объект сияқты қабылданады, сондықтан векторлық графикада объектіні
кескіндеу үшін растрлық графикаға қарағанда берілгендер көлемі аздау
болады. Кез келген объект сияқты сызық та өзінің қасиеттерімен
ерекшеленеді: формасы (түзу, қисық), қалындығы, түсі, сызықтарымен
(біртұтас, үздікті). Тұйық сызықтар толықтыру қасиетке ие болады. Толықтыру
растрлық және векторлық болып бөлінеді. Қарапайым сызық екі жағынан
нүктелермен шектеледі, оларды түйін деп атайды. Векторлық графиканың барлық
объектілері сызық арқылы құрастырылады. Векторлық графиканың объектілерінің
негізі - математикалық аппарат.
Нүкте – бұл объект жазықтықта екі (х,у) сандармен (координаталармен)
ұсынылады, олар сол нүктенің координаталар ортасына қарай орналасуын
білдіреді.
Түзу сызық – оның теңдеуі y=kx+b, мұнда k мен b коэффициенттер.
Түзу кесіндісі – оны көрсету үшін басы мен аяғын сипаттайтын екі
параметр (нүктелер) қажет.
Екінші деңгейдегі қисықтар – бұларға парабола, гипербола, эллипс және
т.б. жатады.
Фрактальды графика
Фрактальды графика векторлық графика сияқты математикалық есептеулерге
негізделген. Фрактальды графикада негізгі элемент болып математикалық
формула табылады, яғни компьютердің жадында ешқандай объект сақталмайды
және кескіндер тек теңдеулер арқылы құрылады. Фрактал деп бүтінге тән
бөліктерден тұратын структураны атайды. Осындай әдіспен қарапайым
регулярлық құрылымдар, күрделі иллюстрациялар, табиғи ландшафтар және үш
өлшемді обьектілер салынады.

OpenGL кітапханасы

OpenGL - Open Graphics Library, ашық графикалық кітапхана болып
саналады. Ашық термині өндірішулерге бағынбайды деген ұғымды білдіреді.
Бұл кітапхананы Microsoft, Silicon Graphics сияқты ірі корпорациялар
шығарады.
OpenGL кітапханасы үш мөлшерлі графиканы программалайтын интерфейс
негізінде қарастырылады. Бағдарламаны құрушы белгілі бір биіктікті таңдап,
оны қалайша қосу керектігін көрсетеді. Камералардың және шамдардың
параметрлерін құрайды. Ал OpenGL кітапханасы бұл параметрлерді қолдана
отырып, экранға қажетті суретті бейнелеп шығарады. Бұл кітапханаға
графикалық қосымшаларды программалауға қажетті 120-ға жуық командалар
кіреді. OpenGL графикалық жүйені қазіргі заманғы программалық және
аппараттық платформаларды шығарушылардың көбісі қолдайды. OpenGL
стандартының негізгі ерекшеліктері:
▪ тұрақтылық. Алғаш шыққан программалардың версиялары кейін шыққан
өзгерістерде есепке алынады
▪ сенімділік. OpenGL пайдаланған қосымшалар барлық операциялық
жүйелерінде бірдей графикалық нәтиже (көрініс) береді.
▪ қарапайымдылық. OpenGL стандартының түсінікті интерфейсі эффективті
қосымшаларды құруға мүмкіндік береді

OpenGL мүмкіндіктерін оның функциялары арқылы көрсетейік. Кітапхананың
функциялары 5 категорияға бөлінеді:
▪ қарапайым кесіндіні ұсыну функциялары. OpenGL-да примитив ретінде
нүкте, сызық, көпбұрыш т.б. қарастырады.
▪ жарық көзін ұсыну функциялары
▪ атрибуттарын ұсыну функциялары. Атрибуттар программистке бейненің
экрандағы көрінісін анықтауға көмектеседі. OpenGL жүйесі түсті,
текстураны, жарықтандыру параметрлерін орнатуға мүмкіндік береді.
▪ визуализация функциялары виртуальды кеңістікте камера объективін
орнатады, соған қарай жүйе кесіндіні дұрыс құруға мүмкіндік береді
▪ геометриялық түрлендіну функциялары программистке кері бұру, көшіру,
масштабтау амалдарын орындауға көмек береді

Одан басқа OpenGL қисықтар мен беттерді құру кезінде сплайндарды
пайдаланатын, көрінбейтін жақтарды өшіретін, кесінділермен пиксель
деңгейінде жұмыс атқаратын қосымша операцияларды орындайды.

OpenGL интерфейсі

OpenGL кітапханалар жиынынан тұрады. Барлық базалық функциялар негізгі
GL кітапханада орналасқан. Қосымша кітапханалардың тізімі:
1. GL Utility - GLU утилиталар кітапханасында куб, шар, цилиндр, диск
фигуралар жиыны, сплайн құру функциялары, матрицалармен орындалатын
операциялар жинақталған.
2. GL Utility Toolkit – GLUT қосымшасында ақпаратты терезелік жүйеде
ұсынуға керекті функциялар орналасқан.
Төмендегі суретте Windows жүйесінің басқаруымен жұмыс істейтін
кітапханалар жүйесі келтірілген.

OpenGL кітапхананың ұйымдастырылуы

OpenGL архитектурасы

OpenGL функциялары клиент-сервер моделінде таратылған. Қоымша
командаларды тудырып клиент ролін атқарады, ал OpenGL сервері сол
командаларды орындайды. Сервер мен клиент бір компьютерде орналасса, онда
динамикалық түрінде қосылатын DLL кітапханасы сервер ретінде болады. Егер
сервер бөлек компьютерде орналасса, онда берілгендерді алмастырушы арнайы
протокол қолданылады.
OpenGL графикалық жүйесі графикалық берілгендерді өңдейтін бірнеше
тізбектелген этаптардан тұратын конвейер деп саналады. OpenGL командалары
беру ретімен орындалады, ал объектіні анықтау үшін оның визуализациясы
кітапханадағы кадрлар буферіннен алынады.
OpenGL жүйесін графикалық аппаратураны басқаратын командалар тізімі
деп те айтуға болады. Егер ұсынылып отырған аппаратура кадрлар буферінде
анықталса, онда OpenGL орталық процессордың барлық ресурстарын пайдаланды.
Көбінесе графикалық аппаратура әр түрлі деңгейлі сызбалар, көпбұрыштар,
олардың үстінен орындалатын операцияларды ұсынады.

1 сурет. OpenGL конвейерінің жұмысы

OpenGL қолданушы мен аппаратура арасындағы қабат болып саналады.
Сондықтан ол аппараттық қолдаудың мүмкіндіктерін пайдаланатын әр түрлі
платформаларға бірлік интерфейс ұсынады.
OpenGL кадрлар буферіндегі графикалық примитивтерді (нүкте, кескін,
көпбұрыш т.б.) бір немесе одан көп төбе (vertex) арқылы анықтайды. Төбе
нүкте, көпбұрыштың бұрышы бола алады. Әр төбенің координаталары,
нормалі,текстуралық кординаталары және т.б. атрибуттары деп саналады.
Осының бәрін өңдейтін OpenGL командалары қосымша кітапханадағы функцияларды
шақыруымен іске асырылады.

Командалар синтаксисі

GL командаларының анықтамалары gl.h файлында орналасқан. Оны шақыру
үшін #include glgl.h жолын теру керек. GLU кітапханасын қосу үшін glu.h
файлы қосылады. Бұл кітапханалардың версиялары Microsoft Visual C++ немесе
Borland C++ 5.02 программалау тілдерінің дистрибутивтеріне енгізілген. GL
кітапхананың барлық командалары (процедуралар мен функциялары) gl, ал
константалар GL_ префикстерінен басталады.
OpenGL-де команданың толық аталуы төмендегідей сипатталады:
type glCommand_name[1 2 3 4][b s i f d ub us ui][v]
(type1 arg1,...,typeN argN)

Мұнда
gl берілген функция жататын кітапхананың аталуы, егер ол
функция GLU, GLUT, GLAUX кітапханаларынан болса, онда бұл
параметр glu, glut, glaux сәйкесінше
Command_name команда аталуы
[1 2 3 4] командағы берілгендер саны
[b s i f d ub аргумент типі: b символы Glbyte типін анықтайды (С\С++
us ui] тілдеріндегі char типі сияқты), f – Glfloat типі (float
типтегідей), i – GLint типі (int) және т.с.с
[v] бұл символдың бар болуы функция параметрлері ретінде
мәндер массивіне сілтеу пайдаланатынын білдіреді.

Төменде GLUT кітапханасын қолданып жазылған кішігірім программаның
мысалы келтірілген. Бұл программа “Hello, World!” сияқты мысалды жүзеге
асырады. Программаны орындағаннан кейін терезенің ортасында қызыл түсті
квадрат салынады.

#include stdlib.h
* GLUT кітапхананың қосылуы *
#include glglut.h
* терезенің бастапқы ені мен биіктігі*
GLint Width = 512, Height = 512;
* куба өлшемдері *
const int CubeSize = 200;
* бұл функция экранға шығаруды басқарады *
void Display(void)
{
int left, right, top, bottom;
left = (Width - CubeSize) 2;
right = left + CubeSize;
bottom = (Height - CubeSize) 2;
top = bottom + CubeSize;
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT);
glColor3ub(255,0,0);
glBegin(GL_QUADS);
glVertex2f(left,bottom);
glVertex2f(left,top);
glVertex2f(right,top);
glVertex2f(right,bottom);
glEnd();
glFinish();
}
* терезенің өлшемдерін өзгерту функциясы *
void Reshape(GLint w, GLint h)
{
Width = w;
Height = h;
* бейнелеу аймағының өлшемдерін орнату *
glViewport(0, 0, w, h);
* ортографиялық проекция *
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0, w, 0, h, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
* пернетақтадан түскен хабарламаны өңдейтін функция *
void Keyboard(unsigned char key, int x, int y)
{
#define ESCAPE '\033'
if( key == ESCAPE )
exit(0);
}

* қосымшаның бас циклі *
main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowSize(Width, Height);
glutCreateWindow("Red square example");
glutDisplayFunc(Display);
glutReshapeFunc(Reshape);
glutKeyboardFunc(Keyboard);
glutMainLoop();
}

Геометриялық объектілерді салу

OpenGL қолданатын программаның мәселесі үш өлшемді көріністі өңдеуде
және кадр буферінде интерактивті бейнелеуде. Үш өлшемді көрініс үш өлшемді
объектілерден, жарық көзінен және абстрактты бақылаушыдан (виртуальды
камера) тұрады. Сондықтан кесінді әр уақытта өзгеріліп тұрады. OpenGL оны
өзгертетін функцияны шақырады. Ол функция үш қадамнан тұрады:
1. OpenGL буферін тазалау;
2. Бақылаушының орнын анықтау;
3. Геометриялық объектілерді салу және өңдеу

1. Буферді тазалау командасы:
void glClearColor (clampf r, clampf g, clampf b, clampf a)
void glClear (bitfield buf)

Мұнда glClearColor команда кадр буферін толтыратын түсті орнатады.
Алғашқы үш параметр [0,1] интервалында жататын R,G, B түс компоненталарын
орнатады. Төртінші параметр бірге тең (0,0,0,1) қара түсті альфа
компонентаны ұсынады. glClear буферді тазалайды. Buf параметрі қай
буферлерді тазалайтын тұрақты сандар комбинациясын білдіреді. Түс пен оның
тереңділігі буферін тазартатын команда:
glClear(GL_COLOR_BUFFER_BIT  GL_DE PTH_BUFFER_BIT)

2. Бақылаушының орнын анықтау көп параметрлерге байланысты. Олардың
ішінде жарықтандыру моделі, объект қай материалдан жасалғанын талдау, жарық
көзін анықтау функциялары жатады.
Жарықтандыру моделі
OpenGL кітапханасында нүктенің түсін анықтайтын текстура және материал
қасиеттері, сол нүктенің нормаль өлшемі, бақылаушы мен жарық көзінің орны
атты факторлар қамтамасыз етеді.
Жарықтандырудың глобальды параметрлерін енгізетін команда
void glLightModel[i f] (GLenum pname, GLenum param)
void glLightModel[i f]v (GLenum pname, const GLtype *params)

Мұнда pname аргументі жарықтандыру моделінің қай параметрі
бапталатынын анықтайды, оның қабылай алатын мәндері төмендегі кестеде
көрсетілген.
GL_LIGHT_MODEL_LOCAL_VIEWER мәні бульдік типті, сондықтан оның
мәні FALSE болса, онда көрініс бағыты
–z осіне параллель болып саналады, ал
TRUE мәні бақылаушының координаталар
жүйесінің ортасында орналасуын
білдіреді.
GL_LIGHT_MODEL_TWO_SIDE бұл параметрдің де мәні бульдік
типті, ол көрінетін және көрінбейтін
жақтардың жарықтануын есептеу
процесін басқарады. Егер мәні FALSE,
онда жарықтандыру көрінетін жақ үшін
есептеледі, ал TRUE - көрінбейтін
жақтар үшін
GL_LIGHT_MODEL_AMBIENT бастапқы мәні (0.2, 0.2, 0.2,1.0).
Бұл параметр фондық жарықтандырудың
түсін анықтайды.

Объект қай материалдан жасалғанын талдау мына командамен сипатталады
void glMaterial[i f] (GLenum face, GLenum pname,
GLtype param)
void glMaterial[i f]v (GLenum face, GLenum pname,
GLtype *params)
Бұл команда диффузиялық, айналық және шашыратылған шағылуды анықтайды,
param мәні pname мәніне тәуелді
GL_AMBIENT рarams параметрі RGBA моделін құрайтын төрт нақты
немес бүтін сандардан тұруы қажет, олар шашыратқыш
түсін анықтайды, бастапқы мәні (0.2, 0.2, 0.2,
1.0).
GL_DIFFUSE бұл параметр диффузиялық шағылудың түсін анықтайды,
бастапқы мәні (0.8, 0.8, 0.8, 1.0).
GL_SPECULAR бұл параметр айналық шағылу түсін анықтайды,
бастапқы мәні (0.0, 0.0, 0.0, 1.0).
GL_SHININESS бұл параметр params 0-ден 128 дейінгі бір бүтін
немесе нақты саннан тұруы керек, ол айналық
шағылудың дәрежесін анықтайды, бастапқы мәні 0.
GL_EMISSION params жарықтың интенсивтілігін анықтайды, бастапқы
мәні: (0.0, 0.0, 0.0, 1.0).

Жарық көзін сипаттау

Көрініске жарық көзін енгізу үшін (әйтпесе көріністегі барлық
объектілердің түсі қара болады) келесі команда қолданылады:
void glLight[i f] (GLenum light, GLenum pname, GLfloat param)
void glLight[i f] (GLenum light, GLenum pname, GLfloat *params)

light параметрі жарық көзін анықтайды, оны 0-ден 8-ге дейінгі
GL_LIGHTi және GL_MAX_LIGHT арнайы символдардан таңдайды.

3. Геометриялық объектілердің салуын және өңдеуін матрицалар
бақылайды.
OpenGL-де үш негізгі координаталар жүйесі қолданылады: солжақты,
оңжақты және терезелік. Алғашқы екеуі үш өлшемді, екеуінің айырмашылығы z
осінің бағытында: солжақты жүйеде - z осі экран ішіне бағытталған,
оңжақтыда – бақылаушыға қарай. x осі бақылаушының оң жағына қараған, ал у
осі - үстіне. Үш өлшемді ақпарат екі өлшемді терезелік координаталар
жүйесіне шағылады. Оңжақты жүйе OpenGL кітапхананың негізгі жүйесі болып
табылады.

OpenGL координаталар жүйесі

Әртүрлі түрлендірулерді жүргізу үшін OpenGL үш түрлі матрицаларды
пайдаланады: модельно-видовая, проекциялар матрицасы және текстура
матрицасы. Олардың барлығының өлшемі 4x4.
Модельно-видовая матрица параллельдік көшіру, масштабты өзгерту, бұрау
амалдарын анықтайды. Проекциялар матрицасы үш өлшемді объектінің экран
бетіне проекциялануын анықтайды. Текстура матрицасы объектіге текстураның
орналасуын анықтайды. Қай матрица қосылатынын void glMatrixMode (GLenum
mode) командасы анықтайды. Мұнда mode параметрі GL_MODELVIEW,
GL_PROJECTION, немесе GL_TEXTURE мәндерді қабылдайды.
Барлық түрлендірулер OpenGL-да вектор координаталарын матрицаға
көбейтумен орындалады. Сонда керекті матрицаға glVertex* командасы
анықтаған координата көбейтіледі.

2 сурет. OpenGL жүйесінде координаталарды түрлендіру

Түрлендіру алдында объектінің төбесі өзгертіледі (x’, y’, z’, 1)T = M
* (x, y, z, 1)T
мұнда M – модельно-видовая матрица. Бұл матрицаны құру үшін мына командалар
орындалады:
void glTranslate[f d] (GLtype x, GLtype y, GLtype z)
void glRotate[f d] (GLtype angle, GLtype x, GLtype y,
GLtype z)
void glScale[f d] (GLtype x, GLtype y, GLtype z)

glTranlsate*() объектіні көшіреді, glRotate*() объектіні angle
бұрышына тіл сағатына қарсы бұрайды, glScale*() объектінің масштабын
(x,y,z) векторының бойымен орнатады (қысу немесе созу).
OpenGL екі түрлі проекциялаудың командаларын пайдаланады:
ортографикалық (параллельдік) және перспективтік (орталық). Параллельдік
проекция мына командалармен орындалады:

void glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top,

GLdouble near, GLdouble far)
void gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble
top)
Перспективті проекция мына командамен анықталады:
void gluPerspective (GLdouble angley, GLdouble aspect, GLdouble znear,
GLdouble zfar)


3 сурет. Ортографикалық проекция 4 сурет. Перспективті проекция

Растрлық графика ерекшелігі. Photoshop бағдарламасының интерфейсі

Растрлық графиктерді өңдеуге арналған программалар класын тұтас
алғанда, олардың арасынан Abode фирмасының Photoshop пакеті ерекше орын
алады. Бүгінде ол компьютерлік графикада стандарт болып табылады және
барлық өзге программалар басқарудың басты элементтері меню қатары мен
құралдар тақтасында орналасқан. Ерекше топты сұхбат терезелері – құралдар
палитрасы құрайды.

Info палитрасы
Info (Информация) палитрасында дәл сол аталмыш уақытта курсор көрсетіп
тұрған пиксельдің түстік компоненттері бейнеленеді. Сондай – ақ мұнда
кескіннен таңдалынған түстік үлгілер жайлы деректер де орналасқан. Егер
түстерді түзету сұқбат терезесі ашық болса, онда палитрада жаңарту
енгізгенге дейінгі және одан одан кейінгі түс үлгілері жайында болады. Оның
есесіне мұнда кескіндегі курсордың х және у координаттары көрсетіліп
тұрады.
Layers палитрасы
Әдетте жаңа сурет (кескін) әзірлеуде оның фоны (біртүсті) тұтас
болады. Layers (Слой) Палитрасы фонның бетіне қабаттарды қосуға, өшіруге,
көрсетуге жасыруға , көшіруге, топтауға, байланыстыруға және олардың
орналасу ретін өзгертуге мүмкіндік береді. Әрбір қабатқа өзінің жеке
айқындық деңгейі мен араласу режимдері сәйкес келеді және әрбір қабатты
өзгелерін өзгертпестен жеке дара түзетуге болады. Сондай – ақ қабатпен
масканы (mask) байланыстыруға болады. Photoshop программасында стандартты
қабаттардан өзге екі түрлі қабат: яғни, түсті уақытша қолдануда немесе
астынғы қабаттардың түсін келтіруде (түзетуде) қолданылатын түзетуші қабат
(корректирующий слой, adjustment layer) және Туре (Текст, Мәтін) немесе
Vertical Туре (Вертикальный текст, Тік мәтін) аспабын пайдалануда автоматты
түрде пайда болатын редакторленетін мәтіндік қабат (редактируюмый текстовый
слой, editable tyre layer) әзірлеуге болады. Егер қабатқа эффект қолданатын
болсақ (мысалы Inner Glow (Внутреннее свечение) Drop Shadow (Отбросить
тень)), қабат атының жанынан эффект пиктограммасы мен қалқыма менюді шақыру
кнопкасы пайда болады.
Мұнда тек ағымдағы қабатты ғана түзетуге болады (сондай – ақ
таңдалынған немесе белсенді деп те аталады). Қабатты Layers палитрасындағы
сәйкес атауын шертіп таңдауға болады.
Жаңа кескіннің түсті фонының (непрозрачный) орнына түссіз ашық
(прозрачный) ең төменгі қабатын шығару үшін File New (Файл- Новый)
командасы арқылы шақырылатын сұқбат терезесіндегі Contents (Содержимое
фона) тобынан Transparent (Прозрачный) қатарын таңдаңыз.

Сhannels палитрасы
Сhannels (каналы) палитрасында кескінді құрайтын бір немесе бірнеше
каналдар бейнеледі. Сондай бұл палитра көмегімен белгіленген аймақтарды
сақтауда қолданылатын альфа – каналдар және түсбөлуге қажетті тапсырыс
каналдарын, немесе ағылма түстер (spot color channel) әзірлеуге болады.

Path палитрасы
Контур (path) төбелері өзара нүктелермен біріктірілген тік түзу
кесінділерден және қисық сегменттерден тұратын фигура. Контур салудың екі
тәсілі бар: Pen (Перо) немесе фигура салудың кез келген құралының көмегімен
не болмаса белгіленген аймақ әзірлеп, сонан соң оны контурға түрлендіру.
Контурды бояуға немесе сызуға болады. Берілген формада жоғары дәлдікпен
белгіленген аймақ әзірлеу үшін ең дұрысы алдымен контур салып, сонан соң
оны белгіленген аймаққа түрлендірген абзал. Pen құралы және оған жақын
Add anchor (Добавить опорную точку), Delete anchor (Удалить опорную точку)
Convert point (Преобразовать точку) құралдары контурдың формасын өзгертуге
мүмкіндік береді. Контурды сақтап, оған қол жеткізу үшін Paths (Контуры)
палитрасы пайдалануға болады.

History палитрасы
History (история) палитрасының көмегімен кескінді редакторлеу бойынша
бір немесе бірнеше әрекеттен таңдау арқылы бас тартуға болады. Қылқаламмен
әрбір бояу жағу, фильтрді қолдану және кез келген өзге де операциялар
аталмыш палитраның оқиғалар (әрекеттер) тізімінде жеке элемент ретінде
көрсетіледі сондай – ақ тізімдегі ең төменгі оқиға (әрекет) ең соңғы
жасалған әрекет болып табылады. Егер алдыңғы оқиғаға (әрекетке) тышқанды
шертсеңіз құжат, редакторлеудің сол кезеңгі жағдайына дейінгі қалпына
келеді. Қандай да бір оқиғаны (әрекетті) белгілегенде не болатыны
палитраның сызықтық (линейны) режимде тұрған – тұрмағанымен байланысты.
Сызықтық режимде сіз алдыңғы оқиғалардың (рекеттердің) бірін белгілеп
сонан соң өшірген болсаңыз немесе кескінді анағұрлым ертеректегі оқиғамен
(әрекетпен) жаңартқан болсаңыз, онда одан кейінгі (палитрадағы олардың
элементтері көмескіленеді) барлық оқиғалар (әрекеттер) да өшіріледі.
Сызықтық емес режимде алдыңғы оқиғаларды (әрекеттерді) белгілеуге немесе
өшіруге болады және бұл жағдайда келесі әрекеттер жойылмайды. Бұл опцияны
History Options терезесіндегі History Options (параметры палитры История)
менюінің командасы арқылы шақырылатын Allow Non – Linear History
(Нелинейная запись событий) жалаушасын қою арқылы қосып ажыратуға болады.
Палитраның сызықтық және сызықтық емес режимдерін редакторлейдің кез келген
уақытында қосып ажыратуға болады. History Bruch (Восстанавливающая кисть)
құралы кескіннің қылқаламмен жұмыс істелінген аймағында, көрсетілген
оқиғаға (әрекетке) дейін қалпына келтіреді. Air History Bruch
(Художественная восстанавливающая кисть) құралы тура сондай, бірақ қандай
да бір стильдегі штрихтармен әрекет етеді.

Actions палитрасы
Actions (Действия) палитрасының негізгі міндеті кескінді өңдеуді
автоматтандыру болып табылады. Командалар ретін жазып алып, сонан соң
оларды бір немесе бірнеше кескін топтарына қолдануға болады. Сондай – ақ
Actions палитрасы қандай да бір әрекетті орындауға арналған жиі
қолданылатын клавиштерді тағайындауға және оларға қол жеткізуге мүмкіндік
береді.
Character палитрасы
Photoshop CS – те қандай да бір мәтін әзірлеу үшін арнайы сұқбат
терезесін шақырудың қажеті жоқ. Мәтін енгізу мен түзетудің барлық
операцияларын Character (символ) палитрасының көмегімен орындауға болады.
Қаріп сипаттарын сондай – ақ Туре (Текст, Мәтін) құралының опциялар
панелінен таңдауға да болады.
Paragraph палитрасы
Paragraph (Абзац) палитрасы мәтін абзацтарына, абзацтар арақашықтығы мен
азат жолды қоса алғанда қандай да бір сипаттар қолдануға мүмкіндік береді.

Corel Draw программасының интерфейсі.
Геометриялық фигураларды салу, оларды өзгерту

Corel Corparation канадалық фирмасының векторлық графикалық редакторы
Corel Draw кең мүмкіндіктерінің, дайын көріністердің үлкен қоры, қуатты
оқыту жүйесінің, құрастырушының дұрыс маркетингтік саясаттың арқасында кең
таралды. Corel Draw редакторының кейбір құралдары басқа векторлық
редакторда жоқ, сонысымен де ол ерекше. Corel Draw интерфейсінің
күрделілігі туралы пікірде ешқандай негіз жоқ - бағдарлама қолданушыға
графиканы редакторлеудің және құрудың қолайлы және түсінікті құралдарын
ұсынады.
Corel DRAW – суретші дизайнерлік текстерді, логотиптерді, кітап
және журнал мұқабаларын, этикеткаларды және ол сияқты көптеген нәрселерді
әшекейлеуге керекті құралы. Қарапайым контурды суреттерден бастап бояулары
әр түрлі таңқаларлық иллюстрацияларға дейін және көлемді эффектілерді де
салуға мүмкіндік береді. Мұнда векторлық графика қолданған WORD
редакторындағыдай емес, суреттерді үлкейтскенде өзінің бастапқы қасиетін
жоғалтпайды.
Corel Draw редакторының Corel PhotoPaint растрлық графикасы өңдеу
пакетімен және Corel Vertun Publisher бағдарламасымен жақын интеграциялануы
электронды және полиграфиялық публикациялардың аяқталған жүйесін құруға
мүмкіндік береді.
Негізінен Corel Draw интерфейсі Windows операциялық жүйесінің
қолданбалары үшін де факто стандартына айналған дәстүрде орындалған. Яғни
бағдарлама терезесі стандартты элементерден тұрады: тақырып жолы,
сәйкесінше батырмалары, меню жолы, қалып-күй жолы, құрал саймандар панелі,
басқа да панелдер және т.с. алайда Corel Draw интерфейсінің басқа
бағдарламалардан өз ерекшеліктері бар.
Біріншіден интерфейс кофигурациясы, Adobe Illustrator және
Macromedia Free Hand сияқты атақты графикалық пакеттер тәрізді бапталады.
Яғни, бұл редактормен жұмыс үйренген қолданушы Corel Draw бағдарламасына
өткенде өзіне таныс интерфейстің ортасында қала алады.
Екіншіден сегізінші нұсқадан бастап басқару элементінің ерекше
типі пайда болды- Dockers немесе қиылысу палитралары. Бұл палитралар жұмыс
аймағының бір шетінен немесе бір-біріне тышқанмен сүйреу арқылы жабысу
қасиетіне ие. Палитра терезесінде жабу және орау батырмалары бар. Қиылысу
батырмаларының қолайлылығы, оларды орау кезінде жұмыс аймағының өлшемі
автоматты түрде өзгереді, сондықтан қолданушыға басқа бағдарламалардағыдай
сурет көрінісі қолмен масштабтау қажет емес.
Сондай-ақ Property Bar (қасиеттер панелі) ерекше интерактивті
қасиеттері бар. Оның басқару элементтерінің құрамы таңдалынған нысанның
типіне тәуелді өзгеріп отырады. Мәтінді таңдау кезінде қасиеттер панелінде
мәтін қасиеттерін басқару элементтері, сызықты таңдасаңыз - сызық
қасиеттерін басқару элементері пайда болады.
Бояудың, контурдың параметрлерін және нысанның басқа да қасиеттерін
интерактивті басқару құралдарымен қасиеттер панелі тығыз байланысты.

Құрал-саймандар панелі.

Құрал-саймандар панелі жұмыс аймағының сол жақ шетіне орналасқан және
Pick Tool (Нұсқағыш) нысандарды таңдау құралдары, Shape Tool (Фигура)
формасын өзгерту, Zoom Tool (Масштаб) масштабтау, Bezier Tool (Безье
қисығы) сызықтарды салу, Rectangle Tool (Тікбұрыш) тікбұрыштарды салу,
Polygon Tool (Көпбұрыш) көпбұрыштарды салу, Text Tool (Мәтін) мәтінмен
жұмыс істеу, Full Tool (Бояудың интерактивті құралы) нысандарды бояу әдісін
басқарады, Transparency Tool (Интерактивті мөлдірлік) нысандардың
мөлдірлігін басқарады, Ellipse Tool(элиппс) элиппс салу, Blend Tool
(Интерактивті ағыс) аралық трансформациямен нысандардың бір-біріне ауысуы.
Құрал-саймандар панеліне соңғы болып Evedropper Tool ( Түсті таңдауға
арналған тамызушы), Outine Tool(Абрис, контурлар параметрлерін
басқарушы),Till Tool (Бояу) бояу параметрлерін басқарушы құралдар.
Қасиеттер панелі
Құрал – саймандардың кез – келген біреуін таңдағаннан кейін қасиеттер
панелі оның қасиеттерін көрсетіп, нысан қасиеттерімен немесе құралдар
параметрлерін басқаруға мүмкіндік беретін элементтер жинағын ұсынады.
Осыған байланысты қасиеттер панелі таңдалған нысанға немесе құрал-сайманға
байланысты динамикалық түрде өзгеріп отырады.

Бет параметрлері: Егер ешқандай таңдалынбаған болса, онда қасиеттер
панелінде ағымдағы беттің параметрлерін басқару элеметтері бар: Paper
TypeSize (Түр қағаз форматы) стандартты немесе пайдаланушы беттің
форматын таңдауға арналған тізім; Width and Height (Қағаздың ұзындығы және
ені) беттің ұзындығы және енін қоюға арналған санауыштар: Portrait (Кітап)
және Gandscape (Альбом) бет орентациясын өзгерту батырмалары; Drawing Units
(Өлшем бірліктері) өлшем бірліктерін таңдауға арналған тізім; Nudge Offset
(Меңзер пернелерімен орын ауыстыру) түйіндердің қозғалуының стандартты
шамасын беруге арналған санауыш; Duplicate Distance (Көшірмеге дейінгі
арақашықтық) х,у осьтерімен нысан көшірмесінің қозғалу шамасын қою
санауышы; Snap to Grid (торға байлау), Snap to Guidelines (Бағыттаушылырға
байлау), Snap to Obgect (Нысандарға байлау) батырмалары тіреу нүктелері,
бағыттаушы сызықтар немесе таңдалынған нысан бойынша тегістеу режімін қосу
үшін, сәйкесінше Draw Complex Objects when MOVING on Transforming
(нысандарды қозғалту кезінде көрсету) трансформациялау немесе нысандарды
қозғалту кезінде көрсету режімін қосу батырмасы, Treat As Filled
(Толтырылған деп есептеу) режимін қосу батырмасы; бағдарламаның
параметрлерін баптауға арналған Options (параметрлер) сұхбаттық терезесін
ашу батырмасы

Құрал-саймандар панелі құралдарының қосалқы нұсқалары.
Snape Tool (фигура) тобына қосалқы нұсқаулар кіреді. Knide Tool (Пышақ)
– нысанды кесінді сызығы бойынша бөлуге арналған: Eraser Tool (Өшіргіш) –
нысаны бөліктерін жоюға арналған, Free Transform Tool (Еркін ауысу ) –
нысандарды еркін трансформациялауға мүмкіндік береді – айналдыру,
масштабтау; еңкейту және т.б. операциялар

Zoom Tool (Масштаб) тобына Pan Tool (Понограма) құралы қосылған, ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Операциялық жүйелер тарихы
Android Studio ортасында Мобильді қосымшаларды әзірлеу
Растрлік графика форматтары
Модельдеу әдістері мен модельдеуге арналған бағдарламаларға шолу
Заманауи мобильді қосымшалар
OPENGL - ДІҢ НЕГІЗГІ ҚАСИЕТТЕРІ
«Қазақ тілі бойынша онлайн тестілеудің мобильді қосымшасын құру»
Астрофизикалық құбылыстарды моделдеу үшін cuda қолдану
Linux операциялық жүйе
WEB-порталдың мобильді қосымшасын құру
Пәндер