Terrain Formats
Heres some info on the formats you will be able to use for Blitzwerks Terrain
Heightmaps
Unlike BT2, these will be loaded by the terrain engine using the BT SetTerrainSource command
Supported formats will be: BMP, PNG, RAW and TRAW
TRAW is similar to RAW. It stands for Tiled RAW. The difference is that the points are stored as 256x256 tiles instead of a massive image. This allows faster loading of individual regions
The RAW format will be unsigned 16 bit integers
DBPro
There will also be support for loading from DBPro Images and DBPro Memblocks
BT SetTerrainSourceImage
BT SetTerrainSourceMemblock
Both will be seen as a regular heightmap. The memblock will have to store its data in RAW format
Terrains created from images will be read only but terrains made from memblocks will allow write back access. This means that when the RTTMS commands are used, they will be able to write back to the original memblock.
Multiple heightmaps
For large terrains, you can split your heightmap in to multiple heightmaps. Each region has its own heightmap. These can be dynamically streamed on the fly
All formats for regular heightmaps will be supported
To load a heightmap in this way, use the BT SetTerrainSource command:
BT SetTerrainSource "terrain/r-${X}-${Y}.png"
You may need to use BT SetTerrainBounds to make sure that it only loads regions that exist (not doing this won't cause a crash, it will just make BT create blank regions for the areas it couldnt load).
You can also put the above info in a terrain description file (explained below)
Terrain Description File
This is a simple XML formatted file for loading some configuration for a terrain. The configuration includes things like data source, bounds, scale, etc.
It looks a little bit like this:
<terrain>
<source>myheightmap.png</source>
<scale x="10.0" y="2.0" z="5.0" />
<bounds minx="0" miny="0" maxx="20" maxy="10" />
</terrain>
Note: for this example you wouldnt need to set the bounds of the terrain as they will default to the heightmap size.
HTTP
All the above can also come from a HTTP (web) server. Simply append http:// to the beginning and it will enable this feature.
BT SetTerrainSource "http://www.helloworld.com/myterrain.png"
The terrain will be downloaded and displayed! The same goes for streamed terrains and all above formats are supported.
HTTPS/FTP (possible future feature)
These won't be in the initial release, but they may appear in the future depending on demand.
BTs own file format (possible future feature)
I have ideas for a file format that might be quite handy. The format will store large amounts of height data as regions. The data will be indexed for fast access. The indexing will also allow the data to be added at any time. This also won't be in the initial release but I will be looking in to it.
Textures and Environment maps will be very similar. Let me know what you think of the above.
Another quick comment: I will be looking into AppGameKit support. BT will support DirectX 9 and OpenGL ES 2.0 for rendering. I haven't looked into this or spoken to Lee about weather this is acctually possible. But if it is possible, I'll add AppGameKit support. The AppGameKit support will likely be native only.