我有道路左侧和右侧的顶点坐标(显示为绿色和黑色点)。我的地形是一个数组,其中的方块角代表不同的高度值。我通过给每个顶点提供插值高度来绘制我的道路但是没有给出正确的结果(道路不与地形重叠)
问题:在opengl中有没有办法可以正确地画出这条路?或者我必须手动计算所有交叉点(蓝点)并镶嵌我的道路?
**编辑:**如果我给每个顶点一个插值高度,这就是结果。由于高度图看到一些部分仍然在地形下。
答案 0 :(得分:1)
这是我为实现结果所做的算法:
对于每条道路:
1) Generate Initial vertexes from road Lines
2) Find Intersections Vertically and add in order to the buffer
3) Find Intersections Horizontally and add in order to the buffer
4) Find Intersections Diagonally and add in order to the buffer
5) Find texture coordinates for each vertex in buffer
在我们按顺序排列顶点之后,我将它传递给Tesselator以绘制最终的凹多边形。 Aandvoilà!
答案 1 :(得分:0)
对于一个非常简单的道路模型,您可能想要做的只是将每个方块计算为两个三角形,找到道路顶点所在的两个三角形中的哪一个,然后将其高度计算为三角形所在平面上的一个点。
根据道路相对于网格大小的复杂程度,您还可以平均四个角的高度,然后将其用作一对顶点的高度值,然后在两个顶点之间进行四边形它们(它们必须是共面的,就像任何四边形一样,这是一个问题,除非你使用额外的三角形来模拟道路上的转弯)。除此之外,使用两个三角形。
看看这个: