将凸路径(它在点集中描述)转换为要在opengl渲染中使用的三角形列表的最佳方法是什么。我认为最好的东西是示例代码或演示:)谢谢!
答案 0 :(得分:1)
听起来你正在寻找众多“将多边形转换成一系列三角形”的解决方案之一:
也许其中一个内容会有所帮助:
如果你想了解这些概念,前两个是一个好的开始。 如果您需要实现,请从第三个开始。
这有用吗?
答案 1 :(得分:0)
如果您的多边形真的是凸面而不是凹面,则可以将其绘制为三角形扇形。这是有效的。
这是我几年前写的另一种递归算法。它还对凹多边形进行三角剖分,平均产生更好的三角剖分(例如,更少的条子多边形):
void ConcaveTesselator (unsigned a_NumVertices)
{
unsigned left[32]; // enough space for 2^32 recursions:
unsigned right[32];
unsigned stacktop = 0;
// prepare stack:
left[0] = 0;
right[0] = a_NumVertices-1;
stacktop = 1;
while (stacktop)
{
unsigned l,r,m;
// pop current interval from the stack and subdivide:
stacktop--;
l = left[stacktop];
r = right[stacktop];
m = (l+r)>>1;
// replace this with your triangle drawing function
// or store the indices l,m,r and draw the triangles
// as a triangle list later:
DrawTriangleWithIndices (l,m,r);
// recursive subdivide:
if (m-l > 1)
{
left[stacktop] = l;
right[stacktop] = m;
stacktop++;
}
if (r-m > 1)
{
left[stacktop] = m;
right[stacktop] = r;
stacktop++;
}
}
}