1.7 KiB
1.7 KiB
title, date, excerpt, tags, rating
title | date | excerpt | tags | rating |
---|---|---|---|---|
DirectX12学习笔记(2)——Direct3D初始化 | 2023-03-01 19:39:43 | ⭐ |
Com接口
需要包含头文件#include <wrl.h>
常用方法
- Get():取得Com接口对象。
- GetAdressof():取得Com接口指针地址。
- Rest():释放相关使用。
交换链
D3D使用IDXGISwapChain控制前后缓存交换。
- ResizeBuffers()
- Present():呈现缓冲区内容。
资源描述符号
- 常量缓冲区视图(CBV)/SRV/UAV
- 采样器(Sample)
- 渲染目标视图(RTV)
- 深度/模版视图(DSV)
多重采样技术
解析(resolve,或者可以称之为降采样)
利用D3D进行多重采样
首先填写DXGI_SAMPLE_DESC:
typedef struct DXGI_SAMPLE_DESC
{
UINT Count;
UINT Quality;
} DXGI_SAMPLE_DESC;
之后使用ID3D12Device::CheckFeatureSupport查询到对应的质量级别:
DXGI
- DXGI_MODE_DESC: 分辨率、逐行扫描、缩放方式。
- DXGI_MODE_SCANLINE_ORDER:缩放优先级。
- DXGI_MODE_SCALING:缩放方式。
功能支持检测
使用ID3D12Device::CheckFeatureSupport()检查功能支持情况。
- D3D12_FEATURE
- D3D12_FEATURE_D3D12_OPTIONS
- D3D12_FEATURE_ARCHITECHTURE
- D3D12_FEATURE_FEATURE_LEVELS
- D3D12_FEATURE_FORMAT_SUPPORT
- D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS
CPU与GPU间的交互
命令队列
DX12的命令队列被抽象为ID3D12CommandQueue。使用ID3D12Device::CreateCommandQueue()来创建。
Microsoft::WRL::ComPtr<ID3D12Debug> mCommandQueue;
D3D12_COMMAND_QUEUE_DESC queueDesc={};
queueDesc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT;
queueDesc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE;
ThrowIfFailed(md3Device->CreateCommandQueue(&queueDesc,IID_PPV_ARGS(&mCommandQueue)));
IID_PPV_ARGS