Tile size for heightmap different than splat map

When generating output for Unity I ran into an issue where I need different texture sizes for heightmaps and splat maps. Heightmap values represent vertexes so tiles need to be power of 2 + 1 whereas splat maps represent faces and so should just be power of 2. There doesn’t seem to be a way to configure this so it works with tiled output. Unless I am missing something.

I have never used the WM → Unity workflow, so I’m only guessing here, but, in other 3D packages, the texture resolution does not need to be a specific number, as it will just get mapped to the total surface area anyway. So even if you still export the splat map at power of 2+1, it should still map correctly to the terrain.

That being said, if Unity is different than other 3D packages and you do, in fact, need to export the splat map at a different resolution, I would start with just exporting the splat map as the power of 2+1, then loading it into a new project file in WM with the File Input device, setting the new project to a straight power of 2, switch “Aspect Ratio” to “Free Scaling”, click the “Fit to Current Scene” button (Some of these steps may be unnecessary, they’re just there to make sure the resulting file still lines up perfectly with the terrain), then export again.

It doesn’t seem to be a problem in unity though the UI is expecting power of 2 so it doesn’t display correctly which I guess is just cosmetic. I can certainly find a work around for the issue. Probably automate it. But it seems like a simple thing to manage through configuration.

A bit late to the party, but here’s my take on this problem…

  1. A general rule of thumb when working with a game engine that expects a custom resolution for terrain (anything other than power of 2). Terrain “heightmap” needs custom resolution (for example ^2+1 in your case), but everything else concerning the material layers (like splatmaps, weightmaps), works with regular power of 2 (for example 4096x4096).

  2. Therefore you need to build your “terrain height data” using a “custom resolution” (through groups, or setting individual height output to a custom resolution), but keep your main project settings to use “power of two” default preset. This way you can build both at the same time. You can set a custom resolution on the individual devices by right clicking the device, and select “Set resolution/spatial type”. Or just create a group, and set the group to use a custom resolution. Then just add selective outputs to that group. This works for single tile monolithic terrains at least.

I’m not entirely sure how custom resolutions work for tiled builds, I did tiled builds in the past but custom resolutions weren’t a thing back in 2.2 days. We did multiple project builds for height and splatmaps when we needed tiled terrains back in UDK days.