问题标签 [tesselation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
360 浏览

directx - 为什么对平坦地形使用三角测量?

我见过很多线模式的地形,所有地形都使用三角形。如果您将它用于不同的高度,我就明白了,但是为什么人们在地形中的平坦区域使用这么多三角形?如果有一个大的平坦区域,创建一个大正方形或至少一个大三角形(尽可能大)而不是使用这么多小三角形不是明智的吗?

所以我的问题是,是否有理由这样做(也许是纹理)?我知道镶嵌做了类似的事情,但从我的角度来看仍然留下了太多的三角形。

0 投票
1 回答
3220 浏览

c++ - 强制 GLUtesselator 只生成 GL_TRIANGLES?

如果我只想使用一种顶点数组格式,那么渲染我生成的数据非常困难。

我试图提供 GLU_TESS_EDGE_FLAG_DATA 回调,但它使我的程序崩溃。(最后也尝试不使用“_DATA”,效果相同)。

我怎样才能让它只生成 GL_TRIANGLES?

0 投票
1 回答
308 浏览

opengl - 在 DirectX 中使用 GLUTesselator 可以吗?

相关问题:1、2

在我的 OpenGL 项目中,我使用 GLUTesselator 将凹多边形(来自外部源)拆分为三角形,然后通过 VBO 将其馈送到 OpenGL。现在我正在估计添加 DirectX 后端。

我可以使用 3-rd 方三角仪,但要找到合适的三角仪并不容易。有Poly2Tri,但它只适用于简单的多边形,没有重复,没有接触等等。否则它只会挂起。由于我的多边形来自外部来源,因此不太容易符合。GLUTesselator 在这里完美运行;来自 GLU 文档:输入轮廓可以是相交的、自相交的或退化的。此外,还支持具有多个重合顶点的多边形。

我认为可以使用模板缓冲区(参见4)绘制没有孔的多边形,但这没有提供缓存的可能性。

如我所见,建议将 GLUTesselator 与 DirectX 一起使用(参见 5、11年前)。GLUTesselator 真的是纯软件库吗?可以将它与 DirectX 一起使用,还是有更好的可能性?

0 投票
1 回答
3887 浏览

opengl - gluTess 函数背后的算法是什么?

我出于好奇而问这个问题,出于性能原因,在使用 GLU 之前首先尝试实现这样的算法。

我研究了常见的算法(经常提到 Delaunay、Ear Clipping),但我似乎无法理解 GLU 是如何一直如此出色地完成工作的。

你们有没有关于这些主题的有趣论文或文章?

0 投票
1 回答
741 浏览

opengl - 使用曲面细分对带有孔的四边形进行三角剖分

是否可以使用镶嵌着色器对带有孔的四边形进行三角测量?例如,

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

  1. 想象一下我有一个四边形。
  2. 然后我想在四边形的中心打一个洞。
  3. 需要有更多的顶点才能形成那个洞。

还有问题:

  • 我可以使用Tessellation着色器来做到这一点吗?如果是这样,怎么做?
  • 我应该改用几何着色器吗?
0 投票
2 回答
1051 浏览

directx - Phong 着色与曲面细分

我在查看源引擎时遇到了Phong Shading 。描述听起来很像Tessellation。但是当我查找它时,我并没有发现任何直接将两者进行比较的东西。现在 DirectX Tessellation 不像 HLSL 中的 Phong 着色那样使用。有什么不同?我应该使用哪一个?

0 投票
3 回答
2356 浏览

algorithm - 如何将多边形转换为非重叠三角形上的集合?

我有一个二维点的坐标集,它们形成一个封闭的多边形。我需要生成一组完全分布多边形的二维三角形。

除了三角形应完全填充多边形区域外,没有其他约束。如果它是我可以实现的标准算法,那将更有帮助。

0 投票
1 回答
2693 浏览

python - 查找包含任意坐标列表的 voronoi 区域

我正在使用一种算法,对于每次迭代,都需要找到一组任意坐标所属的 Voronoi 图的哪个区域。即每个坐标位于哪个区域内。(我们可以假设所有坐标都属于一个区域,如果这有什么不同的话。)

我还没有任何可以在 Python 中运行的代码,但是伪代码看起来像这样:

我知道 scipy.Delaunay 有一个名为 find_simplex 的函数,它几乎可以在 Delaunay 三角剖分中完成我想要的单纯形,但我需要 Voronoi 图,并且我希望避免构建两者。

问题

1.是否有某种图书馆可以让我轻松做到这一点?

2. 如果没有,是否有一个好的算法可以让我有效地做到这一点?

更新

Jamie 的解决方案正是我想要的。我有点尴尬,虽然我自己没有想到它......

0 投票
1 回答
306 浏览

algorithm - 将多边形细分为不同大小的框

我想指出用于创建算法的信息/资源,如本博客所示,它是将多边形(在我的情况下为 voronoi 单元)细分为几个不同大小的框:

http://procworld.blogspot.nl/2011/07/city-lots.html

在评论中可以找到博客作者的一篇论文,但是列出的唯一公式是关于候选位置的适用性:

http://www.groenewegen.de/delft/thesis-final/ProceduralCityLayoutGeneration-Preprint.pdf

任何语言都可以,但如果可以给出示例,首选 Javascript(因为它是我目前正在使用的语言)

一个类似的问题是:https ://gamedev.stackexchange.com/questions/27055/what-is-an-efficient-packing-algorithm-for-packing-rectangles-into-a-polygon

[编辑]:我找到了一些可以开始的东西,但这不是我完全想要的: http ://www2.stetson.edu/~efriedma/squintri/

0 投票
0 回答
758 浏览

opengl - 我的 GLSL 曲面细分着色器出了什么问题

我正在学习 GLSL 镶嵌并编写了一个程序来镶嵌三角形。我glPatchparameterfv用来指定内部和外部细分级别,因此不使用细分控制着色器。问题是添加曲面细分着色器后没有任何显示。我检查了在glLinkProgram. 但是,每次执行渲染循环时,我都会得到“GL_INVALID_OPERATION”。

这是相关代码

我的顶点着色器:

镶嵌评估着色器:

片段着色器: