【问题标题】:How fast can DirectX12 draw vertices?DirectX12 绘制顶点的速度有多快?
【发布时间】:2020-02-29 04:35:34
【问题描述】:

我是学生,对 DirectX 完全陌生,对 3D 图形也几乎陌生 - 一个月前我使用了 three.js。但是我在WinApi和纯GDI方面真的很努力,所以,也许我有一些知识。

目前,对于我的文凭工作,我想模拟一些红细胞的物理过程。我已经计算出我将使用超过 600 000 个血细胞,假设它们是立方体(尽管它们不是),我有 600 000 * 8 = 4 800 000 个顶点。任何使用 DirectX 12 的强大计算机将花费多少时间来绘制该场景以缓存在内存中?这是真的吗?通过绘制,我的意思是只将一帧渲染到缓冲区(甚至不渲染到屏幕上)

我知道,也许这个问题是不正确的,但我想了解我是否应该为此目的使用 DirectX(我不想使用 OpenGL)

【问题讨论】:

    标签: parallel-processing directx


    【解决方案1】:

    DirectX 12 可以以与 DirectX 11 完全相同的速度绘制顶点:它们都使用相同的驱动程序和硬件(假设我们说的是 Direct3D 硬件功能级别 11 或实际上具有 DirectX 的更好的硬件12个驱动支持)。

    两个 API 驱动相同的硬件,但不同之处在于软件如何管理它。在 DirectX 11 中,运行时代表应用程序处理许多细节,但在 DirectX 12 中,几乎所有这些都由应用程序显式完成。结果是对行为的更多控制(以及更多潜在的应用程序错误)。这意味着在 DirectX 12 上绘制的总 CPU 开销可以低于在 DirectX 11 上。

    最终,原始图形性能取决于 GPU 硬件本身。

    DirectX Tool Kit

    【讨论】:

    • 你写的方式你认为我对 DirectX11 有所了解,但我不知道。今天画一个有几百万个顶点的框架是一项真正的任务吗?
    • 与所有与性能相关的事情一样:“这取决于”。使用高端离散 GPU 从视频 RAM 或使用实例化绘制顶点,并且没有材料/状态更改可以绘制大量顶点。这完全取决于您将数据传输到 GPU 的效率以及您在显卡上投入了多少钱。
    猜你喜欢
    • 2018-07-30
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多