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 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.
3 days ago
littlebit
21 days ago
20 days 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?
23 days ago
AppleUK
Cheers,
George
1 months ago
24 days ago
Thalixte
slammed
7 months ago
7 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
9 months ago
Hello
What is your computer ?
Have you tried to check in the taskmanager if additional blender tasks are running ?
9 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?
10 months ago
Hi. Can you show me a screenshot, please ?
10 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?
10 months ago
I updated it recently to make it work again: https://flightsim.to/file/39900/gogole-earth-decoder-update
10 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
11 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.
11 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.
12 months ago
I don't know for Blender v3.4.1. For the moment, i use Blender v2.2
12 months 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
Hello Thalixte, Bravo and thank you for your GEDOT tool which greatly simplifies the construction of photogrammetry scenes. The scripts are ok but I'm stuck on a problem that I can't solve. Vegetation is either acceptable (natural green) or horrible (light washed out green) coloring depending on the areas captured with Earth2MSFS. This is especially unpleasant when a building is near or in the middle of a forest. However, in this 2nd case, when I open the *. gltf with a 3D viewer, the green of the vegetation is an acceptable coloration. Have you encountered this difficulty? Does it come from Google Earth's capture methods depending on the region? Is it possible to rework the *.gltf by removing the vegetation zones from Google and replacing them with the SDK with an MSFS vegetation? with Blender? with a 3d viewer? The easiest for a non-computer scientist? In fact, perhaps the ideal would be that the capture of an area is done with a polygon and not a rectangle as Earth2MSFS does. But, I don't know if this is possible. If you or anyone reading this has any thoughts on this, I'd be very grateful. Thank you in advance.
1 years ago
Hello. Thks for your support. First of all, the colors depend on the GoogleEarth capture, so i can be different from one town to another, and even inside a town, depending on the moment the capture has been taken.
The best you can do is to edit the colorimmetry with a specific tool (Gimp, IrfanView, Lightroom, ...). You can also edit the colorimmetry directly inside the Earth2MSFS tool. I suggest you to use the OjO's settings (take a look a the video here: https://www.youtube.com/watch?v=6fgTxEh_x84).
As of the ugly trees, i will publish soon (before Christmas, if everything is OK) a new version of my tools, that will cleanup the scenery, removing the forests, the woods, the parks and the water from the GE tiles. You wil also have the ability to only keep photogrammetry buildings if you want. So, stay tuned :-)
1 years ago
Thalixte
philbrou
When I try to merge, the red merge button is grayed out and nothing happens. I selected the initial project under the project tab and the final destination under the merge tab. Am I doing something wrong?
Also, I'm having issues with optimizing the tiles. I run the script and it finishes successfully, but when I open it in flight sim, the tiles show up as "unknown". They work prior to using the optimization script.
1 years ago
Yes. It is the inverse. The initial project is the destination project. In the MERGE section, you specify the project which contains the tiles you want to merge into the project specified in the PROJECT section.
1 years ago
Thalixte
ashleygamergirl