( تعداد نمایش : 1818 )

آموزش DirectX-Graphic در ویژوال بیسیک قسمت اول

DirectX8 ابزاری برای ساخت تصاویر ثابت و متحرک دو بعدی و سه بعدی می باشد .
برای کار با
DirectX8 ابتدا بایستی آنرا روی سیستم خود نصب کنید . سپس در محیط vb از منوی project گزینه References را انتخاب کنید . در فرمی که ظاهر می شود اطمینان حاصل کنید که گزینه DirectX8 for VB type library فعال باشد .
برای کار با
DirectX8 بایستی از تعریف نمودن شی پایه DirectX8 شروع نمود :


Dim Dx as DirectX8


شی
Direct3D8 برای کنترل اشیا‌‌ سه بعدی بکار می رود :


Dim D3D as Direct3D8


شی
Direct3DDevice8 ، سخت افزار مربوط به رندر تصاویر را مشخص می کند :


Dim D3DDevice as Direct3DDevice8


حال برای شروع کار با
Direct3D ، تابع ( ) initialise را تعریف می کنیم . اگر اینکار درست انجام شود تابع ، مقدار true را برمی گرداند :


public function initialise () as boolean
Dim DispMode as D3DISPLAYMODE


شی
D3DISPLAYMODE حالت نمایش را مشخص می نماید .


Dim D3Dwindow as D3DPRESENT_PARAMETERS


شی فوق مشخص می کند که
viewport شما چگونه باشد .
حال شی اصلی
DirectX8 را می سازیم :


Set Dx=New DirectX8


سپس شی اصلی ساخت واسط سه بعدی را می سازیم :


()
set D3D.Dx.Direct3Dcreate


سپس حالت فعلی نمایش را با دستور زیر استخراج می کنیم :


D3D.getadapterdisplaymode D3DADAPTER_DEFAULT,dispmode


حال دو حالت برای کار با
DirectX داریم :
۱ –
windowed mode
2 –
fullscrean mode
1 – برای کار با حالت پنجره ای ابتدا این موضوع را به
DirectX اطلاع می دهیم :


D3Dwindow.windowed=1


سپس نوع
referesh تصویر را مشخص می کنیم ( در اینجا چند انتخاب وجود دارد که در صورت نیاز به اطلاعات بیشتر با من تماس بگیرید . ) :


D3Dwindow.swapeffect=D3DSWAPEFFECT_COPY_VSYNC


سپس بایستی فرمت بافر نگهدارنده تصاویر را مشخص کنیم :


D3Dwindow.backbufferformat=dispmode.format


2 – برای کار با حالت تمام صفحه ، ابتدا نوع
refresh را مشخص کرده سپس تعداد بافر های تصویر و سرانجام نوع و سایز بافر را مشخص می نمائیم :


D3Dwindow.swapeffect=D3DSWAPEFFECT_DISCARD
D3Dwindow.backbuffercount=1
D3Dwindow.backbufferformat=dispmode.format
D3Dwindow.backbufferheight=dispmode.height
D3Dwindow.backbufferwidth=dispmode.width


سپس پنجره نمایش مشخص می گردد :


D3Dwindow.hdevicewindow=frmMain.hwnd

@حال بایستی یک device ساخته شود که یا از طریق سخت افزار و یا نرم افزار تصاویر را رندر نماید :


Set D3DDevice=D3Dcreatedevice(D3DADAPTER_DEFAULT
,
D3DDEVTYPE_HAL,
frmMain.hwnd,D3DCREATE_SOFTWARE_VERTEXPROCESSING,
D3Dwindow)x,
end sub


درصورتی که کارت گرافیک شما امکانات رندر سخت افزاری تصاویر را ندارد از
D3DDEVTYPE_REF بجای D3DDEVTYPE_HAL استفاده کنید .
حال بایستی روتین
render را بنویسیم . البته در این درس تصویری برای رندر نداریم و تنها چگونگی نوشتن این روتین را بیان خواهم کرد :
۱ – ابتدا بایستی device مربوط به رندر ، قبل از کشیدن تصویر در آن پاک شود :


D3DDevice.clear 0,byval 0,D3DCLEAR_TARGET,&H0,1#,0


عدد
hex ای که در دستور فوق آمده رنگ زمینه صفحه را مشخص می کند
۲ – سپس بایستی تصاویر مورد نظر را رندر کنیم . اینکار توسط دستورات زیر انجام می شود :


D3DDevice.beginscence
all rendering calls go between these two lines
D3DDEvice.endscence


3 – در پایان بایستی صفحه را
update کنید :


D3DDevice.present byval 0,byval 0,0,byval 0

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن