File: TODO

package info (click to toggle)
mercator 0.3.0-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 2,008 kB
  • sloc: sh: 10,433; cpp: 4,482; makefile: 115
file content (87 lines) | stat: -rw-r--r-- 3,108 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Why are HEIGHT, ROUGHNESS and FALLOFF referenced outside Basepoint?

Consider if Segment::m_xRef could become a float and multiply by m_res on
initialisation, as it is always used this way.

In Terrain::getHeightAndNormal, the calculation for values passed to
Segment::get() needs to be checked. Its seems to result in strange values
being passed.

Kick James repeatedly in the head for using .count() and [] to check then
modify maps.

Think carefully about whether Surface needs a writable reference to Segment.

Add checks for making sure that mods get applied to segments as the segments
are created.

* Implement the constructors which take a Shader::Paramters.

* How about a class for handling building sections of arbitrary size.
  Uses quasi random techniques to define the pattern of building elements,
  with hopefully an efficient way to render.

* SHould probably make segment etc. less involved in memory, and provide
  a way for the memory to be special

* Look at using allocators to control memory allocation for buffers.

* Make SnowShader, High, with thinner snow on steep areas, and more snow on the
  north,

* Make GrassShader, banded, with thinner grass on steep areas,

* Mercator should handle weather, vegetation, maybe even houses

* Delete all the leaked surfaces and shaders.

* Devise some way so that FillShader surfaces don't need a shaded surface, as
  they can just use a constant color.

* Add threshold shaders. Add an underwater shader which colors the sea bed
  according to its depth.

* Try and do something smarter with Segment texCoords and lineIndeces, as they
  are the same for every segment, but recalculated every time.

* Re-work code to use 2D arrays for 2D data - AJR

* a sea level? multiple sea levels?

* include Munins texture blending model

* a cache that dynamically creates Segments when they are requested and
  deallocates based on a rule such as LRU

* allow for non fractal tiles (hand drawn ones inserted into the landscape) ??

* variable detail? (32, 64 and 128 side tiles on the same terrain?) unsure how
  this fits in with the RNG scheme, so this might be difficult. a tile of side
  2^n must butt up against tile of size 2^n-1, 2^n or 2^n+1.  ie 32 cant
  interact with a 128

* transparent patches? allowing caves, or tunnels?

DONE TODOs
==========
* allow local terrain deformation:
   -subtraction eg of a sphere to make a crater - DONE dpm
   -addition eg of a cylindroid to make a mesa - DONE dpm
   -set all heights within a polygon to one value (level ground on which to build) - DONE dpm

* move some of the stage terrain code into mercator
   - normal/height calcs - DONE dpm
   - axisbox intersect - DONE dpm
   - ray intersect - DONE dpm
   
* The semantics of Terrain::get() were not as I expected. I wanted an
  interpolated value. Should another function be added to do what I
  want, plus get the normal too, as it seems to be free? - DONE

* Need to fix normals along edge and corner point. Currently they create
  visible seems because they are not the same on adjacent segments. -DONE

* variable roughness. DONE dpm