在地形图上绘制道路
Drawing Road on Terrain Map
我有道路左侧和右侧的顶点坐标(显示为绿色和黑色点)。我的地形是一个数组,正方形的角代表不同的高度值。我只是通过为每个顶点提供插值高度来绘制我的道路,但这并没有给出正确的结果(道路不与地形重叠)
问题:opengl中有什么方法可以正确绘制这条路吗?或者我必须手动计算所有交叉点(蓝点)并镶嵌我的道路?
**编辑:**如果我只给每个顶点一个插值高度,这就是结果。正如所见,由于高度图,某些部分仍处于地形之下。
对于一个非常简单的道路模型,您可能想要做的就是将每个正方形计算为两个三角形,找出道路顶点位于两个三角形中的哪一个,然后计算它的高度作为三角形所在平面上的一个点。
根据道路相对于网格大小的复杂程度,您也可以只平均四个角的高度,然后将其用作一对顶点的高度值,然后做一个它们之间的四边形(它们必须是共面的,就像任何四边形一样,这是一个问题,除非您使用额外的三角形来模拟道路转弯)。除此之外,使用两个三角形。
也看看这个:
这是我为实现结果所做的算法:
每条路:
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 以绘制最终的凹多边形。瞧!
我有道路左侧和右侧的顶点坐标(显示为绿色和黑色点)。我的地形是一个数组,正方形的角代表不同的高度值。我只是通过为每个顶点提供插值高度来绘制我的道路,但这并没有给出正确的结果(道路不与地形重叠)
问题:opengl中有什么方法可以正确绘制这条路吗?或者我必须手动计算所有交叉点(蓝点)并镶嵌我的道路?
**编辑:**如果我只给每个顶点一个插值高度,这就是结果。正如所见,由于高度图,某些部分仍处于地形之下。
对于一个非常简单的道路模型,您可能想要做的就是将每个正方形计算为两个三角形,找出道路顶点位于两个三角形中的哪一个,然后计算它的高度作为三角形所在平面上的一个点。
根据道路相对于网格大小的复杂程度,您也可以只平均四个角的高度,然后将其用作一对顶点的高度值,然后做一个它们之间的四边形(它们必须是共面的,就像任何四边形一样,这是一个问题,除非您使用额外的三角形来模拟道路转弯)。除此之外,使用两个三角形。
也看看这个:
这是我为实现结果所做的算法:
每条路:
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 以绘制最终的凹多边形。瞧!