Druhým úkolem do PB009 Základů počítačové grafiky bylo odevzdat program
v OpenGL. Získal jsem výjimku na tvorbu programu v DirectX.
Zdrojový kód jsem napsal v Delphi, protože je mi tento jazyk nejbližší
a navíc v něm není problém s DirectX bez problému pracovat (Delphi a C jsou v podstatě
stejné jazyky, pouze s tím, že mají jinou syntax příkazů). Podobně jako v C je nutné sehnat
hlavičky objektů DirectX, ale to není na Internetu vůbec problém. Dál se kód píše úplně
stejně.
Nechtělo se mi psát celou aplikaci "z gruntu" od začátku (ve Win32 API), tak jsem použil delphácký
objekt Application: TApplication a veškeré vykreslování jsem navěsil na jeho
událost OnIdle. Ta zajistí, že kdykoliv bude mít aplikace volno, vyrenderuje se scéna znovu.
Aplikace si také nese jeden formulář, který jsem pro zjednodušení vložil přímo do projektového souboru .DPR,
aby nemusel být v samostatné jednotce.
V aplikaci jsou naprogramována:
(o) Světla
(o) Mlha v dálce
(o) Půhlednost textur
(o) Průhlednost alpha blendingem
(o) Pohyb objektu
(o) Rotace objektu
(o) a další (co jsem si zrovna nevzpomněl :-)
V projektu je nutné přilinkovat hlavičky z DirectX 9.0, které jsou k dispozici zde:
http://clootie.narod.ru
Dále jsem při psaní používal knihu "Programming Direct3D Kick Start" od Claytona Walnuma.
Zde jsou nějaké obrázky z programu:
Program se ovládá ŠIPKAMI (průchod dopředu/dozadu)
Zde je spustitelný EXE soubor (s texturami):
PB009DirectX.zip