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