Added basic bicubic SRTM void filling
[tecorrec.git] / NOTES
blob3c023c9e147beb6608245781f69eb04413215cad
1 Efficient rendering of terrain elevation model
3 start with some top level cells
5 Thursday 20th Nov
6   terrain elev (errors)
7     naive interpolation
8   evaltuation
9     views from google earth
10     qualitative
11   image data + info viewing / illumination
12     >1? - resampling
13   resampling together
15 fix list
16 [ ] seems - not important
17 [ ] when creating texture for region, don't up sample, select larger area
19 todo
20 [X] proper texturing
21     [X] selection of channels to display
22 [ ] more sensible sampling of elevation data
23     [ ] edges of box should interpolate
24     [X] inner vertices should be sensible
25 [ ] srtm
26     [X] basic linear interpolation
27     [X] spline interpolation
28     [X] gui to toggle {flat, unprocessed, corrected -> refined}
29     [ ] self shadow lines
30         [ ] different colours for ridges and valleys
31 [ ] interaction
32     [X] focus extended altitude
33     [X] mouse click -> lon lat transformation
34     [ ] terrain grab while dragging
35     [X] selection of region
36     [ ] region image preview (full resolution)
37 [ ] shadow detection
38     [ ] in region, detect shadow areas
39     [ ] border and highlight in both views
41 texturing
42   problems
43     textures are BIG
44       8401 x 7461 - 63MB  x6
45       4201 x 3731 - 16MB  x2
46       16801 x 14921 - 250MB x1
47       660MB
48   solution
49     downsample entire image to a reasonable size
50       1/8 x 1/8 = 1/64th size = ~10MB
51       or use the thumbnail in each image
52     when a portion of the image is desired in higher detail
53       reload portion of the image at full resolution
54       1/8 x 1/8 = 1/64th size of image
55     when a portion of the image is no longer being used
56       discard of it
58   class tcBigImage
59     width, height
60     thumbnail texture
61     rows, cols
62     cells[rows][cols]
63       texture
64       image data
66 renderCell
67   determine if we need to subdivide quality in this cell
68     if we're close, then we do
69     find distance from each corner 
70     use distance[i] < max(dist(corner[i], corner[j]))*factor
71   if we should subdivide
72     renderCell on each of the 4 subdivisions
73   determine the quality at this level
74     find distance to center
75     apply magic function to find detail level
76     render the cell in this detail level