IMPORTANT: for the merge_sceneries script to work properly, the source scenery and the destination scenery must share the same min LOD (i suggest 17). The reason is that the min LOD determines the size of the tiles, and the size of the tiles from the source scenery must be the same as the one from the destination scenery.
1) Presentation:
This blender addon is designed to provide tools to help optimizing city sceneries, retrieved via the Google Earth Decoder Tool, made by u/Jonahex111.
I updated the tool to make it work again: Retrieve the last dll here: https://flightsim.to/file/39900/gogole-earth-decoder-update
This addon is coded in Python, and sources are available here: https://github.com/Thalixte/Google-Earth-Decoder-Optimization-Tools.
2) Prerequisites:
Blender 2.83 or superior
Optional: to reduce the number of texture files, you can get the Lily texture Packer. Download version 1.1.x if you use Blender 2.83. If you use Blender 3.x, you can use the last version. Reducing the number of texture files reduce the loading time of the scenery, and can reduce stuttering related to texture streaming inside the sim
Optional: once your package has been successfully built, you can further reduce its size by using the "Optimize the built package by compressing the texture files" entry of the addon menu. To do so, you have to download the Compressonator tool from GPUOpen.
No need to install nodejs anymore, no need to install MsfsToolkit Blender addon. If you installed MsfsToolkit addon in Blender, check that it is compatible with your Blender version, especially the export to Gltf 2.0 feature.
This addon do not request Google Earth API anymore to retrieve the tile coords.
3) Installation or update:
Download the Google-Earth-Decoder-optimisation-tools.zip archive. In Blender, open the preferences window: Edit > Preferences..., then select the Add-ons tab. Click on the Install... button, then browse to the archive you have just downloaded. Once installed, enable the addon.
If everything worked correctly, you should see a new menu in Blender, called "Google Earth Decoder Optimization Tools".
Important! If you update from a previous version, make sure to restart blender before using the tools.
4) Usage:
Open the "Google Earth Decoder Optimization Tools" menu in Blender.
Choose an action from the menu entries:
- Initialize a new Msfs scenery project:
This script creates the MSFS structure of a scenery project, if it does not already exist.
Once created, you can copy the result of the Google Earth decoder Output folder into the PackageSources folder of the newly created project.
You can also create the structure, then in the Google Earth Decoder tool, point the Output folder to the PackageSources folder of the project.
The structure is the same as the one provided in the SimpleScenery project of the MSFS SDK samples. - Optimize an existing Msfs scenery project:
This script optimizes an existing Google Earth Decoder scenery project (textures, Lods, CTD fix).
If you installed and enabled the Lily Texture Packer Blender addon, and you ticked the "Bake textures enabled" checkbox in the tool menu (section PROJECT), the textures of the project are merged per tile lods, which significantly reduce the number of the project files.
It fixes the bounding box of each tile in order for them to fit the MSFS lod management system.
This script also adds Asobo extension tags in order to manage collisions, road traffic, and correct lightning. - Clean the unused files of the msfs project:
This script cleans the unused files of the MSFS scenery project.
Once you removed some tiles of a project, use this script to clean the gltf, bin and texture files associated to those tiles. - Merge an existing MSFS scenery project into another one:
This script merges the tiles of a MSFS scenery project into another MSFS scenery project.
In the MERGE section, select the project that you want to merge into the project indicated in the PROJECT section. - Update the position of the MSFS scenery tiles:
This script calculates the position of the MSFS scenery tiles.
If you are not satisfied with the resulting positions, you can setup a latitude correction and/or a longitude correction in the TILE section. - Update LOD min size values for each tile of the project:
This script updates the LOD min size values for each tile of the project.
In the LODS section, you can setup each minsize value of each LOD level.
According to the MSFS SDK documentation, the selection process is as follows:
starting from LoD 0, going down, the first LoD with a minSize smaller than the model's current size on screen will be selected for display.
The selection will also take into account forced and disabled LoDs as configured by the model options. - Fix lightning issues on tiles at dawn or dusk:
This script fixes the lightning issues on tiles at dawn or dusk.
To do so, it adds a specific Asobo extension tag ("ASOBO_material_fake_terrain") in the gltf files corresponding to the tiles Lod levels. - Optimize the built package by compressing the texture files:
This script optimizes the built package of a MSFS scenery project by compressing the DDS texture files.
For the script to process correctly, the package must have been successfully built prior to executing the script. - Add a collider for each tile of the project:
This is an extra optimization of the scenery, wich is totally optional. When the scenery is optimized using the "Optimize an existing Msfs scenery project" script, the collision detection tags and the road tags are included in all the lods, which can produce CPU overload (even if my tests indicate that this is not really significant, in my config with a relatively old Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz). This script removes the collision and road tags for all the LODs, and creates a specific transparent collider that embeds those tags for each tile of the project. Each collider object is created from the less detailed lod tile to decrease the CPU overload. - Remove the colliders for each tile of the project:
This script removes all the colliders objects that have been created with the "Add a collider for each tile of the project" script. It also reverts back the road and collision tags for all the lods.
If you want to donate, you will always be welcome to help me continue with more projects and update the existing ones https://paypal.me/Thalixte.
I know that this is probably too vague description of my issues, but maybe someone very experienced can at least give me a hint what might be going wrong in the Blender phase?
From looking at the output from Earth2MSFS Decoder, everything seems fine. Correct textures, bin files, gtlf files (although the gtlf files won't open in any 3d object viewer i tried).
My Decoder was updated with the two dlls. So, i'm completely lost.
I miss X-Plane11 scenery adding simplicity. Using Ortho4XP had a bit more involved process getting the orthotextures, but then it was basically finished. This is entirely different animal.
8 days ago
PcbZorg
thank you for your great GEDOT tool. Version 1.13 works stable and without problems for me. I sent you a small donation for it because I think it's great that you offer the tool for free. But I have a Python: Traceback Error with all versions from version 2.00 onwards. There is already a bug report from 2 other users on github. It affects the merge function, the create the terraform and exclusioon polygons for the scenery function, the functions cleanup 3d data from google earth tiles, the generate height data based on google earth tiles function, all functions in the geocode tools folder and most of the functions in the other tools folder. I am using Blender 3.51.
Since it seems to work for others, I assume a problem with the installation or configuration. Would you have some troubleshooting advice?
Thanks a lot
23 days ago
16 days ago
Thalixte
LowFlyer
I have a problem with flashing tiles using DX12. As I fly over the scenery some tiles quickly cycle through all the lods. I don't see this with your scenery. Do you know what is causing this and how to fix it?
Thanks.
25 days ago
littlebit
1 months ago
1 months ago
Ati108
Ati108
Quick question, I have created PG (didn't use blender) imported and built the package in MSFS. I now want to apply the lighting fix. Do I need rebuild the package again please?
2 months ago
AppleUK
Cheers,
George
2 months ago
2 months ago
Thalixte
slammed
8 months ago
8 months ago
Thalixte
RonnyViana42
No matter what I do the optimize project console stops at "Optimize the Tiles" and never does anything. It's just stuck there. Everything else was green and working up to that point. I could hear my computer fan kick on when it tired to start but no progress bar appears under the "Optimize the Tiles" section and it never completes.... this is Blender 3.5 but I also had the same result with 3.1
10 months ago
Hello
What is your computer ?
Have you tried to check in the taskmanager if additional blender tasks are running ?
10 months ago
Thalixte
BTSims
Hi, amazing tools thank you, however, I am able to do everything just fine but after optimizing the existing project the tiles separate and scatter all over the local map. any advice?
11 months ago
Hi. Can you show me a screenshot, please ?
11 months ago
Thalixte
Linkingsky
Heey nice you make this but decoder is not longer working do you have a stable version link for the decoder?
11 months ago
I updated it recently to make it work again: https://flightsim.to/file/39900/gogole-earth-decoder-update
11 months ago
Thalixte
helifors
Great tool! I have a problem using add colider. the created colider xml doesn't contain the tile glft. just a guid
12 months ago
Hello. Normally, the tile colider should use its own guid. However, in order to preserve memory resources, it shares the same bin file than the least detailed lod of the tile.
12 months ago
Thalixte
Richlaw
Hi, is this still relevant and working as intended? I am using Blender 3.4.1. The issue I have is that in Optimise scenery option, it goes through all steps but in the "Prepare for MSFS" step, it actually just skips straight to green 100% and doesn't do anything. The tile lods are still in folders instead of flat as GLTF etc. within the model-lib folder. The packager from SDK etc. expects them to be flat direct in model-lib and hence the packaging fails. I have bake textures enabled and latest lily packager addon for blender also enabled.
1 years ago
I don't know for Blender v3.4.1. For the moment, i use Blender v2.2
1 years ago
Thalixte
mrjadez
Excellent job! But I have a question, is it still working or is it broken after SU11?
I managed to install everything.. Blender 2.83.9... GEDOT 1.1.3... Lily Texture Packer1.1.3 ..Compressonator 4.1.5083.. and the Google Earth Decoder tool with its Google Earth Decoder tool Update. Following the steps... I manage to create and Optimize a project without errors, but when I go to Build the package... Several errors happen. So I tried not optimizing and building the package inside MSFS 2020.. error again, but the warning is not finding the folder.. I renamed it and built the package. Then I tried to Optimize and not build the package through the tool.. but inside the game.. and several errors from other folders not found.. finally.. Did the SU11 update break the tool? Thanks!
1 years ago
Yes, it is still working with SU11. I have myself some errors when first building some projects. But when i launch the build a second time, it works.
Those errors seem to be related to the way the building process create temporary files (i am not on my PC actually, but i guess it is in the _tempPackage folder or something like that).
1 years ago
Thalixte
D1nhoBR
hello thalixe as you remove trees maybe for the next version, you could make some kind of script to flatten the roads and remove cars. or for example some kind of script to correct the shape of the buildings and put them all straight, maybe for future versions?
1 years ago
daavids19
I have this error trying to compile
Error: Python: Traceback (most recent call last):
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\UI\operator\operator.py", line 220, in execute
optimize_scenery(context.scene.settings)
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\scripts\optimize_scenery_script.py", line 38, in optimize_scenery
msfs_project = MsfsProject(script_settings.projects_path, script_settings.project_name, script_settings.definition_file, script_settings.author_name, script_settings.sources_path)
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\msfs_project\project.py", line 117, in __init__
self.__initialize(sources_path, init_structure, fast_init)
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\msfs_project\project.py", line 270, in __initialize
self.__init_components()
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\msfs_project\project.py", line 337, in __init_components
self.__retrieve_objects()
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\msfs_project\project.py", line 361, in __retrieve_objects
self.__retrieve_scene_objects()
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\msfs_project\project.py", line 365, in __retrieve_scene_objects
pbar = ProgressBar(list(Path(self.model_lib_folder).rglob(XML_FILE_PATTERN)), title="Retrieve project infos")
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\utils\progress_bar.py", line 52, in __init__
self.display_title()
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\utils\progress_bar.py", line 61, in display_title
print_title(self.title)
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\utils\console.py", line 98, in print_title
isolated_print(CEND + TITLE_FILL_CHAR*TITLE_LENGTH)
File "C:\Users\john-\AppData\Roaming\Blender Foundation\Blender\2.93\scripts\addons\Google-Earth-Decoder-optimisation-tools\utils\isolated_print.py", line 25, in isolated_print
print(*args, **kwargs)
PermissionError: [WinError 31] A device attached to the system is not functioning
location: <unknown location>:-1
Any help please
1 years ago
What OS do you use ?
1 years ago
Thalixte
Johnisburt