Veřejný profil obyvatele Citadela

Citadela

Lekce 1: Vytvoření prázdné 3D scény

Autor: Citadela
Přidáno: Před 2 roky, Vzkazů: 0
Hodnocení:
0/5Zatím nehodnoceno

DirectX a Visual Basic...

Lekce 1: Vytvoření prázdné 3D scény

Vytvoříme si nový projekt (standard EXE). Musíme dát vědět VB, že chceme přistupovat k DirectX. Proto přidáme referenci “DirectX 8 for Visual Basic Type Library“(project menu – reference). Jestliže ji nenajdete v registrovaných referencích, tak se nachází v adresáři Windows\System jako Dx8vb.dll. A můžeme začít s deklarací:

Dim Dx As New DirectX8 ´deklarace DirectX
Dim D3D As Direct3D8 ´deklarace Direct3D
Dim D3DDevice As Direct3DDevice8 ´deklarace Direct3D Device

Následuje inicializace DirectX, Direct3D, D3DDevice:

Set D3D = Dx.Direct3DCreate() ´vytvoření objektu D3D

Dim Nastavení_obrazovky As D3DDISPLAYMODE
D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, Nastavení_obrazovky

Dim D3DWindow As D3DPRESENT_PARAMETERS

With D3DWindow
´Copy_Vsync synchronizuje frekvenci obrazovky s graf. adaptérem (Vertikální synchronizace)
.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC
´formát BackBufferu se rovná formátu obrazovky
.BackBuffer = Nastavení_obrazovky.Format
´chceme jen jeden BackBuffer (při tomto nastavení může být je jeden)
.BackBufferCount = 1
End With

Set D3DDevice = D3D.CreateDevice(D3DADAPTE
R_DEFAULT, D3DDEVTYPE_HAL, hWnd, _D3DCREATE_SOFTWARE_VERTEXPROCESSING, D3DWindow)

Jestli jste si už zkusili příklad, mohli jste si všimnout, že struktura D3DDisplayMode není deklarovaná. Není to potřebné, protože všechny deklarace se nachází již v knihovně Dx8vb.dll. Taková deklarace vypadá takto:

Type D3DDISPLAYMODE
Format As CONST_D3DFORMAT ´formát obrazovky
Height As Long ´výška
RefreshRate As Long ´obnovovací frekvence
Width As Long ´šířka
End Type

Pomocí GetAdapterDisplayMode získáme aktuální nastavení obrazovky. Pro nás je důležitý formát. Existuje kolem 40 formátů obrazovky. My budeme nejčastěji používat R5G6B5 (5 bitů pro červenou, 6 pro zelenou a 5 pro modrou = 16 bitů) a R8G8B8 (32 bitů).

Publikováno v tlupách: Citadela's Home