Discussion Tile making

misha.physics

Well-known member
Joined
Dec 22, 2021
Messages
397
Reaction score
513
Points
108
Location
Lviv
Preferred Pronouns
he/him
Hi all :),

recently I've started learning tiles in Orbiter. (Let's consider Orbiter 2016 for definiteness.) This thread became my starting point, especially lessons by @jacquesmomo.

In order not to clog that thread (as well as this and that) I would like to continue immersion into this topic in current thread to keep it together.

So, I'll try studying this here, namely asking questions, posting my observations, etc.

Feel free to participate in it.

Sorry for my English :)
 

N_Molson

Addon Developer
Addon Developer
Donator
Joined
Mar 5, 2010
Messages
9,284
Reaction score
3,251
Points
203
Location
Toulouse
If it can help you, I made some successful experiments there :


For me, Jarmonik's tools are a must-have.
 

jacquesmomo

Addon Developer
Addon Developer
Joined
Jun 14, 2008
Messages
613
Reaction score
453
Points
78
Location
FRANCE
Website
francophone.dansteph.com
@N_Molson :
I just discovered (and look at) how you made awesome landscapes with Terrain Tookit.
I haven't tested it yet, I have to find the time to learn (and understand) how it works!!!! (y)

I have the jarmonik's Terrain ToolKit 26-01-20. Is it the same version you have ?

@misha.physics :
same as N_Molson : if I can help you.... ;)
 

LordCroussette

Quebec City's Resident Base Builder
Addon Developer
Donator
Joined
Jan 26, 2013
Messages
227
Reaction score
739
Points
108
Location
Quebec City
Preferred Pronouns
He/Him
Ah, yes, tile making. Something I love to do yet never finishes. x)

I started plenty of bases yet only finished a few (which I uploaded to this website in the download section). All of these were done following Jacquesmomo's guide on Dan's forum. Once you have a grasp of it, it is quite simple to make tiles!

Here, some bases I have started but have yet to finish.

Quebec City, Canada. (tiles and 50% of the buildings done):
image.png

Bordeaux, France. (Tiles up to L17)
image.png


Le Castellet, France. (Tiles done, need mesh buildings).
image.png

Prypiat (Chernobyl), Ukraine. (Up to L16, need to finish up to L19 and add mesh buildings).
image.png

Kingston, Jamaica. (Tiles up to L15 for city, L17 for airport. Abandonned project)
image.png

New York City, USA. (Tiles up to L15. KJFK at L16. Need moar tiles and mesh buildings)
image.png

St-John, Canada. (Tiles done, need a few corrections. Need mesh buildings)
image.png

Finally, my latest project: the entire Reunion Island, France! (All tiles done excluding L18 and L19 for one town. Need to finish tiles and add mesh buildings).
image.png
 

misha.physics

Well-known member
Joined
Dec 22, 2021
Messages
397
Reaction score
513
Points
108
Location
Lviv
Preferred Pronouns
he/him
Wow, that's impressive, thanks for showing this.
The last one seems to be not flat, namely it has relief. Or is it an illusion?
 

LordCroussette

Quebec City's Resident Base Builder
Addon Developer
Donator
Joined
Jan 26, 2013
Messages
227
Reaction score
739
Points
108
Location
Quebec City
Preferred Pronouns
He/Him
Wow, that's impressive, thanks for showing this.
The last one seems to be not flat, namely it has relief. Or is it an illusion?
They all have relief. It's the default relief that come with the HD tiles. It's just more apparent than the other bases because of the terrain. Reunion has volcanos on it. One of them is still active!
 

nbcfrosty

Active member
Joined
Jun 16, 2023
Messages
173
Reaction score
202
Points
43
Location
US
I too am inspired and am learning to make tiles using the terrain toolkit. There is this specular rectangle appearing. Does anyone know what this is about and how to remove it?

1690162876279.png

Seems the problem is fixed in OpenOrbiter (same tiles):
1690163135090.png

I have attached the tiles.
 

Attachments

  • tiles.zip
    1.5 MB · Views: 4

N_Molson

Addon Developer
Addon Developer
Donator
Joined
Mar 5, 2010
Messages
9,284
Reaction score
3,251
Points
203
Location
Toulouse
Jarmonik's Terrain Tools are there : https://www.orbiter-forum.com/threads/terrain-toolkit.37665/

The trick is that you need a separate install, because they work only with an older version of D3D9 client. But once the tiles are "backed", they are of course compatible with any 2016 version.

@LordCroussette : iconic places like NYC are a very good idea. There is so much potential. You don't need to worry too much with detailed buidings. At first setting all the runways in working order would already be awesome, and give DG pilots a place where to land.
 

nbcfrosty

Active member
Joined
Jun 16, 2023
Messages
173
Reaction score
202
Points
43
Location
US
The installation was very smooth. I setup a new Orbiter 2016 install, then I installed the d3d9client from here:

Finally extracted this:

Activated the module, went in video settings and set the gui mode to windowed. After doing this, going in simulation, pressing ctrl + f4 and choosing terrain toolkit brings it up. Zooming out allows me to see and select tiled, granularity dependent on what seems like the available elevation data. All you have to do is pick a tile, import image, and select your image. Then bake to create the set of tiles. Once image is imported, you can play around with the balls on each corner to adjust the tile.

It's all very good and intuitive. Unfortunately running into the weird specular tile issue I alluded to above. It's very distracting.
 

misha.physics

Well-known member
Joined
Dec 22, 2021
Messages
397
Reaction score
513
Points
108
Location
Lviv
Preferred Pronouns
he/him
They all have relief. It's the default relief that come with the HD tiles. It's just more apparent than the other bases because of the terrain.
You mean this default relief is caused by surface elevation which can be enabled in Orbiter options, so you didn't make/tune your special relief for Reunion, isn't it
There is this specular rectangle appearing. Does anyone know what this is about and how to remove it?
I could check it out, can you provide a screenshot with camera settings where the rectangle is visible. Because I'm not sure that's the same area (see below).
 

Attachments

  • t.png
    t.png
    30.5 KB · Views: 13
  • open.png
    open.png
    834.1 KB · Views: 13
  • 2016.png
    2016.png
    811.5 KB · Views: 14

misha.physics

Well-known member
Joined
Dec 22, 2021
Messages
397
Reaction score
513
Points
108
Location
Lviv
Preferred Pronouns
he/him
I made only one tile (140 MB) of level 14, but high resolution (16384x16384, so in fact we obtain 512x512 for level 19 since 512*32=16384). This tile recovers area about 15x20 km. That's just an experiment, of course it's very flickering and that's not optimal to use such high resolution on high altitude).

I think if we could solve the flickering problem we can use higher surface quality for small areas. Also, it requires performance testing. I have some amateur ideas about flickering, but it needs more professional approach :)

Besides, we need to make smooth transitions (blurring) between textures of different resolutions, but this is just a technical matter (seems to be not easy). Also, the color tuning is very important.

Or maybe there are some other ideas (namely without squares tiles) to build surface graphics in future Orbiter development.

I'll try to make bigger surface area and use various tile levels.
 

Attachments

  • 10.png
    10.png
    1.2 MB · Views: 7
  • 9(alt=7000m).png
    9(alt=7000m).png
    1,010.4 KB · Views: 7
  • 8(alt=5720m).png
    8(alt=5720m).png
    997.6 KB · Views: 7
  • 7(alt=7730m).png
    7(alt=7730m).png
    1.1 MB · Views: 8
  • 6(alt=2780m).png
    6(alt=2780m).png
    1.1 MB · Views: 7
  • 5.png
    5.png
    996 KB · Views: 6
  • 4.png
    4.png
    861.4 KB · Views: 5
  • 3.png
    3.png
    449.9 KB · Views: 5
  • 2.png
    2.png
    703.9 KB · Views: 5
  • 1.png
    1.png
    769.9 KB · Views: 6

LordCroussette

Quebec City's Resident Base Builder
Addon Developer
Donator
Joined
Jan 26, 2013
Messages
227
Reaction score
739
Points
108
Location
Quebec City
Preferred Pronouns
He/Him
I made only one tile (140 MB) of level 14, but high resolution (16384x16384, so in fact we obtain 512x512 for level 19 since 512*32=16384). This tile recovers area about 15x20 km. That's just an experiment, of course it's very flickering and that's not optimal to use such high resolution on high altitude).

I think if we could solve the flickering problem we can use higher surface quality for small areas. Also, it requires performance testing. I have some amateur ideas about flickering, but it needs more professional approach :)

Besides, we need to make smooth transitions (blurring) between textures of different resolutions, but this is just a technical matter (seems to be not easy). Also, the color tuning is very important.

Or maybe there are some other ideas (namely without squares tiles) to build surface graphics in future Orbiter development.

I'll try to make bigger surface area and use various tile levels.
How do you get your tiles? Personally I do it the old fashionned way, aka taking screenshots of the region on Google Earth and then putting it all together as one image before dividing in tiles. But, for large regions, it can take sooo much time! :eek:

I would love to learn a new technique for the sake of optimization :D
 

misha.physics

Well-known member
Joined
Dec 22, 2021
Messages
397
Reaction score
513
Points
108
Location
Lviv
Preferred Pronouns
he/him
How do you get your tiles?
I'm using SAS.Планета (English and other languages are present). This version is newer: v.220707. Also, you need to add maps, here's instructions.

There are many maps and you can choose you want. I select a rectangular area (by the coordinates of the corners), and then save a big picture (you can choose detail depth).

Here's a screenshot of area I used for making one big tile above:

Без імені.png

I'm thinking of writing a short "manual" for all this, but first I'm trying to automate the process of cutting, renaming files and their saving in the right folders. I have some ideas, hope to try it soon.
 

N_Molson

Addon Developer
Addon Developer
Donator
Joined
Mar 5, 2010
Messages
9,284
Reaction score
3,251
Points
203
Location
Toulouse
I made only one tile (140 MB) of level 14, but high resolution (16384x16384, so in fact we obtain 512x512 for level 19 since 512*32=16384). This tile recovers area about 15x20 km. That's just an experiment, of course it's very flickering and that's not optimal to use such high resolution on high altitude).

I think if we could solve the flickering problem we can use higher surface quality for small areas. Also, it requires performance testing. I have some amateur ideas about flickering, but it needs more professional approach :)

Besides, we need to make smooth transitions (blurring) between textures of different resolutions, but this is just a technical matter (seems to be not easy). Also, the color tuning is very important.

Or maybe there are some other ideas (namely without squares tiles) to build surface graphics in future Orbiter development.

I'll try to make bigger surface area and use various tile levels.

Be sure to enable mip maps in the D3D9 settings panels, and check your 3D card handles it. It helps.

Also check you have trilinear filtering enabled and of course max anisotropy.
 

misha.physics

Well-known member
Joined
Dec 22, 2021
Messages
397
Reaction score
513
Points
108
Location
Lviv
Preferred Pronouns
he/him
Be sure to enable mip maps in the D3D9 settings panels
I see two options of mipmaps in D3D9 settings. Which one do you mean?:

d.png

Could you briefly explain what they affect/how they work, and how to notice the difference?
check your 3D card handles it
How can I do it?
Also check you have trilinear filtering enabled and of course max anisotropy.
I thought anisotropic filtering replaces trilinear filtering. I use 16x of anisotropic filtering in D3D9 (see above). Or should I do that in my NVIDIA Control Panel (for Orbiter application)?
 

N_Molson

Addon Developer
Addon Developer
Donator
Joined
Mar 5, 2010
Messages
9,284
Reaction score
3,251
Points
203
Location
Toulouse
I see two options of mipmaps in D3D9 settings. Which one do you mean?:

View attachment 34036

Could you briefly explain what they affect/how they work, and how to notice the difference?

How can I do it?

I thought anisotropic filtering replaces trilinear filtering. I use 16x of anisotropic filtering in D3D9 (see above). Or should I do that in my NVIDIA Control Panel (for Orbiter application)?

Sadly I'm not a GPU manufacturer, I only have knowledge based on 20 years of gaming experience. There's of course a proper mathematical explanation but that's way above my head 😅 See the links to Wiki below. Also don't forget the goal is visual improvement, so what you can do is to compare screenshots from an identical point of view (like before/after).

Yes, you have to choose between anisotropic filtering and trilinear. I'd stick to trilinear, but again comparing screenshots is the way to go, what's really matter is the output you like the best !

In general, what works best is to disable those options "in-game" (in our case, in the Launchpad settings), and enable them (override) in the NVIDIA Control Panel. They are graphic cards manufacturers after all, they are supposed to know their stuff ! :)

Best article I could find :

The way you have them listed (Bilinear -> Trilinear -> Anisotropic) is the proper order from least to best image quality, and in increasing order with respect to processing power.

In the simplest terms, moving from bilinear to trilinear will avoid issues where texture size changes (ie, while walking towards a wall, the texture won't seem to abruptly change at certain intervals when you approach it). Moving from trilinear to anisotropic will make textures on objects that stretch away from you look sharper than they would be otherwise.

A bit more detailed explanation follows, but note that this is a very technical topic, and a full treatment is probably beyond the scope of Gaming.StackExchange.
The core problem is that artists working on 3D textures create a set of 2D pictures of fixed sizes. These pictures are then "painted" onto 3D objects. However, once that texture is applied to a 3D object, it can be rotated and viewed from many different angles and distances. Texture filtering attempts to map the discrete steps of the art available to the continuous domain of how you can view it.

For instance, an artist might create a 64x64 image to be used as the texture for a simple object. However, when you view that object in the game world, you get really close to it, and it fills your entire screen, which might be several thousand pixels wide. Now the engine has to take a simple, low-res 2D picture and make it much, much larger without sacrificing quality.

Bilinear and Trilinear are "isotropic" filtering techniques for mipmapping, in contrast to "anisotropic." Wikipedia has a decent article on this subject, but I'll attempt to summarize.

Essentially, as you zoom in on a texture (ie, by getting the player/camera close to it), the pixels of the texture need to be mapped onto multiple pixels of the output image. Bilinear mapping is one way of computing or interpolating the output pixel color value based on the size of the output polygon, and the pixels from the input texture.

Trilinear mapping takes into account the fact that textures often have several sizes depending on the distance you are from the textured object. Our artist from earlier might make several different texture sizes, so that the objects that are close to the camera can have higher-resolution textures applied to them, thus making them look better. In addition to interpolating the pixels of the current texture size, trilinear filtering is capable of interpolating between different texture sizes as well.​

enter image description here

A "mipmap" or multi-resolution copy of an image, see this Wikipedia article

Anisotropic filtering takes into account that due to the camera orientation, the output polygon may not be rectangular. This filter method does some additional math to compute the effect the camera angle has on the dimensions of the output texture.

Again, Wikipedia has a good example of this as part of the anisotropic filtering article. You can also experience the difference yourself by playing with the graphics settings in Google Earth, which is where the screenshot was taken from.​
 
Last edited:

misha.physics

Well-known member
Joined
Dec 22, 2021
Messages
397
Reaction score
513
Points
108
Location
Lviv
Preferred Pronouns
he/him
Maybe someone can help with a script (in Windows cmd (.bat) or Linux terminal (.sh)) to optimize tile making.

So, let's we have 64 files named as "image-0.dds", "image-1.dds", "image-2.dds", ... , "image-63.dds" and which are located in a current directory.

We enter three values:

1) number of folders="8";
2) first folder number="009440";
3) first file (*.dds) number="015040",

and the script creates 8 folders: "009440", "009441", ... , "009471", then moves the first 8 *.dds files (from "image-0.dds" to "image-7.dds") into the first folder "009440", and renames these 8 files to be "015040.dds", "015041.dds", ... , "015071.dds". After it takes the next 8 *.dds files, moves them into folder "009441" and renames to the same names "015040.dds", "015041.dds", ... , "015071.dds". And so on for the last folder "009471" and the last 8 *.dds files (from "image-56.dds" to "image-63.dds").

EDITED: Solved this for bash (Linux). Solutions for Windows are very welcome.
EDITED: Solved for Windows, too.
 
Last edited:

N_Molson

Addon Developer
Addon Developer
Donator
Joined
Mar 5, 2010
Messages
9,284
Reaction score
3,251
Points
203
Location
Toulouse
Maybe someone can help with a script (in Windows cmd (.bat) or Linux terminal (.sh)) to optimize tile making.

So, let's we have 64 files named as "image-0.dds", "image-1.dds", "image-2.dds", ... , "image-63.dds" and which are located in a current directory.

We enter three values:

1) number of folders="8";
2) first folder number="009440";
3) first file (*.dds) number="015040",

and the script creates 8 folders: "009440", "009441", ... , "009471", then moves the first 8 *.dds files (from "image-0.dds" to "image-7.dds") into the first folder "009440", and renames these 8 files to be "015040.dds", "015041.dds", ... , "015071.dds". After it takes the next 8 *.dds files, moves them into folder "009441" and renames to the same names "015040.dds", "015041.dds", ... , "015071.dds". And so on for the last folder "009471" and the last 8 *.dds files (from "image-56.dds" to "image-63.dds").

EDITED: Solved this for bash (Linux). Solutions for Windows are very welcome.
EDITED: Solved for Windows, too.

If I had to do for Windows it I'd try PowerShell...
 

misha.physics

Well-known member
Joined
Dec 22, 2021
Messages
397
Reaction score
513
Points
108
Location
Lviv
Preferred Pronouns
he/him
If I had to do for Windows it I'd try PowerShell...
For picture editing I'm using ImageMagick (running in cmd). It resizes, crops, and formats an input image (map) file. Then I change values of parameters in some scripts (*.bat for cmd or *.sh for bash) and obtain *.dds files in the right folders. Names of all *.dds files and folders are created automatically. These aren't universal scripts in the full sence, and can/should be improved.

I'm going to share these since that can be useful for someone, although it probably requires some explanation.

It was easier to do for Linux which I'm more familiar with.
 
Top