Herní grafické enginy (3.) - GLScene
Když mluvím o 3D enginech vyvíjených pro hry nebo jiné aplikace, rozhodně bych neměl zapomenout na nejznámější open-source projekt pro Delphi založený na OpenGL a nazvaný GLScene. Jedná se o sadu visuálních komponent umožňující snadný návrh a rendering 3D scény.
Popis
Engine byl od začátku navrhován jako všeobecně použitelný 3D engin. Jeho největší výhodou pro začátečníky je rychlý vývoj založený na RAD (Rapid Application Development - rychlý vývoj aplikací, zkrátka uchopit komponentu a umístit ji na formulář :-)). Ke zvládnutí 3D grafiky ani nemusíte ovládat žádné spletitosti OpenGL, Direct3D, ani 3D algebru!!! K samotnému enginu je přibaleno několik desítek demíček, které by měly pomoci zvládnout používání GLScene.
![]() | ![]() |
Vlastnosti
Kdybych zde měl vypisovat úplně všechny vlastnosti, určitě by se mi na jednu průměrně dlouhou stránku nevešly,proto vyberu z výpisu jen to nejdůležitější:
Scéna: Hierarchická struktura objektů, snadný pohyb a rotace, předdefinované objekty (od krychle až po čajovou konvici), HUD objekty, pomocné objekty (šipky, skydome,...), speciální efekty (před i po renderování scény, snadno rozšiřitelné), částicové systémy, import souborů z formátů 3D studia, OBJ, MD2, STL, TIN a PLY
![]() | ![]() |
Materiály: Snadné použití, knihovna materiálů pro opětovné používání materiálů, podpora ambient, diffuse, emission, specular a shininess, automatické generování alpha-kanálu, podpora texturových formátů OpenGL včetně komprese DXT a S3TC, více jak 150 předdefinovaných barev jako clrLightBlue nebo clrCoolCopper, snadné přesouvání textur, podpora 32-bitových bitmap.
![]() | ![]() |
Rendering: Automatické použití hardwarové OpenGL akcelerace, pokud možno, vícenásobné renderování jedné nebo více scén, snadná změna kamery, rendering do souboru, bitmapy nebo na tiskárnu, podpora full-screen módu, odrazy a zrcadlení, stíny.
Zvuky: Vestavěná 3D podpora pro zdroj i posluchače, automatická aktualizace pozice, rychlosti i orientace posluchače, knihovna zvukových samplů, zvukové managery pro WaveOut, Bass a FMOD.
![]() | ![]() |
Není nad jednoduchost
- První kroky
- Vytvořte novou aplikaci s formulářem
- Na formulář umístěte komponentu GLScene
- také GLSceneViewer s parametry:
- align: alnone
- backgroundcolor: clbtnface
- do GLSceneEditoru
- přidejte kameru (GLCamera1): Pozice.z := 10
- přidejte cube (Cube1), showaxes := true
- v GLSceneViewer nastavte
- camera := GLCamera1;
- lighting := false
- v GLSceneEditoru nastavte
- cube1.texture.image := obrazek.bmp nebo .jpg
- cube1.texture.disabled := false
- na formulář
- přidejte TrackBar, 50..500, frequenc := 50, position := 50, name := focal
- TrackBar.OnChange: GLCamera1.focallength := focal.position
- Další kroky
- Přidejte TrackBar, 0..360, frequency := 10, position := 0, name := XAxisRot
- Přidejte TrackBar, 0..360, frequency := 10, position := 0, name := YAxisRot
- Přidejte TrackBar, 0..360, frequency := 10, position := 0, name := ZAxisRot
- TrackBar.OnChange: cube1.pitchangle := XAxisRot.position
- TrackBar.OnChange: cube1.pitchangle := YAxisRot.position
- TrackBar.OnChange: cube1.pitchangle := ZAxisRot.position
- Výsledek
- Rotace kolem souřadnic objektu
- S nastavenými souřadnicemi
- Přidejte TrackBar, 0..360, frequency := 10, position := 0, name := ZAxisRot
- TrackBar.OnChange: cube1.pitchangle := YAxisRot.position
- TrackBar.OnChange: cube1.pitchangle := ZAxisRot.position
Zatím jsem jen opisoval pochvalné věci z domovské stránky GLScene, nyní ke věcem horším: To, že je engin tak universální je na úkor snížení rychlosti - nedoporučoval bych ho na nějakou náročnou hru. Perfektně se hodí tam, kde se nechceme se učit OpenGL nebo Direct3D (a to bysme při programování hry měli znát...) Mám na mysli třeba jednodušší hry, editory scén atd. (jeden kvalitní editor od českého autora se jmenuje SizeMAX - už, neznám přesnou adresu ale zkuste hledat...) Autoři sice tvrdí, že i podpora RAD není na úkor výkonu procesoru, já si ale myslím pravý opak - program s jedním MD2 objektem neběhá zas tak svižně, natož aby těch objektů bylo víc :-).
Vyšlo 13.10.2002, v blogu: 0 1 2 3 4 5 6 7 8
Děkuji, že jste se rozhodl(a) přečíst tento článek. Budu rád i za komentář. Pokud Vás tento článek zaujal a rádi byste jej doporučili ostatním, podpořte mně prosím tím, že věnujete minutku svého času a uděláte mi reklamu na linkuj.cz, vybrali.sme.sk či jagg.cz. Přeji příjemné čtení
Poslední články
- Tenisti v akci...
- První příspěvek v blogu
- Zobrazení terénu ve 3D grafice
- Engine (2.) - Timing
- Engine (1.) - Logování
- OpenGL (17.) - Light mapping - úvod
- OpenGL (16.) - Fading
- Herní grafické enginy (3.) - GLScene
- Herní grafické enginy (2.) - Pythian Project
- OpenGL (15.) - Ucelený částicový systém - pokračování
- OpenGL (14.) - Ucelený částicový systém
- OpenGL (13.) - Nastavení OpenGL v jazyce C/C++
- 3D Studio MAX (13.) - Popis modifikačních funkcí ve 3D Studiu MAX
- OpenGL (12.) - visualizační plugin pro WinAMP
- Delphi (10.) - knihovna FMOD







