L3DT development blog
Large 3D terrain generator

Mesh optimiser update

Hi All,

A valid complaint about the tiled mesh exporter in L3DT v11.11 was that it didn't optimise the tile edges, which meant that a huge number of triangles in a given tile were devoted to the edges. This was originally done so that neighbouring tiles would match up exactly, without having to do the tricky bit of producing two consistent, seamless optimisations of both sides of the edge between neighbouring tiles.

Anyway, long story short, I've modified the plugin so that it can optimise tile edges under certain conditions. Specifically, the latest version of the plugin will optimise tile edges if and only if the output tile size is a multiple of the ROAM tessellator patch size (64). This means that if you use the usual power-of-two tile sizes (512, 1024, 2048, etc.) your mesh tiles will be fully optimised, but if you use unusual tile sizes (e.g. 513), your mesh tile edges will not be optimised. Also, the optimisation doesn't apply if you're exporting a selected area; only the whole map.

Here's a screenshot of four tiles in Blender. Note that all tiles are optimised uniformly, and there's no high triangle-density areas at the edges.

Optimised triangles at the tile edges of a 2×2 seamlessly tiled mesh, in Blender.

For comparison, here is the output of the previous version of the mesh optimiser (from 2011). Note how the internal tile edges have very high triangle density.

Brute-force triangles at the tile edges of a 2×2 seamlessly tiled mesh, in Blender.

The updated plugin is included with L3DT Professional v13.10 developmental build 0, which is on the downloads page now.

For reference, the user guide for the mesh exporter is on-line here. If you'd like to comment on this update, please use this forum thread.

Best regards, Aaron.

 
l3dt/2013/oct/06.txt · Last modified: 2017/08/31 04:54 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Share Alike 3.0 Unported
L3DT Development Blog RSS Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki