![](/img/trans.png)
[英]How can I draw 2D geometry benind 3D objects in DirectX? (D3D9)
[英]How to implement Geometry Shader in DirectX for a 3D object like Cylinder?
我需要有关如何在圆柱体上实现几何着色器以及 [maxvertexcount()] 的值是什么的帮助,我们是否需要在 ModelClass 中提供顶点和索引的值?
Direct3D 的几何着色器阶段不是为了生成像圆柱体这样的完整几何体,它也不是真正为曲面细分设计的。
https://learn.microsoft.com/en-us/windows/uwp/graphics-concepts/geometry-shader-stage--gs-
您可以做一些少量的放大,但通常当您跳过 GS 阶段或 output 与输入相同数量的顶点时,硬件实现效果最佳。 与其他方法相比,即使是 GS 的初始“用例”,例如从单个输入点生成点精灵(四边形),也已被证明效率相当低。
GS 的主要价值是处理邻接信息,或进行基于面的计算,例如在不复制顶点的情况下实现经典的“平面着色”。 几何着色器在进行非真实感渲染时非常有用。 GS 阶段还可以使用 Stream Out 和控制管道中的多渲染目标选择来做一些有趣的技巧。
https://npr-art.blogspot.com/2009/07/geometry-shader-silhouettes.html
如果要生成 Cylinder,最好的选择是在 CPU 上构建它。 请参阅DirectX 工具包中的GeometricPrimitive
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.