Ignore:
Timestamp:
Dec 7, 2010, 11:16:25 AM (13 years ago)
Author:
Torben Dannhauer
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • experimental/TerrainTest/imageconversion.txt

    r172 r173  
     1Theoretischer approach zu Terrain Modifikation.
    12
    23
    3 
    4 Vorgehen zum modifizieren von Geländekacheln:
    5 a) Implementieren einer eigen TerrainTechnique und Modifikation zur Laufzeit    -> Flexibel aber evtl langsam
     4Grundsätzliche Optionen zum Modifizieren von Geländekacheln:
     5a) Implementieren einer eigenen TerrainTechnique und Modifikation zur Laufzeit  -> Flexibel aber evtl langsam
    66b) Dauerhaftes Patchen der Orginaldatenbank                                     -> Keine Verzögerung, Patching nicht reversibel, unflexibel
    77c) Erzeugen von sub-datenbanken mit gepatchen bereichen, Verzweigen auf die
     
    1111        so dass der gesamte Compilevorgang noch im Pagerthread stattfindet.     -> Implementierung aufwändig, flexibel, langsam aber keine Framedrops
    1212
    13 Vorgehen bei Nutzung einer eigenen GeometryTechnique:
     13
     14Vorgehen a): Bei Nutzung einer eigenen GeometryTechnique:
    1415a) TilesLoadedCallback: Muss bei VPB Datenbanken < 2.9.10 verwendet werden, da hier die DB die geometryTechnique enthält und daher terrain->terrainTechniquePrototype ignoriert.
    15 b) CustonGeometryTechniquePrototype: Kann bei VPB Datenbanken >= 2.9.10 verwendet werden, da hier in die DB keine geometryTechnique enthältund daher terrain->terrainTEchniquePrototype verwendet.
     16b) CustonGeometryTechniquePrototype: Kann bei VPB Datenbanken >= 2.9.10 verwendet werden, da hier in die DB keine geometryTechnique enthältund daher terrain->terrainTechniquePrototype verwendet.
     17
     18Vorgehen b): Bei dauerhaften Patchen:
     19a) VPb's --patch Funktion nutzen. Die Paches müssen eine höhere Auflösung als das Orginal haben. ESRI .arc Files erzeugen mittels Algorithmus und dann patchen.
     20
     21Vorgehen c): Bei Subdatenbanken: TBD
     22Vorgehen d): Bei Pseudo-Loader: TBD
     23
     24
    1625
    1726
     
    2029b) init() überladen und in init die modifikationen durchführen, bevor generateGeometry() aufgerufen wird.
    2130
    22 Vorgehen für das ermitteln der korrekten Heightwerte:
     31Vorgehen für das Ermitteln der korrekten Heightwerte:
    23321. checken ob Tile betroffen ( xmin < x < xmax && ymin < y < ymax ) oder ( latmin < lat < latmax && lonmin < lon < lonmax )
    24332. Wenn Betroffen, je vertex reihe/spalte checken ob sie im bereich liegt
     
    2635        I) Bei Verwendung eines Patch-Bildes: Auslesen des images je spalte, interpolieren der Werte auf Tile-Bereich und Vertexanzahl und addieren/ersetzen der ursprünglichen Werte.
    2736        II) Bei Verwendung einer Mathematischen funktion: Berechnen des Additions-/Zielwertes je vertex und addieren/ersetzen des ursprünglichen Wertes.
    28                 Eingabewert in Algorithmus: Lat/Lon der 4 Tile-Ecken. Algorithmus kan für lat lon in der Tile linear interpolieren zu den Ecken.
     37                - Eingabewert in Algorithmus: Lat/Lon der 4 Tile-Ecken. Algorithmus kann für lat lon der Vertices in der Tile linear interpolieren.
    2938
    3039
    31 
    32 
    33 grundsätzliche Optionen für Löcher:
    34 a) generateGeometry umbauen, so dass es keine Oberfläche und keinen Skirt an den Stellen bildet.
    35 b) einene weiteren layer einbauen der pro vertex entscheided ob der Vertex gerendert wird oder nicht (todo: switchlayer ansehen, evtl ist dass ja schon sowas)
    36 c) alpha in der textur aktuivieren für stellen die Löcher haben sollen und blenden lassen ( todo: wird zFightfing vermieden wenn einer der partner transparent ist?)
     40Grundsätzliche Optionen für Löcher:
     41a) generateGeometry umbauen, so dass es keine Oberfläche und keinen Skirt an spezifizierten Stellen bildet.
     42        -> Definition eines shapes notwendig, da beim Ausschneiten ein simples Rechteck wie bei Heightmodifikation nciht ausreicht. Per Vertex: Inside polygon nötig.
     43        --> Aufwändig
     44b) einene weiteren "map" layer einbauen der pro Vertex entscheidet ob der Vertex gerendert wird oder nicht.
     45        -> Todo: switchlayer ansehen, evtl ist dass ja schon sowas
     46c) Alpha in der Textur aktivieren für stellen die Löcher haben sollen und blenden lassen.
     47        -> Todo: wird zFightfing vermieden wenn einer der partner transparent ist? vermutlich nicht.)
     48d) Shader nutzen, um im Fragmentshader die transparenten Elemente des Terrains zu verwerfen mittels discard keyword.
     49        -> todo: Wie kann man Terrain zu allen anderen Elementen unterscheiden?
Note: See TracChangeset for help on using the changeset viewer.