问题标签 [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.
directx - 为什么对平坦地形使用三角测量?
我见过很多线模式的地形,所有地形都使用三角形。如果您将它用于不同的高度,我就明白了,但是为什么人们在地形中的平坦区域使用这么多三角形?如果有一个大的平坦区域,创建一个大正方形或至少一个大三角形(尽可能大)而不是使用这么多小三角形不是明智的吗?
所以我的问题是,是否有理由这样做(也许是纹理)?我知道镶嵌做了类似的事情,但从我的角度来看仍然留下了太多的三角形。
c++ - 强制 GLUtesselator 只生成 GL_TRIANGLES?
如果我只想使用一种顶点数组格式,那么渲染我生成的数据非常困难。
我试图提供 GLU_TESS_EDGE_FLAG_DATA 回调,但它使我的程序崩溃。(最后也尝试不使用“_DATA”,效果相同)。
我怎样才能让它只生成 GL_TRIANGLES?
opengl - 在 DirectX 中使用 GLUTesselator 可以吗?
在我的 OpenGL 项目中,我使用 GLUTesselator 将凹多边形(来自外部源)拆分为三角形,然后通过 VBO 将其馈送到 OpenGL。现在我正在估计添加 DirectX 后端。
我可以使用 3-rd 方三角仪,但要找到合适的三角仪并不容易。有Poly2Tri,但它只适用于简单的多边形,没有重复,没有接触等等。否则它只会挂起。由于我的多边形来自外部来源,因此不太容易符合。GLUTesselator 在这里完美运行;来自 GLU 文档:输入轮廓可以是相交的、自相交的或退化的。此外,还支持具有多个重合顶点的多边形。
我认为可以使用模板缓冲区(参见4)绘制没有孔的多边形,但这没有提供缓存的可能性。
如我所见,建议将 GLUTesselator 与 DirectX 一起使用(参见 5、11年前)。GLUTesselator 真的是纯软件库吗?可以将它与 DirectX 一起使用,还是有更好的可能性?
opengl - gluTess 函数背后的算法是什么?
我出于好奇而问这个问题,出于性能原因,在使用 GLU 之前首先尝试实现这样的算法。
我研究了常见的算法(经常提到 Delaunay、Ear Clipping),但我似乎无法理解 GLU 是如何一直如此出色地完成工作的。
你们有没有关于这些主题的有趣论文或文章?
opengl - 使用曲面细分对带有孔的四边形进行三角剖分
是否可以使用镶嵌着色器对带有孔的四边形进行三角测量?例如,
- 想象一下我有一个四边形。
- 然后我想在四边形的中心打一个洞。
- 需要有更多的顶点才能形成那个洞。
还有问题:
- 我可以使用Tessellation着色器来做到这一点吗?如果是这样,怎么做?
- 我应该改用几何着色器吗?
directx - Phong 着色与曲面细分
我在查看源引擎时遇到了Phong Shading 。描述听起来很像Tessellation。但是当我查找它时,我并没有发现任何直接将两者进行比较的东西。现在 DirectX Tessellation 不像 HLSL 中的 Phong 着色那样使用。有什么不同?我应该使用哪一个?
algorithm - 如何将多边形转换为非重叠三角形上的集合?
我有一个二维点的坐标集,它们形成一个封闭的多边形。我需要生成一组完全分布多边形的二维三角形。
除了三角形应完全填充多边形区域外,没有其他约束。如果它是我可以实现的标准算法,那将更有帮助。
python - 查找包含任意坐标列表的 voronoi 区域
我正在使用一种算法,对于每次迭代,都需要找到一组任意坐标所属的 Voronoi 图的哪个区域。即每个坐标位于哪个区域内。(我们可以假设所有坐标都属于一个区域,如果这有什么不同的话。)
我还没有任何可以在 Python 中运行的代码,但是伪代码看起来像这样:
我知道 scipy.Delaunay 有一个名为 find_simplex 的函数,它几乎可以在 Delaunay 三角剖分中完成我想要的单纯形,但我需要 Voronoi 图,并且我希望避免构建两者。
问题:
1.是否有某种图书馆可以让我轻松做到这一点?
2. 如果没有,是否有一个好的算法可以让我有效地做到这一点?
更新
Jamie 的解决方案正是我想要的。我有点尴尬,虽然我自己没有想到它......
algorithm - 将多边形细分为不同大小的框
我想指出用于创建算法的信息/资源,如本博客所示,它是将多边形(在我的情况下为 voronoi 单元)细分为几个不同大小的框:
http://procworld.blogspot.nl/2011/07/city-lots.html
在评论中可以找到博客作者的一篇论文,但是列出的唯一公式是关于候选位置的适用性:
http://www.groenewegen.de/delft/thesis-final/ProceduralCityLayoutGeneration-Preprint.pdf
任何语言都可以,但如果可以给出示例,首选 Javascript(因为它是我目前正在使用的语言)
[编辑]:我找到了一些可以开始的东西,但这不是我完全想要的: http ://www2.stetson.edu/~efriedma/squintri/
opengl - 我的 GLSL 曲面细分着色器出了什么问题
我正在学习 GLSL 镶嵌并编写了一个程序来镶嵌三角形。我glPatchparameterfv
用来指定内部和外部细分级别,因此不使用细分控制着色器。问题是添加曲面细分着色器后没有任何显示。我检查了在glLinkProgram
. 但是,每次执行渲染循环时,我都会得到“GL_INVALID_OPERATION”。
这是相关代码
我的顶点着色器:
镶嵌评估着色器:
片段着色器: