《Focus On 3D Terrain Programming》是本好书。随便翻了一些国内外相关论文,都可以找到本书的影子。
(我这有完整的书和源代码,不知道怎么上传,需要的留个信。)
Chap1 Notes ■Willem H. de Boer's geomipmapping algorithm ■Stefan Roettger's quadtree algorithm ■Mark Duchaineau's ROAM algorithm
Chap2 Notes Problems: ■ What heightmaps are, how to create them, and how to load them ■ How to render terrain using a brute force algorithm ■ How to generate fractal terrain using two algorithms: fault formation and midpoint displacement(the plasma fractal or the diamond-square algorithm)
1.A heightmap is a grayscale image in which each pixel represents a height value.(ex. the height ranges from 0–255, the number of shades of gray in a grayscale image. Dark colors represent a lower elevation, and lighter colors represent a higher elevation.)
Figure 2.1 A grid of vertices with non-defined height value
Figure 2.2 The 128 × 128 heightmap(used to create Figure 2.3).
2.The Brute Forceof the Matter(硬渲染)
Rendering terrain using a brute force algorithm is incredibly simple,and it provides the highest amount of detail possible. But, slow is a drawblack.
Figure 2.3 Brute force terrain image created by using the heightmap in Figure 2.2.
3.(1)Fault Formation One method of fractal terrain generation is called fault formation. Fault formation is the process of generating “faults” in terrain; for the Fractal Terrain Generation most part, it produces fairly smooth terrain.
Figure 2.4 The first step in the fault-formation algorithm.
Figure 2.5 A map generated with completely random height values.
Figure 2.6 Heightmaps that were generated using the fault-formation algorithm and the erosion filter. The top image has a filter value of 0.0f, the middle image has a filter value of 0.2f, and the bottom image has a filter value of 0.4f.
Note:Midpoint Displacement Fault formation works great for a nice little scene composed of some small hills, but something more chaotic than that, such as a mountain range.
(2)Midpoint Displacement(又名:the plasma fractal or the diamond-square algorithm)
Note:Midpoint Displacement works great for a chaotic scene. But, the algorithm can only generate square heightmaps, and the dimensions have to be a power of two.This is unlike the fault formation algorithm, in which you can specify any dimension that you want.
|