glNewList(heightmapDisplayList, GL_COMPILE);
// Iterate over the 'strips' of heightmap data.
for (int z = 0; z < data.length - 1; z++) {
// Render a triangle strip for each 'strip'.
glBegin(GL_TRIANGLE_STRIP);
for (int x = 0; x < data[z].length; x++) {
// Take a vertex from the current strip
if (((blue[z][x] / 255) < 0.4))
glColor4f((red[z][x] / 255) / 2
+ (float) (Math.random() / 10), (green[z][x] / 255)
/ 2 + (float) (Math.random() / 10),
(blue[z][x] / 255) / 2
+ (float) (Math.random() / 10), 1);
else {
glColor4f((red[z][x] / 255) / 2
+ (float) (Math.random() / 10), (green[z][x] / 255)
/ 2 + (float) (Math.random() / 10),
(blue[z][x] / 255) / 2
+ (float) (Math.random() / 10), 1);
}
if (data[z][x] >= WATER_LEVEL -10){
glVertex3f(x, data[z][x], z);
// Take a vertex from the next strip
glVertex3f(x, data[z + 1][x], z + 1);
}
}
glEnd();
}
glEndList();
我想在上面的代码中添加一个纹理。
我希望纹理根据地形的高度而变化。这样,我就可以创建一个看起来很漂亮的地形,但不是100%相同。
如您所见,我正在使用DisplayList和GL_TRIANGLE_STRIP,我使用`glCallList(heightmapDisplayList)&#39;来调用它。
目前我只根据高度设置一种颜色,但是由于我glScalef(8, 1, 8)
地图向上看起来不太好看,所以我可以得到一张顶点较少的大地图。
那么,如果不设置每个顶点的颜色或类似的东西,我怎么能这样做呢?