Skip to content
This repository has been archived by the owner on Jul 21, 2023. It is now read-only.

Mesh Baking Inaccuracies

knot126 edited this page Oct 15, 2022 · 6 revisions

Creating the .mesh file that goes alongside a segment is a bit of a chore. Doing so completely accurately is much harder. Doing that quickly in Python, a relatively slow language, is even harder.

The mesh baker in Blender Tools is not yet 100% accurate and is sometimes quite buggy. So, of course, this page documents known bugs and things that are purposefully implemented differently from Smash Hit.

Currently different

  • Ambient Occlusion: Ambient Occlusion is noticeably different from Smash Hit. While Smash Hit uses raycasts along a unit hemisphere, which take a longer time to compute and is harder to implement, Blender Tools uses collisions between boxes which is much faster to compute. While both produce similar results if you don't look too cloesly, the Blender Tools baker is differs in results from the Smash Hit baker.

Bugs

  • Tile rotations: Tile rotations are sometimes not correct, though they are supported now.
  • Clipping: For the edges of boxes, the method used to calculate texture coordinates when a tile does not completely fit is different, stretching the tile to fit instead of clipping the end. (See issue #13)
  • Hidden-surface culling is broken: Or rather is basically non-existent, so some segments will unexpectedly induce lag.
  • Tile size: The default implementation of tileSize is not clear (See issue #4), even in official segments. We use an implementation that is consistent with how other properties work, but might not work with some segments.

Historical differences

  • Tile size: Previously, tileSize with two non-integer arguments was supported since this was how MeshBake previously implemented the tileSize property. This was changed in 1.99.15, so segments using the old variant of tileSize broke.