You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Click on the image below to see examples of various command line arguments. You can try these examples yourself with this heightmap: [gale.png](https://www.michaelfogleman.com/static/hmm/guide/gale.png).
75
+
Click on the image below to see examples of various command line arguments. You
76
+
can try these examples yourself with this heightmap: [gale.png](https://www.michaelfogleman.com/static/hmm/guide/gale.png).
The required `-z` parameter defines the distance between a fully black pixel and a fully white pixel in the vertical Z axis, with units equal to one pixel width or height. For example, if each pixel in the heightmap represented a 1x1 meter square area, and the vertical range of the heightmap was 100 meters, then `-z 100` should be used.
82
+
The required `-z` parameter defines the distance between a fully black pixel
83
+
and a fully white pixel in the vertical Z axis, with units equal to one pixel
84
+
width or height. For example, if each pixel in the heightmap represented a 1x1
85
+
meter square area, and the vertical range of the heightmap was 100 meters, then
86
+
`-z 100` should be used.
82
87
83
88
### Z Exaggeration
84
89
85
-
The `-x` parameter is simply an extra multiplier on top of the provided Z scale. It is provided as a convenience so you don't have to do multiplication in your head just to exaggerate by, e.g. 2x, since Z scales are often derived from real world data and can have strange values like 142.2378.
90
+
The `-x` parameter is simply an extra multiplier on top of the provided Z
91
+
scale. It is provided as a convenience so you don't have to do multiplication
92
+
in your head just to exaggerate by, e.g. 2x, since Z scales are often derived
93
+
from real world data and can have strange values like 142.2378.
86
94
87
95
### Max Error
88
96
89
-
The `-e` parameter defines the maximum allowed error in the output mesh, as a percentage of the total mesh height. For example, if `-e 0.01` is used, then no pixel will have an error of more than 1% of the distance between a fully black pixel and a fully white pixel. This means that for an 8-bit input image, an error of `e = 1 / 256 ~= 0.0039` will ensure that no pixel has an error greater than one full grayscale unit. (It may still be desireable to use a lower value like `0.5 / 256`.)
97
+
The `-e` parameter defines the maximum allowed error in the output mesh, as a
98
+
percentage of the total mesh height. For example, if `-e 0.01` is used, then no
99
+
pixel will have an error of more than 1% of the distance between a fully black
100
+
pixel and a fully white pixel. This means that for an 8-bit input image, an
101
+
error of `e = 1 / 256 ~= 0.0039` will ensure that no pixel has an error greater
102
+
than one full grayscale unit. (It may still be desireable to use a lower value
103
+
like `0.5 / 256`.)
90
104
91
105
### Base Height
92
106
93
-
When the `-b` option is used to create a solid mesh, it defines the height of the base before the lowest part of the heightmesh appears, as a percentage of the heightmap's height. For example, if `-z 100 -b 0.5` were used, then the final mesh would be about 150 units tall (if a fully white pixel exists in the input).
107
+
When the `-b` option is used to create a solid mesh, it defines the height of
108
+
the base before the lowest part of the heightmesh appears, as a percentage of
109
+
the heightmap's height. For example, if `-z 100 -b 0.5` were used, then the
110
+
final mesh would be about 150 units tall (if a fully white pixel exists in the
111
+
input).
94
112
95
113
### Border
96
114
97
-
A border can be added to the mesh with the `--border-size` and `--border-height` flags. The heightmap will be padded by `border-size` pixels before triangulating. The (pre-scaled) Z value of the border can be set with `border-height` which defaults to 1.
115
+
A border can be added to the mesh with the `--border-size` and
116
+
`--border-height` flags. The heightmap will be padded by `border-size` pixels
117
+
before triangulating. The (pre-scaled) Z value of the border can be set with
118
+
`border-height` which defaults to 1.
98
119
99
120
### Filters
100
121
101
-
A Gaussian blur can be applied with the `--blur` flag. This is particularly useful for noisy images.
122
+
A Gaussian blur can be applied with the `--blur` flag. This is particularly
123
+
useful for noisy images.
102
124
103
-
The heightmap can be inverted with the `--invert` flag. This is useful for [lithophanes](https://en.wikipedia.org/wiki/Lithophane).
125
+
The heightmap can be inverted with the `--invert` flag. This is useful for
A full resolution [normal map](https://en.wikipedia.org/wiki/Normal_mapping) can be generated with the `--normal-map` argument. This will save a normal map as an RGB PNG to the specified path. This is useful for rendering higher resolution bumps and details while using a lower resolution triangle mesh.
130
+
A full resolution [normal map](https://en.wikipedia.org/wiki/Normal_mapping)
131
+
can be generated with the `--normal-map` argument. This will save a normal map
132
+
as an RGB PNG to the specified path. This is useful for rendering higher
133
+
resolution bumps and details while using a lower resolution triangle mesh.
108
134
109
135
### Performance
110
136
111
-
Performance depends a lot on the amount of detail in the heightmap, but here are some figures for an example heightmap of a [40x40 kilometer area centered on Mount Everest](https://i.imgur.com/1i9djJ0.jpg). Various heightmap resolutions and permitted max errors are shown. Times computed on a 2018 13" MacBook Pro (2.7 GHz Intel Core i7).
137
+
Performance depends a lot on the amount of detail in the heightmap, but here
138
+
are some figures for an example heightmap of a [40x40 kilometer area centered
139
+
on Mount Everest](https://i.imgur.com/1i9djJ0.jpg). Various heightmap
140
+
resolutions and permitted max errors are shown. Times computed on a 2018 13"
0 commit comments