在地形图上绘制道路

3
我有路的左右两侧的顶点坐标(绿色和黑色点表示)。我的地形是一个数组,由正方形的角落代表着不同的高度值。我通过为每个顶点提供插值高度来绘制我的道路,但这并不能得到正确的结果(道路没有与地形重叠)。
问题:是否有一种在OpenGL中可以正确绘制此道路的方法?或者我必须手动计算所有交点(蓝色点),并将我的道路进行细分?
**编辑**:如果我只给每个顶点一个插值高度,则会得到以下结果。由于高度图的缘故,一些部分仍然在地形之下。

1
是的,在地形的坡度改变的地方(限于那些网格线)插入一个点,并将该点分配为该点的地形高度。这些蓝色的点应该在你的道路两侧。 - Andon M. Coleman
2个回答

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以绘制最终的凹多边形。然后就完成了!enter image description here

0

针对一个非常简单的路模型,您可能想要做的就是将每个正方形计算为两个三角形,找到道路顶点所在的两个三角形中的哪一个,然后将其高度计算为该三角形所在平面上的一个点。

根据道路相对于网格大小的复杂性,您还可以取四个角落的高度的平均值,然后将其用作一对顶点的高度值,然后在它们之间进行四边形操作(它们必须共面,就像任何四边形一样,在模拟道路转弯时会出现问题)。除此之外,使用两个三角形即可。

同时请查看以下内容:

http://www.opentk.com/node/3179


很抱歉,但这种方法不起作用,我已经尝试过了。(请查看我的编辑) - Berke Cagkan Toptas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接