我有一个带有ngons的多边形网格。我想制作一个镶嵌细分着色器,仅向其发送常规四边形,以使其可以在其上构造B样条曲面。我遇到了有用的教程,但我并不完全了解它,而我的问题则稍微笼统一点,因为它包含不规则的多边形和顶点。在网格中,我正在寻找规则的四边形,即所有顶点都具有化合价4的四边形。它们看起来像这样

细分着色器进行划分,然后使用B样条法进行平滑处理。但是,对于B样条法,我需要16个点,所以我必须像这样细分内表面。

当然可以使用平均来获得这些点,但是不会进行平滑处理。我通常使用的细分规则都是二进制的,也就是说,它们将边分成两个边,但这不能产生这样的一组控制点。

我如何从这里继续?我是否应该只使用二次B样条曲线,并使用顶图查找中途点的近似值并将其发送到着色器?另一个问题是规则四边形的相邻面很可能是三角形或五边形等。因此很难找到我需要镶嵌细分着色器执行B样条平滑的点。

感谢任何提示,
如果有人想进一步澄清该问题,请问,我意识到这个问题可能含糊不清。

评论

如果您还没死定于b样条曲线,则可能很有帮助。 blog.demofox.org/2015/08/09/cubic-hermite-rectangles

@AlanWolfe感谢您的链接,它看起来很有趣,但是我正在寻找渐进的平滑效果,即Runge现象是不可接受的

@AlanWolfe我仍然很困惑,我再次检查了这篇文章,它实际上给了我很棒的结果!非常感谢您的小费。如果需要,请发布答案,我会接受的。

我很高兴它提供了帮助,但是我以前从未使用过镶嵌器,因此无法做出一个不错的答案。如果您写一个,我会投票(;

#1 楼

对于常规四边形面,您要执行的操作是发送要评估的四边形的顶点及其周围的八个相邻四边形:总共4x4顶点。 B样条曲线需要知道相邻顶点的位置,以便生成可以平滑地连接到相邻面块的表面面块。

如果相邻面不是四边形,我不会认为您可以使用简单的B样条评估。在Catmull-Clark细分中,所有内容都在细分的第一级之后四分之四,尽管您仍然需要处理非凡的顶点。