«3D графиканы программалау»



бет6/7
Дата04.03.2016
өлшемі2.31 Mb.
#41158
1   2   3   4   5   6   7

Соңғы таңдау


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» батырмасы арқылы қосылып, сөндіріледі
frame8

Бақылау сұрақтары:



  1. ЗЕРТХАНАЛЫҚ САБАҚТАР

Зертханалық жұмыс 1. Visual studio бағдарламасымен жұмыс істеу негіздері

Мақсаты: Visual Studio 2010 ортасында интеграцияны және графикалық компоненттердің баптауларын оқу

Тапсырма: Төмендегі тақырыптар бойынша Power Point бағдарламасында анимациялық эффектілерді пайдаланып шағын мультфильмдер жаса:

  1. Жануарлар жарысы

  2. Таразы (Піл ауыр ма, тышқан ауыр ма?)

  3. Құтыдағы сұйықтықтың ағуы


Тапсырманы орындауға әдістемелік нұсқаулар:

    1. 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формаға шығару.

Бақылау сұрақтары:

  1. Анимациялық эффектілер деген не?

  2. Анимациялық эффектілерді қосу әрекетін қалай орындауға болады?

  3. Мәтін элементтеріне(әріп,сөз,сөйлем,абзац) анимациялық эффектілер қосуға бола ма?

  4. Графикалық объектілер мен диаграмма элементтеріне эффектілер қалай қосылады?

  5. Анимациялық эффектінің көріну уақытын өз қалауымызша белгілеуге бола ма?

  6. Слайдттағы элементтердің көріну ретін өзгерту әрекеті қалай орындалады?

  7. Презентацияға музыкалық клиптер мен дыбыстар бола ма?



Зертханалық жұмыс №2

Тақырыбы: 2d модельдерді программалау

Тапсырма Еркін тақырыптар бойынша Adobe ImageReady бағдарламасында шағын мультфильмдер жасау
Тапсырманы орындауға әдістемелік нұсқаулар:

Мәліметтерді еңгізу:




  1. ZedGraph, ChartDirector, SteamChart, MSChart кітапханалық жұмыс графикасының принциптерін зерттеу.




  1. Осы кітапхана мәліметтеріне сәйкес тапсырмаларды C# программалық тілінде қарастыру.




  1. Мәліметтер Х разрядты көлемдегі визуалды массив болып табылады, ол кездейсоқ сандар (П) генераторы программасы көмегімен генераторланады немесе екілік файлда (Ф) есептеледі – мәлімететр программалық файлда жазылады, ал содан кейін олардан 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 жұмыс элементтерін жасаймыз:



rectangle 68

publicForm1()


{

InitializeComponent();


AnT.InitializeContexts();

}
Қайтадан конструкторға өтеміз және формада тышқанның сол жағын екі рет шертеміз. Онда біз OpenGl инициализация кодын орналастырамыз. Толық анықтамасы, яғни бұл кодтын толық жұмысын, біз келесі бөлімдерде қарастырамыз, ал енді OpenGL және FreeGLUT кітапханаларының жұмысын бағалаймыз..



rectangle 69

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);



  • настройка проекции

rectangle 70

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 батырманы жасадық. Батырмадан шығу жолы келесі түрде болады

rectangle 71

//обработчиккнопки "выйти"


private void button2_Click(object sender,EventArgse)

{
Application.Exit();

}
«Визуализировать» батырмасы кодтан тұрады, сфера каркасынан тұрады. Код, функция мәліметінде орналасады, онда функция мәліметтері орналасады, визуализацияның әр түрлі техникалық аспектілеріне жауап береді, онымен келесі бөлімдерде таңысамыз.
Код функциясы:

rectangle 72

// обработчик кнопки "визуализировать"


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);

Достарыңызбен бөлісу:
1   2   3   4   5   6   7




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет