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.
3 months ago
3 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
5 months ago
Hello
What is your computer ?
Have you tried to check in the taskmanager if additional blender tasks are running ?
5 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?
6 months ago
Hi. Can you show me a screenshot, please ?
6 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?
7 months ago
I updated it recently to make it work again: https://flightsim.to/file/39900/gogole-earth-decoder-update
7 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
7 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.
7 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.
8 months ago
I don't know for Blender v3.4.1. For the moment, i use Blender v2.2
8 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!
11 months 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).
11 months 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?
12 months 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
I m trying to optimize existent project but I m confused as what to do next ? I got script correctly applied message but where is the optimized package ?
Should I open msfs and re build the package?
1 years ago
Did you initialized the scenery project using the initialization script ?
Also, when a scenery has been built, the package folder relies in <Msfs project scenery folder >/packages
1 years ago
Thalixte
AsRealAsItGets
Hey guys.. how can i further edit the tiles in blender? my apologies.. i'm very new to this. Thanks in advance to anyone who can help. By the way, thank you very much as well for this..
1 years ago
Hello,
The steps to make a scenery is as follows:
- install MSFS Googge Earth Decoder tools
- install my blender addon to Blender (3.x or more: https://flightsim.to/file/26245/google-earth-decoder-optimization-tools-gedot-blender-addon)
- open the GEDOT menu, open the "Initialize a new MSFS project scenery" window, set the MSFS projects folder, and the name of your project, then click on the red button
- downaload yoyr scenery with the MSGS Google Earth Decoder tool, selecting the packagesources folder of your project as output folder, and a LOD Range from 17 to 19 (or 20, depending on the level of detail and the size of the scenery you want)
- with my tools, open the "Optimize an existing scenery project", and check the backup checkbox on the backup section, select the MSFS building tool in the AUTOMATIC BUILD section (it is named fspackagetool.exe), tick the "Build package enabled" checkbox"
- once it's finished, check that it works correctly in the sim, and add terraforming polygons if needed. Also, create an exclusion building polygon over your photogrammetry tiles to avoid conflict with autogen buildings
- once you think your scenery is OK, use the "Add a collider for each til of the project script (optional, but helps to reduce CPU load)"
- at last, launch the "Optimize the built package by compresing the texture files to reduce the package size"
You're done
1 years ago
Thalixte
Cli4D
Hello Thalixte. I am rather new to building photgrammetry and after downloading a few Google Earth sceneries and getting them in the sim, I found a tutorial on youtube by Signor OJO about your "Google Earth Decoder Optimazation Tool. I upgraded my Blender version to the latest version and installed your addon. I created an empty project using your tool, inserted the scenery of the tutorial (Benevento) in the PackageSources folder and started the "Optimize an existing MSFS scenery project". What ever I try, the MSFS build by the fspackagetool.exe ends in a big number of red error messages. Essentially the message is the same for all tiles: "Can not find model file: 'C:\My Msfs projects\Tut4\_PackageInt\_tempFiles\ojo-tut4\tut4modellib\30427252524040516_LOD00.gltf' And the same for LOD01 and LOD02. I checked, and indeed the file in the errormessage is missing if following the path in _PackageInt. I found a gltf file with the same name in ..\\ojo-tut4\tut4modellib\30427252524040516_LOD00\30427252524040516_LOD00.gltf. Could you help me to come around this problem. After two evenings trying hard to find a solution I have run out of ideas.
Thanks in advance,
roggeberg23
1 years ago
The _PackageInt is the folder used by MSFS to build the final package. Maybe try to delete the related file, and see if it helps. Are you able to open one of those gltf files with a 3d viewer ?
1 years ago
Thalixte
Deleted Account
You have a recommended LOD for airport type areas? Just started using your tool. Do you know where I can find information on sunken buildings and how to fix?
1 years ago
For airport area, i am afraid my tools would not be usefull, as even with the max LOD settings, the airport model will not look good...
1 years ago
Thalixte
CajunLTE