Modifying the mesh for your own projects

About modifying the mesh for your own projects

Lately, more and more developers start to ask me how / if they can change one of the mesh tiles I provide. I wanted to share a few thoughts on this page on this, because this topic is usually not as simple as many might think. Please read trough this before you start editing anything and avoid possible unexpected issues / implications.

Basic considerations

  1. The most important point is: Never ever release any modified mesh without asking for permission! Usually I always grant that permission to freeware projects and there have even bee a few request from commercial developers. Nevertheless … ALWAYS ASK!
  2. Mesh editing is not trivial, and if you have little technical knowledge (or are not willing to work with some complex software tools), then you should usually not think about it any longer. The reason is, that originally the X-Plane mesh scenery system was non developed for easy editing, but for great performance and end result in the simulator (thus its structure is very close to how OpenGL understands geometry structures, but its not necessarily developer friendly). Me and Laminar are using special tools (closely related to the official MeshTool) which generates these meshes from different raw data sources, but it does not meant for modifying the end result.
  3. I can – and will – not help you in the process of mesh editing (because I never do it myself … I always generate it from “raw” data …. see above). But there are quite a few user created tools already, which can help you in this process (though, none of them – at least to my knowledge – is super easy or straight forward to use and all of them demand some level of knowledge about the X-Plane mesh system to achieve the best results). I can only give you some pointers, but you should research this topic yourself in depth. You can google (or searchat X-Plane.org) for tools like MeshRemexe, VertexTool, RasterTool etc. etc. (if anyone would like his tool be mentioned here, let me know).

Implications of releasing a modified mesh

Because the current (as of X-Plane 10) mesh scenery system does NOT allow any kind of localised / regional patching / changing of the mesh, but only allows you to release it as whole, 1×1 degree DSF tiles, there are quite a few implications which you should be aware of before releasing your work. It might also be very important, to very clearly educate the potential users of your work, as they might face some unexpected issues in the end (and could end up either at your or my email address with complaints).

  1. Always remember, that mesh scenery very strictly relies on its prioritization in the scenery_packs.ini! The mesh at the highest layer wins, and only (and exclusively – no mixing with lower layers!) this one will be visible! If the users messes up his scenery_packs.ini, or uses many different mesh scenery products (remember: most photoscenery tiles are meshes too, so they play a role here) for the same location, then he might not see what he expects (or what the developer would expect him to see)!
  2. What happens, if more then one developer wants to modify the SAME mesh tile at different locations (because two different airports / cities / whatever might be covered by the same 1×1 degree mesh tile)? If the two developers do not cooperate, and every one of them releases his own edit, then only one of them will be visible to the end user (the one which he happened to configure at the higher layer in scenery_packs.ini … see point 1)! The edits of the other developer would be invisible! Here the only solution is, that the two developers cooperate and somehow manage to merge their edits into one DSF tile and both of the distribute that DSF tile to their users.
  3. You need to very clearly tell the user, which original DSF Mesh scenery you did derive your changes from. Otherwise he might end up with a strange mixture which he does not like. Example: the user has installed HD Mesh Scenery v3, but you have edited a tile originating from the default mesh, and supply this with your airport. In this case, the user would still have HD Mesh Scenery v3 everywhere BUT NOT for the 1×1 degree area you supplied with your airport. Another example: the user has installed UHD Mesh Scenery v1, but you have edited a tile originating from HD Mesh Scenery v3, and supply his one. Again … user has UHD Mesh Scenery v1 everywhere BUT sees HD Mesh Scenery v3 at the 1×1 degree area around your airport. This issues might be not a big one for some, but might annoy quite some users …. they might even end up complaining to me or you about how “bad” the mesh is around airport X while the rest is “good”. Of course, this might be simply seen as a trade-off to get your nice local mesh edits … but at least everybody should know about this because of the next point:
  4. If your edited mesh is not in sync with what the user has installed around it, you can get nasty discontinuities along the edges of your edited mesh tile. For example, the users installed might have part of a lake which is already in his mesh, but maybe not in the version you edited …. in this case, half of the lake will be missing. Or – this is quite normal – the triangles of the adjacent meshes are not aligned (if they are / were not from the same source / version) anymore an thus – along the edge – the user can see trough holes in the triangle mesh.
  5. What happens, if new version of a HD / UHD Mesh Scenery area is released? In this case, you – the editor of the mesh – might be out of luck because of course, your edits are lost to the new mesh version. Here you see clearly, that the DSF tiles are not meant as a file format to nicely store edits, but are simply meant to be a good format for the end result (the format best suited to X-Plane 10’s needs). There are only three possibilities. Either you quickly modify the new mesh version (and remember who else has edits in the same region … remember point 2!) and distribute it (great for end users). If you do not do so: In this case either the users overwrites / throws out your edited mesh (because he maybe wants the new version everywhere) and looses out on your optimizations / improvements. Or the end user installs the new mesh AND keeps your old mesh tile for his airport (this might happen automatically anyways, if he has the airport at a higher prio in scenery_packs.ini than he installs his meshes) … this way having an older version for this 1×1 degree area (and faces issues from point 4).
  6. Of course, any users using photoscenery (from what ever source) relying on an edited mesh from you will see visually very different 1×1 degree area around your airport (it will look like HD or UHD mesh or what every you choose to start with when you edited it). This again, might limit the usefulness of your edit.

As you see, because of some limitations of X-Plane 10 (but which are also advantages from technical and visual point of view … at least up to know) there is no perfect way to supply mesh changes. You and your users should be (made) aware of it, so they can make an educated choice when installing your scenery!