DirectX 11 學習筆記(1) D3D基礎

2021-09-29 02:00:11 字數 2113 閱讀 7463

dx11特性:強制要求裝置實現d3d11規定的所有功能特性。

dx9特性:不強制要求裝置實現d3d11規定的所有功能特性。當需要使用某一特性時,先查詢再呼叫。

com:component object model 元件物件模型

texture:紋理

d3d紋理只支援特定格式的資料儲存,這些格式由dxgi_format列舉型別描述。

dxgi_format_r32g32b32_float

元素為3個32位浮點分量

dxgi_format_r16g16b16a16_unorm

元素為4個16位分量,範圍[0,1]

dxgi_format_r32g32_uint

元素為2個32位無符號整數分量

dxgi_format_r8g8b8a8_unorm

元素為4個8位無符號分量,範圍[0,1]

dxgi_format_r8g8b8a8_snorm

元素為4個8位有符號分量,範圍[-1,1]

dxgi_format_r8g8b8a8_sint

元素為4個8位有符號分量,範圍[-128,127]

dxgi_format_r8g8b8a8_uint

元素為4個8位無符號分量,範圍[0,255]

dxgi_format_r8g8b8a8_typeless

弱型別格式,可以先分配記憶體空間,然後再紋理繫結到管線時再重新解釋資料內容

前後臺緩衝區(front buffer、back buffer):在後台緩衝區執行所有的動畫幀繪製工作後,將前後臺緩衝區的指標互換,使後台緩衝區在前台顯示(這種互換行為成為呈現),變成前台緩衝區,原前台緩衝區變成後台緩衝區,完成下一幀的繪製工作。這個交換的過程形成了乙個交換鏈(swap chain)。

d3d中的交換鏈結口:idxgiswapchain

idxgiswapchain::resizebuffers 調整緩衝區尺寸

idxgiswapchain::present 呈現方法

深度緩衝區(depth buffer)範圍[0.0,1.0],0.0表示離觀察者最近的物體。

d3d使用的深度快取(depth buffering)或z快取(z-buffering)是乙個概念。

深度緩衝區是乙個紋理,所以在建立它時必須制定一種資料格式。格式如下:

dxgi_format_d32_float_s8x24_uint

32位浮點深度緩衝區。為模板緩衝區預留8位無符號整數,每個取值[0,255],其餘24位閒置

dxgi_format_d32_float

32位浮點深度緩衝區

dxgi_format_d24_unorm_s8_uint

無符號24位深度緩衝區,每個取值[0,1]。為模板緩衝區預留8位無符號整數,每個模板值取值範圍[0,255]

dxgi_format_d16_unorm

無符號16位深度緩衝區,每個取值[0,1]

為了將紋理繫結到渲染管線的不同階段,d3d始終要求我們在初始換時為紋理建立相關的資源檢視(resource view),所以當把紋理作為乙個渲染目標和著色器資源時,要為它建立兩種檢視:渲染目標檢視(id3d11rendertargetview)和著色器資源檢視(id3d11shaderresourceview)。

將紋理作為渲染目標使用繫結標誌值:d3d11_bind_render_target

將紋理作為著色器資源使用繫結值:d3d10_bind_shader_resource

資源檢視的兩個主要功能:

1.指定資源所要繫結的管線階段

2.如果在建立資源時指定的時弱型別(typeless)格式,那麼在為它建立資源檢視時就必須指定明確的資源型別。對於弱型別格式,紋理元素可能會在乙個管線階段中視為浮點數,而在另乙個管線階段中視為整數。

抗鋸齒技術:

超級取樣supersampling

多重取樣multisampling

後台快取:4倍解析度

後台快取:4倍解析度

深度快取:4倍解析度

深度快取:4倍解析度

實際畫素值:4個畫素的平均值

實際畫素值 :計算畫素中心顏色一次後基於子畫素的可見性和範圍共享顏色資訊

優勢:精確

優勢:代價相對低

DirectX 11遊戲程式設計學習筆記之1 開場白

本文由哈利 2024958085 qq.com 這是我之前的部落格系列 directx9.0c遊戲開發手記之 龍書 第二版學習筆記 的平行版,也可以說是續集。說是平行版,因為這兩個部落格系列因為某種顯而易見的原因,內容是很平行的 而之所以說是續集,是因為前面那個系列可能就此坑掉了 前面那個系列是關於...

DirectX11 學習筆記(14) 點光源

好久沒有更新部落格了。最近一直在忙一些其他的事情 dx都快忘了 今天繼續更新!上次說到簡單光照,今天我們就學習乙個點光源 影響點光源的因素主要有 範圍,位置,衰減 其中衰減用乙個二次方程來表達 attenuation att0 att1 d att2 d att0 常量修飾符 由於此值未乘以任何值,...

DirectX11學習筆記(不定期更新)

目錄 1 dx與hlsl的矩陣 2 建立常量緩衝區的尺寸需要按照16位元組對齊 dx的矩陣 directx xmmatrix 按照行主元優先儲存,而hlsl的矩陣預設按照列主元優先儲存。解決這個問題的方法有兩種 1 將directx的矩陣轉置 directx xmmatrix m matrix di...