【问题标题】:Can DirectX11 tessellate a triangle list?DirectX11 可以细分三角形列表吗?
【发布时间】:2018-06-13 02:32:38
【问题描述】:

这个问题是在使用 DirectX 11 时提出的。

我有一堆三角形列表形式的几何图形。我可以只用一个顶点着色器和一个像素着色器来渲染它们而不会出现问题。

如果我将外壳着色器、域着色器和几何着色器添加到管道(编译着色器并将它们绑定到渲染上下文),三角形仍然会渲染,但是我不相信我的外壳着色器或域着色器或几何着色器被调用。

所以我的问题是,如果原始类型是三角形列表,会调用船体着色器、域着色器和几何着色器吗?我只找到了使用控制点补丁列表进行镶嵌的示例。细分是否适用于三角形列表?

【问题讨论】:

    标签: 3d shader directx-11 hlsl


    【解决方案1】:

    当基本类型为 D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST 时,不调用外壳着色器、域着色器和几何着色器。 (只是顶点着色器和像素着色器。)根据Microsoft Documentation,您必须使用补丁基元。

    启用曲面细分后,输入到输入汇编器阶段的数据必须是补丁数据。

    对于三角形列表,您可以将图元切换到 D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST 并且它可以工作。 (假设您已经绑定了船体、域和几何着色器。)(对于三角形条带,似乎没有一个简单的解决方案。)

    【讨论】:

      猜你喜欢
      • 2013-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-26
      • 2016-10-04
      • 1970-01-01
      • 2016-02-08
      相关资源
      最近更新 更多