|
آموزش DirectX-Graphic قسمت اول
|
|
۸-۸-۱۳۸۶, ۱۲:۵۲ صبح
ارسال: #1
|
|||
|
|||
|
آموزش 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 داريم : 1 - 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 |
|||
کاربرانِ درحال بازدید از این موضوع: 1 مهمان
Persian MyBB : MyBBIran.com
Powered by MyBB | Copyright © 2009 MyBB Group
Element Blue by MyBB Mod | RTL by MyBBIran.com
Powered by MyBB | Copyright © 2009 MyBB Group
Element Blue by MyBB Mod | RTL by MyBBIran.com





