《Focus On 3D Terrain Programming》是本好書。隨便翻了一些國內(nèi)外相關(guān)論文,都可以找到本書的影子。
(我這有完整的書和源代碼,不知道怎么上傳,需要的留個信。)
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.
|