日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《DirectX 9.0 3D游戏开发编程基础》 第一章 初始化Direct3D 读书笔记

發(fā)布時間:2025/3/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《DirectX 9.0 3D游戏开发编程基础》 第一章 初始化Direct3D 读书笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

REF設(shè)備

參考光柵設(shè)備,他能以軟件計算方式完全支持Direct3D Api。借助Ref設(shè)備,可以在代碼中使用那些不為當(dāng)前硬件所支持的特性,并對這此特性進(jìn)行測試。

D3DDEVTYPE

在程序代碼中,HAL設(shè)備用值D3DDEVTYPE_HAL來表示。該值是一個枚舉變量。REF設(shè)備用D3DDEVTYPE_REF來表示。這種類型非常重要,你需要銘記,因為在創(chuàng)建設(shè)備的時候,我們必須指定使用哪種設(shè)備類型。

COM(組件對象模型)

創(chuàng)建COM接口時不可以使用c++關(guān)鍵字new。此外使用完接口,應(yīng)調(diào)用Release 方法。

表面

表面的寬度和高度用像素來度量。跨度則用字節(jié)來度量。

在代碼中IDirect3DSurface9來描述表面,它的重要方法如下:

  • LockRect 獲取指向表面存儲區(qū)的指針
  • UnloclRect 釋放
  • GetDesc 得到表面描述信息。
  • 如下代碼實現(xiàn)了鎖定表面存儲區(qū)以及將每一個像素設(shè)為紅色的代碼。

    Code Snippet
  • ??????D3DSURFACE_DESCsurfaceDesc;
  • ??????_surface->GetDesc(&surfaceDesc);
  • ?
  • ??????D3DLOCKED_RECTlockedRect;
  • ??????_surface->LockRect(&lockedRect,
  • ??????????0,
  • ??????????0);
  • ????????DWORD?*?imageData= (DWORD?*)?lockedRect.pBits;
  • ??????for(inti?= 0;i<surfaceDesc.Width;i++)
  • ??????????for(intj?= 0;j<surfaceDesc.Height;j++)
  • ??????????{
  • ??????????????intindex?=?i?*?lockedRect.Pitch?/ 4 +?j;//32DWORD4,4
  • ??????????????imageData[index] = 0xffff0000;//red
  • ??????????}
  • ??????_surface->UnlockRect();
  • ?

    多重采樣

    多重采樣一種平滑技術(shù),用于防止快狀效應(yīng)。

    內(nèi)存池

    表面和其它的Direct3D資源可以放入許多類型的內(nèi)存池中,內(nèi)存池的類型可以D3DPOOL枚舉類型來表示 。包括:

  • D3DPOOL_DEFAULT
  • D3DPOOL_MANAGE
  • D3DPOOL_SYSTEMMEM
  • D3DPOOL_SCRATCH
  • 交換鏈和頁面置換

    Direct3D維護(hù)著一個表面 的集合。該集合通常由現(xiàn)從到三個表面組成,稱為交換鏈。該集合用IDirect3DSwapChain9來表示 。

    完成繪制功能的程序結(jié)構(gòu)為:

  • 在后臺緩存進(jìn)行繪制
  • 提交后臺緩存
  • 回到步驟1
  • 深度緩存

    只含有像素嘗試信息而不含圖像數(shù)據(jù)的表面。

    深度緩存用于計算每一個像素深度值來測試內(nèi)容是否被顯示。

    Direct3D的初始化

  • 獲取接口IDirct3D9的指針該接口用于獲取系統(tǒng)中物理硬件設(shè)備的信息創(chuàng)建接口IDirect3DDevice9,該接口是一個c++對象,代表了我們用來顯示的3d圖形的物理硬件設(shè)備。
  • 檢查設(shè)備性能(D3DCAPS9)
  • 初始化D3DPRESENT_PARAMETERS結(jié)構(gòu)的一個實例。該接口用于指定IDirect3Device9的特性。
  • 創(chuàng)建IDirect3Device9對象.
  • 出處:http://www.cnblogs.com/zhangdongsheng/ 作者:張東升

    總結(jié)

    以上是生活随笔為你收集整理的《DirectX 9.0 3D游戏开发编程基础》 第一章 初始化Direct3D 读书笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。