Files
BlueRoseNote/04-ComputerGraphics/Directx12/DirectX12学习笔记(2)——Direct3D初始化.md

66 lines
1.7 KiB
Markdown
Raw Permalink Normal View History

2025-10-01 11:50:31 +08:00
---
title: DirectX12学习笔记2——Direct3D初始化
date: 2023-03-01 19:39:43
excerpt:
tags:
rating: ⭐
---
2025-10-01 23:14:14 +08:00
# Com接口
需要包含头文件#include <wrl.h>
常用方法
- Get()取得Com接口对象。
- GetAdressof()取得Com接口指针地址。
- Rest():释放相关使用。
# 交换链
D3D使用IDXGISwapChain控制前后缓存交换。
- ResizeBuffers()
2025-10-01 23:55:30 +08:00
- Present():呈现缓冲区内容。
2025-10-01 23:14:14 +08:00
2025-10-02 10:38:48 +08:00
# 资源描述符号
1. 常量缓冲区视图CBV/SRV/UAV
2. 采样器Sample
3. 渲染目标视图RTV
4. 深度/模版视图DSV)
2025-10-01 11:50:31 +08:00
2025-10-02 10:38:48 +08:00
# 多重采样技术
解析resolve或者可以称之为降采样
## 利用D3D进行多重采样
首先填写DXGI_SAMPLE_DESC
```c++
typedef struct DXGI_SAMPLE_DESC
{
UINT Count;
UINT Quality;
} DXGI_SAMPLE_DESC;
```
之后使用ID3D12Device::CheckFeatureSupport查询到对应的质量级别
2025-10-07 22:28:45 +08:00
# DXGI
- DXGI_MODE_DESC 分辨率、逐行扫描、缩放方式。
- DXGI_MODE_SCANLINE_ORDER缩放优先级。
- DXGI_MODE_SCALING缩放方式。
# 功能支持检测
2025-10-08 16:49:03 +08:00
使用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()来创建。
```c++
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