TerraGear roadmap: Difference between revisions

Jump to navigation Jump to search
no edit summary
(Created page with "{{Template:Non-stable|version=3.x|progress=10}} World Scenery 2.0 has been released. After 2 1/2 years of development, the tool-chain is considered stable. Although WS2.0 w...")
 
No edit summary
Line 14: Line 14:


In the terragear toolchain, there are 3 main directories: Data, Work, and Output.  The Work directory structure will be overhauled to handle arbitrary tile sizes.  The output directory needs to match what simgear .SPT files expect.
In the terragear toolchain, there are 3 main directories: Data, Work, and Output.  The Work directory structure will be overhauled to handle arbitrary tile sizes.  The output directory needs to match what simgear .SPT files expect.
After conversing with i4dnf, some extra ideas have come up to fix some of the long standing scenery issues.  As we move to a new scenery structure, that may not be 100% backward compatible, we should be able to add some additional capabilities to the .btg file format.  NOTE: the .btg file format is extensible, so this may not require major changes and 'could' be backward compatible.  Experimentation needed:
The first idea is separating the runway markings from the pavement.  We have this somewhat working now, but the pavement shader is completely clueless about the marking shader.  and bump mapping / dirtying effects cannot be normalized between the line and pavement - leading to visual artifacts.
The marking shader needs to know the underlying pavement origin.  To do this, the .BTG file needs to support multiple texture coordinates.  1 primary set to look up the line texture in the texture atlas, and another set relative to the origin of the pavement.  i4dnf would also like to add dirty / tire marks to the runways.  To do this, he needs to know where in the runway polygon, the thresholds are.  In openGL, a vertex attribute would be passed to the shader to relay the information.  The btg format should be expanded to allow vertex indices (of a triagle) to have attributes.
The second idea is to use multiple tcs to allow landclass shaders to know where in a tile they are located.  If we have a per tile raster image with the landclasses encoded, then the borders between landclasses can be smoothed / modified by the shaders.
It would be nice to have all landclass images and this single per tile image to all have the same resolution, so we could use a texture array.  This allows us to draw an entire tile (other than linear road / rail / stream ) in one openGL draw call.


The below table is my first attempt at a work item breakdown.  I imagine we'll need to add / remove entries as work progresses.
The below table is my first attempt at a work item breakdown.  I imagine we'll need to add / remove entries as work progresses.
Line 19: Line 28:
{| class="wikitable"
{| class="wikitable"
! Tool !! Work item !! Progress  
! Tool !! Work item !! Progress  
|-
| simgear || btg file multiple tc support || {{pending}}
|-
| simgear || btg file vertex attribute support || {{pending}}
|-
|-
| genapts || separate .btg for line data || {{Progressbar|90}}
| genapts || separate .btg for line data || {{Progressbar|90}}
|-
|-
| genapts || runway texture atlas || {{pending}}
| genapts || runway texture atlas || {{pending}}
|-
| genapts || linear and runway marking triangle vertices have texture coordinates of underlying pavements || {{pending}}
|-
| genapts || pass runway touchdown point as vertex attribute || {{pending}}
|-
|-
|-genapts || support no bezier - low level detail for pavements || {{pending}}
|-genapts || support no bezier - low level detail for pavements || {{pending}}
Line 37: Line 54:
|-
|-
| tgconstruct || add tile skirts to hide LOD gaps || {{pending}}
| tgconstruct || add tile skirts to hide LOD gaps || {{pending}}
|-
| tgconstruct || generate per tile raster image of landclass data || {{pending}}
|-
| tgconstruct || generate landclass triangles with geodetic texture coordinates and per tile origin coordinates || {{pending}}
|-
|-
| tgconstruct || arbitrary tile sizes / directory structure || {{pending}}
| tgconstruct || arbitrary tile sizes / directory structure || {{pending}}
129

edits

Navigation menu