Контрольная работа: Графічні роботи на комп’ютері
З появою графічних процесорів, які підтримують шейдери (наприклад, АТІ Radeon 8500), стає актуальним удосконалення DirectХ. Вже гостро відчувається обмеженість фіксованого конвеєра графічних команд, DirectХ повинен забезпечити доступ до програмованого конвеєра шейдерних мікропрограм GPU.
Восьма версія DirectХ (кінець 2000 р.) була значним кроком еволюції. З'явилася не тільки підтримка шейдерів, але суттєво змінилася загальна архітектура DirectХ. Зі складу DirectХ зник DirectDraw, і замість Direct3D зявився DirectX Graphics, який містить також функції колишнього DirectDraw. Завдяки цьому суттєво спростився інтерфейс для програмістів.
Версія DirectX 8.1 постачається у складі Windows XP та інших сучасних ОС. Основні відмінності від попередньої версії 8.0 – подальший розвиток шейдерних можливостей. Проте, мова програмування шейдерів є асемблероподібною й, отже, недуже зручною.
Наприкінці 2003 року з'явився DirectX 9. Головна відмінність – високорівнева мова програмування шейдерів.
Як дізнатися, яку версію DirectX встановлено на вашому комп’ютері? Для цього запустіть програму DxDiag.exe. ця програма знаходиться у папці Windows\System або Windows\System32 (у залежності від ОСWindows). Для отримання інформації про апаратні можливості вашого відеоадаптера ви можете використати таку програму, як 3DMark.
Є можливість оновлювати DirectX на комп’ютері. Для цього можна встановити необхідні файли, які поділяються на дві частини: runtime-файли і SDK (Software Developr Kit). Для розробки програм необхідні усі файли, а для запуску програм DirectX досить лише runtime-файлів.
SDK DirectX містить усі файли, необхідні для розробки програм, у першу чергу, це – файли заголовків (*.h) та бібліотеки для компіляторів (*.lib). крім того, до складу SDK також входить ряд прикладів програм та документація для розробки.
3. Практичне завдання.
Приклад файлу форми Delphi3 для побудови сфери:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
OpenGL, Menus;
type
TfrmGL = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormResize(Sender: TObject);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
DC : HDC;
hrc: HGLRC;
ry : GLfloat;
tx : GLfloat;
end;