Zpět na seznam článků     Číst komentáře (7)     Verze pro tisk

Delphi a OpenGL - 1. díl

Autor: ?source/*-   
24.3.2005

První díl seriálu o OpenGL v Delphi.


Budu se věnovat hlavně Delphi 6, ale jiná verze není problém. Budete potřebovat komponenty GLScene pro vaší verzi Delphi, které si můžete stáhnout třeba zde. A příklady zde. - doporučuji stáhnout.
Ty příklady jsem nedělal já. Instalace komponent GLScene je velice jednoduchá, proto se sní nebudeme dále zabývat.
A nyní k věci. Vytvořte si novou aplikaci a na formulář si dejte tyto komponenty: GLScene a GLSceneViewer. Komponenta GLSceneViewer1 slouží jako plocha na které se bude vše odehrávat, proto by bylo asi dobré aby byla roztažená přes celý form. To uděláme tak, že na ní klikneme a v Object Inspectoru nastavíme Align na alClient. Ták teď to máme roztažený přes celý. Poklikáním na GLScene1 se nám otevře GLScene Editor – ten slouží pro editování všech objektů (světla, kamery objektů na scéně atd.) Kliknutím na položku Cameras se nám zpřístupní tlačítko Add kamera. Klikněte na něj a vytvořte kameru (GLCamera1) poté klikněte na položku Scene object, zpřístupní se tlačítko Add object. Kliněte na něj a vytvořte dvě DummyCube. Vyberte DummyCube1 a vytvořte Cube (Add object -> Basic geometry -> Cube ).Nyní přetáhněte vytvořenou GLCameru1 do DummyCube2 a vytvořte GLLightSource1 (Add object -> GLLightSource ). To nám zajistí, že světlo bude svítit do místa na které se právě GLCamera pozoruje. Toto nastavení užívejte často. GLScene Editor by měl vypadat takto: 


Zavřete GLScene Editor a klikněte na GLSceneViewer1. V object inspektoru vyberte u Camera kameru GLCamera1 a znovu si otevřete GLScene Editor. Vyberte Cube1. Klikněte na tři tečky u položky Position a nastavte tyto hodnoty: X=0 Y=0 Z=-3 
Nyní spuste váš první program využívající OpenGL. Měli by jste vidět uprostřed formuláře šedý čtverec. Pokud ano, tak je to nejspíš správně. Je to čtverec pouze proto, že pozorujeme jenom 1 stranu a ke všemu přímo rovně. Po chvilce koukání vás to jistě přestane bavit a tak něco přidáme.
Aby vynikly 3D vlasnosti našeho objektu, přidáme otáčení. Začněte tím, že na form si dejte novou komponentu – AsyncTimer1 (ze stejné palety jako ostatní GL komponenty) u kterého nastavte Interval na 10 a Enabled na True. Do události OnTimer vepište:

Cube1.Turn(3); 

Číslo v závorce můžete libovolně upravovat, čím větší tím rychlost točení Cube1 větší. (a naopak :-) ) Když program spustíte, tak se vám bude krychle otáčet. Pro hezký efekt je dobré to zkombinovat s příkazem:

Cube1.Roll(3);

Takže celá událost bude vypadat asi takhle:

procedure TForm1.AsyncTimer1Timer(Sender: TObject);
begin
Cube1.Turn(3);
Cube1.Roll(3);
end;

 To je dnes už vše.

Byl by jsem ochotný na konec dílu přidat zdrojáky, ale nevím jestli by byl zájem. Kdyžtak to napište do komentářů. 

?source/*-


Líbil se Vám článek?
Budeme potěšeni, pokud vás zaujme také reklamní nabídka

Social Bookmarking

     





Hodnocení/Hlasovalo: 3/4

1  2  3  4  5    
(známkování jako ve škole)