3-кесте. Барлық салыстырылған өлшемдер бойынша жинақталған қорытындылар
|
OpenGL
|
Direct3D
|
Қолданылатын операциялық жүйелер мен бағдарламалау тілдері
|
ОЖ: Windows, Linux, MacOS, Silicon Graphics Workstations, BeOS және т.б.
БТП: C, Java, Assembly, Pascal және т.б.
|
ОЖ: тек қана Windows тобы
БТ: Microsoft Visual Studio;
Microsoft Visual Basic;
Бейресми Delphi.
|
Құрылатын бағдарламалардың өнімділігі
|
Салыстырудың мағынасы жоқ
|
Сәулеті мен кеңейтілуі
| -
Өзегі
-
Рәсімдік модель
-
Қосылатын кеңейтулер есебінен жаңа функциялар
| -
COM
-
Объектілік-бағдарланған модель
-
Жаңа функциялар кітапхананың тек жаңа нұсқаларында
|
Функционалдығы
|
Екі кітапхана да бейне карталардың барлық функцияларын қолдайды
|
Пайдалану ыңғайлылығы. Бағдарлама кодының көлемі мен оқылуы
|
Қарапайым бағдарлама – 50жол.
Рәсімдік модельдің қарапайымдылығы
|
Қарапайым бағдарлама – 200 строк
ООП мен COM-нің күрделілігі
|
Осы кітапханалардың әрқайсысында өзінің плюстері мен минустары болады, бірақ параметрлер сомасы бойынша олар бірдей болды. Мен DirectX-ті таңдадым, себебі - әзірленетін бағдарлама 3D дыбысты шығаруға тиіс. DirectX-ке дыбыспен жұмыс істеу үшін DirectSound кітапханасы кіреді. OpenGL дыбыспен мүлдем жұмыс істемейді, Creative-тегі OpenAL-ге ұқсайтын бөгде кітапхананы пайдалану керек болады. Ал ол әзірлемені қияндадып жібереді. DirectX-тің негізгі кемшілігі – бағдарламаудағы күрделілік болғанымен, ол DirectX бойынша көп әдебиеттің болуымен толықтырылады.
Іске асыру
Қосымша Act-3D Quest3D үш өлшемді қосымшаларды әзірлеу ортасында құрылды. Қосу кезінде қосымша әйнектік немесе толық экранды режимді және экран рұқсатын таңдауға мүмкіндік береді. Осыдан кейін соңынан бірінші адамның атынан 3D сахна көрінеді. Сахнада тышқан және перне тақтадағы бағыттағыш арқылы ауысуға болады.
Сахнадағы екі объект дыбыс шығарады:
1 – Қозғалмайтын объект. Динамик арқылы көрінеді. Перне тақтадағы «1» батырмасы арқылы қосылып, сөндіріледі.
2 – Қозғалатын объект. Бірінші кеңестік жер жолсерігі түрінде J көрсетіледі. Перне тақтадағы «2» батырмасы арқылы қосылып, сөндіріледі
Бақылау сұрақтары:
-
ЗЕРТХАНАЛЫҚ САБАҚТАР
Зертханалық жұмыс 1. Visual studio бағдарламасымен жұмыс істеу негіздері
Мақсаты: Visual Studio 2010 ортасында интеграцияны және графикалық компоненттердің баптауларын оқу
Тапсырма: Төмендегі тақырыптар бойынша Power Point бағдарламасында анимациялық эффектілерді пайдаланып шағын мультфильмдер жаса:
-
Жануарлар жарысы
-
Таразы (Піл ауыр ма, тышқан ауыр ма?)
-
Құтыдағы сұйықтықтың ағуы
Тапсырманы орындауға әдістемелік нұсқаулар:
-
IDE Visual Studio 2010 қосу
2. File New Projectменюін таңдау.
3. Visual C# Windows Forms Applicationменюін таңдау.Name, Location, Solution nameжолын толтыру.
4. Бірінші үш пункт нәтижесінде Formжұмыс үстеліпайда болады.
5. Toolbox аймағына тышқанның оң жақ шетін басу. Пайда болған контексті менюден Choose Itemsпунктін таңда.
6. Пайда болған Choose Toolbox ItemsдиалогынанBrowseбатырмасын басу
7. Openдиалогынан қажетті графикалық кітапханаға жол көрсету. Біздің жағдайымызда– 2DZgraphкітапханасы.
8. Choose Toolbox ItemsдиалогынанZedGraphControlтауып, таңдап OKкнопкасын басу.
9. ToolBoxпанелінде ZedGraphControlэлементін таңдап, Form1формаға шығару.
Бақылау сұрақтары:
-
Анимациялық эффектілер деген не?
-
Анимациялық эффектілерді қосу әрекетін қалай орындауға болады?
-
Мәтін элементтеріне(әріп,сөз,сөйлем,абзац) анимациялық эффектілер қосуға бола ма?
-
Графикалық объектілер мен диаграмма элементтеріне эффектілер қалай қосылады?
-
Анимациялық эффектінің көріну уақытын өз қалауымызша белгілеуге бола ма?
-
Слайдттағы элементтердің көріну ретін өзгерту әрекеті қалай орындалады?
-
Презентацияға музыкалық клиптер мен дыбыстар бола ма?
Зертханалық жұмыс №2
Тақырыбы: 2d модельдерді программалау
Тапсырма Еркін тақырыптар бойынша Adobe ImageReady бағдарламасында шағын мультфильмдер жасау
Тапсырманы орындауға әдістемелік нұсқаулар:
Мәліметтерді еңгізу:
-
ZedGraph, ChartDirector, SteamChart, MSChart кітапханалық жұмыс графикасының принциптерін зерттеу.
-
Осы кітапхана мәліметтеріне сәйкес тапсырмаларды C# программалық тілінде қарастыру.
-
Мәліметтер Х разрядты көлемдегі визуалды массив болып табылады, ол кездейсоқ сандар (П) генераторы программасы көмегімен генераторланады немесе екілік файлда (Ф) есептеледі – мәлімететр программалық файлда жазылады, ал содан кейін олардан BinaryReader және BinaryWriterфункциялары есептеледі.
Тапсырма нұсқалары:
|
|
|
|
|
1-Таблица Мәлімететрдің шығуы
|
|
ZedGraph
|
|
ChartDirector
|
|
SteamChart
|
MSChart
|
1
|
Таңбасыз бүтін 16 разрядты, X = 128
Түзу (Типі 1) П
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2
|
|
|
Таңбалы бүтін 16 разрядты, X = 64
|
|
|
|
|
|
|
Бағандар (Типі 2) Ф
|
|
|
|
|
|
|
|
|
|
|
3
|
|
|
|
|
Таңбалы бүтін 32 разрядты,X = 256
|
|
|
|
|
|
|
Түзу (Типі 1) П
|
|
|
|
|
|
|
|
|
4
|
|
|
|
|
|
|
Таңбасыз бүтін 64 разрядты, X = 1024
|
|
|
|
|
|
|
|
Бағандар (Типі 2) Ф
|
|
|
|
|
|
|
|
|
Столбики (Тип
|
2)
|
|
|
|
|
|
|
|
Ф
|
|
5
|
Таңбалы бүтін 64 разрядты, X = 256
Линия (Тип 1) П
|
|
|
|
6
|
|
|
|
|
Таңдасыз бүтін 32 разрядты, X = 256
|
|
|
|
|
|
|
|
|
Бағандар (Типі 2) Ф
|
|
|
|
|
|
|
|
|
|
|
|
|
7
|
|
|
|
|
|
Таңбасыз бүтін 16 разрядты, X = 128
|
|
|
|
|
|
|
|
|
Түзу (Тип 1) П
|
|
|
|
|
|
|
|
|
|
|
|
8
|
|
|
|
|
|
|
Таңбалы бүтін 16 разрядты,X = 384
|
|
|
|
|
|
|
|
Бағандар (Типі 2)Ф
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9
|
Целые
|
со
|
знаком
|
8
|
|
|
|
|
|
разряда, X = 128
|
|
|
|
|
|
|
Радар (Тип 3) П
|
|
|
|
|
|
10
|
|
|
|
|
Таңдасыз бүтін 32 разрядты, X = 256
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Радар (Типі 3) Ф
|
|
|
|
11
|
|
|
|
|
|
Таңбасыз бүтін 16 разрядты, Х= 128
|
|
|
|
|
|
|
|
|
Радар (Тип 3) П
|
|
|
|
|
|
|
|
|
|
|
|
12
|
|
|
|
|
|
|
Таңбалы бүтін 16 разрядты, X = 384
|
|
|
|
|
|
|
|
Радар (Тип 3) Ф
|
|
|
|
|
|
|
|
|
|
|
Тапсырманың орындалып, шешуінің мысалы
Тип 1
Тип 2
Бастапқыда біз конструктор классында инициализировайия AnT жұмыс элементтерін жасаймыз:
publicForm1()
{
InitializeComponent();
AnT.InitializeContexts();
}
Қайтадан конструкторға өтеміз және формада тышқанның сол жағын екі рет шертеміз. Онда біз OpenGl инициализация кодын орналастырамыз. Толық анықтамасы, яғни бұл кодтын толық жұмысын, біз келесі бөлімдерде қарастырамыз, ал енді OpenGL және FreeGLUT кітапханаларының жұмысын бағалаймыз..
private void Form1_Load(object sender,EventArgse)
{
-
инициализация Glut Glut.glutInit();
Glut.glutInitDisplayMode(Glut.GLUT_RGB | Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
Gl.glClearColor(255, 255, 255, 1);
-
установка порта вывода в соотвествии с размерами элемента anT Gl.glViewport(0, 0, AnT.Width, AnT.Height);
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();
Glu.gluPerspective(45, (float)AnT.Width / (float)AnT.Height, 0.1, 200);
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity();
// настройка параметров OpenGL для визуализации
Gl.glEnable(Gl.GL_DEPTH_TEST);
}
Терезеде біз 2 батырманы жасадық. Батырмадан шығу жолы келесі түрде болады
//обработчиккнопки "выйти"
private void button2_Click(object sender,EventArgse)
{
Application.Exit();
}
«Визуализировать» батырмасы кодтан тұрады, сфера каркасынан тұрады. Код, функция мәліметінде орналасады, онда функция мәліметтері орналасады, визуализацияның әр түрлі техникалық аспектілеріне жауап береді, онымен келесі бөлімдерде таңысамыз.
Код функциясы:
// обработчик кнопки "визуализировать"
private void button1_Click(object sender,EventArgse)
{
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT | Gl.GL_DEPTH_BUFFER_BIT);
Gl.glLoadIdentity();
Gl.glColor3f(1.0f, 0, 0);
Gl.glPushMatrix();
Gl.glTranslated(0,0,-6);
Gl.glRotated(45, 1, 1, 0);
// рисуемсферуспомощьюбиблиотеки FreeGLUT Glut.glutWireSphere(2, 32, 32);
Достарыңызбен бөлісу: |