使用几何着色器(GLSL)生成顶点

时间:2013-06-21 06:44:37

标签: glsl geometry-shader

最近我正在尝试实现一种算法来实时生成藤蔓。我有点知道如何在cpu上做,但我想用GPU来实现这一点。我在考虑几何着​​色器,但它看起来像几何着色器以原始比例执行,这意味着它将在每个基元上执行完全相同的功能,这不是我所期望的。

这是概念上我的葡萄种植算法的工作原理。选择对象网格上的任何点作为根点,藤蔓生长算法根据之前产生的点生成一系列点(代表藤蔓)。点的位置受重力,附着力和到三角形面的距离等因素的影响。每个点必须与三角形面的法线位于同一侧。

我如何在GPU上执行此操作?非常感谢。

1 个答案:

答案 0 :(得分:1)

如果你想做这样的事情,那就不能很好地映射到常规渲染管道,在glsl中;你最好的选择是使用compute shaders(如果你不需要在glsl中实现它,你可能也想看看OpenCL或CUDA作为可能的替代方案,但请注意供应商中的CUDA锁定到NVIDIA在这种情况下,您可以使用它来使用您计划的任何方法生成藤蔓几何体;然后在第二次通过中将葡萄藤渲染成正常。

请注意,如果您的葡萄藤生成算法很好地映射到GPU的大规模并行性质,这只是一个好主意。如果您的算法本质上是串行的,那么使用CPU生成几何图形可能会产生更好的结果。