لینک های برتر

      لینک های داغ

 
   
  




آموزش کامپيوتر :: آموزش انواع نرم افزار

موضوع: آموزش DirectX-Graphic (قسمت اول)

موضوع : ساخت يک واسط direct3D

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


مطلب بعدی   ::  مطلب قبلی



بهترین فروشگاه آنلاین
ابتدا محصول خود را انتخاب و خرید کنید بعد از تحویل مبلغ را پرداخت کنید


فروشگاه آنلاین - اول بخر بعدا پرداخت کن

- لينک هاي برگزيده -
  ترفندهاي جستجو در گوگل قسمت سوم
  فرايند ازدواج و مراحل آن
  فيلم بدون خشونت
  حسام الدين سراج » وداع 2 » شوخ شيرين
  کهربا
  خواب نوشين » خواب نوشين
  فيلم هاي ايراني در بازار فيلم كن
  تبادل موسيقی رايگان ممنوع!
  کوير » مرداب
  اي تبديل پسوندهاي مختلف فايل هاي ويدئويي به يكديگر
خطر استفاده از سفید کننده پوست
حليم
اريترومايسين ERYTHROMYCIN
زورگيري و راه هاي مقابله با آن
آموزش دلفی (بخش سوم)
يونجهAlfalfa
خطر استفاده از سفید کننده پوست
تصاوير جالب و ديدني14
«طلاق»، فاجعه‌اي در انفجار خانواده
ساختمان های پایتخت ؛ پناهگاه های پر خطر
  
صفحه اول  : تقشه سایت : لینک باکس