• DirectX 12 学习笔记 -结构


    上篇文章我们创建了一个窗口,看样子还不难,我们继续玩DX12

    引用一些文件

    头文件

    #include 
    #include 
    #include 
    
    • 1
    • 2
    • 3

    还有一些库

    #pragma comment(lib, "d3d12.lib")
    #pragma comment(lib, "dxgi.lib")
    
    • 1
    • 2

    请添加图片描述

    这个图是我最开始的理解哈哈,不一定是对的,笔者只是一个小萌新,刚学DX和图形,自己注意真实性

    IDXGIFactory

    仔细一看,我发现居然有IDXGIFactory,IDXGIFactory1,2,3,4…嘶…很抽象,我猜测是不同的API版本,功能应该差不多

    我们就用那个没数字的版本

    这个东西有几个功能

    • 能枚举我们显示器适配器?
    • 还能用它创建一个SwapChain

    IDXGIAdaptor

    似乎这个就是显示器适配器,也有IDXGIAdaptor1…
    (好烦躁啊!!!!怎么这么多,我用哪个)

    适配器是面向不同图形硬件的抽象概念,描述了图形硬件(通常是显卡)的信息(如名称,驱动等),是创建Device的必要参数

    ID3D12Device

    绘图设备是与适配器交互的重要接口,它提供了大量交互适配器的低级操作
    绘图设备,这个东西里面

    • 创建Fence
    • 创建资源堆
    • 创建提交的资源
    • 创建描述符堆
    • …一大堆,不列了

    ID3D12CommandQueue

    命令队列是存储较为低级绘制命令的队列,从属于绘图设备,一个绘图设备可以拥有多个命令队列,队列里的命令按时序出队执行

    就…理解成这个东西会把里面的命令按顺序输入到绘图设备吧

    ID3D12CommandList

    命令列表封装了较为高级的绘制命令,通常需要向命令队列提交命令列表,列表内的高级命令会被翻译为低级命令按顺序排入命令队列

    DX12不让直接往Queue里丢命令,只能先丢进List,再把List丢进Queue

    ID3D12CommandAllocator

    命令分配器提供了创建命令列表的手段,与命令列表一一对应并管理命令列表的资源

    也就是说这个玩意是管着命令列表的,然后能创建命令列表

    IDXGISwapChain

    这个东西…嗯…1234

    大概原理就是把DX渲染的东西放进这个里面,然后一次性输出到屏幕,省得出现介于两个画面之间的情况。

    ID3D12DescriptorHeap

    描述符堆,看样子是存东西的,描述内存里一块空间是什么东西

  • 相关阅读:
    Linux 离线安装mysql
    论文精读之 Google_v3,以及其相对于 Google_v1 和 Google_v2_BN 的模型比较
    Harmony Next 文件命令操作(发送、读取、媒体文件查询)
    Java的数字处理操作
    tableau高级绘图(一)-使用模板快速制作华夫饼图 (Waffle Chart)
    使用Python和BeautifulSoup提取网页数据的实用技巧
    详解 Apache SkyWalking OAP 的分布式计算
    CSS特效002:花样的鼠标悬停效果
    【无标题】
    回溯算法的了解
  • 原文地址:https://blog.csdn.net/qq_46273241/article/details/133278693