Opengl 哪种几何体适合渲染树枝

Opengl 哪种几何体适合渲染树枝,opengl,graphics,3d,rendering,Opengl,Graphics,3d,Rendering,最近我正在做一个渲染树的项目。 在我的第一个想法,我选择了圆柱代表一个小分支。但是我在结果中得到了接缝: 然后我查看了一个著名的树建模软件“SpeedTree”,它在两个分支之间运行得相当平稳: 我看到了它的底层线框,如下所示: 所以我想知道SpeedTree用于分支表示的几何体是什么?似乎不使用圆柱体,因为两个面不平行。在Opengl中实现这样的几何图形是困难的吗 更新: 我决定使用样条线作为分支的底层骨架,就像SpeedTree一样,但是哪种样条线最适合这个目的呢 可以使用a生成树的

最近我正在做一个渲染树的项目。
在我的第一个想法,我选择了圆柱代表一个小分支。但是我在结果中得到了接缝

然后我查看了一个著名的树建模软件“SpeedTree”,它在两个分支之间运行得相当平稳:


我看到了它的底层线框,如下所示:

所以我想知道SpeedTree用于分支表示的几何体是什么?似乎不使用圆柱体,因为两个面不平行。在Opengl中实现这样的几何图形是困难的吗


更新:
我决定使用样条线作为分支的底层骨架,就像SpeedTree一样,但是哪种样条线最适合这个目的呢

可以使用a生成树的网格。可以想象,您可以将每个分支“绘制”为
GL_LINE_STRIP_adjancy
,然后让几何体着色器生成三角形条带,该条带将是每个分支段的准圆柱体


此方法有助于接缝的原因是,可以根据上一个/下一个分支线段的角度/位置/半径调整圆柱体对象边缘的位置。它还允许圆柱体的半径从端到端变化:随着分支变薄,过渡将平稳进行,而不是在接缝处使每个线段的半径突然下降。

OpenGL仅渲染三角形组。由您指定它们的连接方式。最有可能的是,SpeedTree在没有任何渲染API(如OpenGL)的帮助下计算顶点的位置

从您发布的线框来看,SpeedTree似乎正在沿着树枝长度的不同位置生成树枝的中心和半径。这些数据点中的每一个似乎都成为一个由n个顶点组成的环,然后用一条三角形连接到前面的控制点


出于效率考虑,SpeedTree可能会将所有顶点打包到一个VBO/IBO对中进行渲染。

这看起来有潜在的相关性:@StuartGolodetz该文档似乎只是对底层实现给出了一些注释,是否有任何链接可以给出详细的解释?因为我对3d图形有点陌生。不幸的是,我不确定——我只是快速地在谷歌上搜索了一下,看看我能为你找到什么。