2
\$\begingroup\$

I've managed to reliably use SRTM Geotiff Raster Data with some modifications to create decent terrains in unreal, but there is a small problem with how I go about city-building when I'm not using the actual terrain from unreal in my modelling program, especially with roads and other wide-area constructs. If I were to convert my heightmap to a mesh object for use and manipulate in modelling programs instead of using the unreal terrain, what sort of difference in performance or stability would it make? What about load times?

Would it make a large impact with object meshes for building exteriors included in the object mesh for the terrain, thus reducing the amount of information needed to load both the buildings and terrain by a small amount?

EDIT: title, player should have been play-area

\$\endgroup\$
  • \$\begingroup\$ This seems like a case you can investigate yourself by building a test scene, and profiling it with terrain vs with meshes. Then you'll have an answer you can be confident applies to your use case, on your version of Unreal, on your target hardware — no hearsay from us Internet strangers required. Even a quick/crude test is usually enough to judge whether it's a big enough problem to be worth investigating any further \$\endgroup\$ – DMGregory Jun 22 '18 at 10:02
  • \$\begingroup\$ @DMGregory sure, but that won't tell me about the practical differences. For example, I'm not familiar with Unreal enough to know if I might be missing out on features associated with terrain. I'll probably go look for assistance on the Unreal Forums since they will be better suited, but I thought I would try here for an unbiased answer first. \$\endgroup\$ – Jones Crimson Jun 22 '18 at 23:15
  • \$\begingroup\$ If you need a feature you don't have, you'll notice that it blocks you from doing what you need. If you're missing a feature you don't need, does it matter? ;) \$\endgroup\$ – DMGregory Jun 22 '18 at 23:16
  • \$\begingroup\$ @DMGregory Yes, it makes a difference, because we should always strive for perfection. \$\endgroup\$ – Jones Crimson Jun 22 '18 at 23:17
1
\$\begingroup\$

You need to profile and see, but in general you'd want to use dedicated terrain rendering techniques for rendering terrain. Not a bunch of static meshes imported from model files.

There are optimizations that can be made for terrain rendering that take advantage of the constraints of the terrain: it is height-map based, and it's on a regular grid, et cetera. Terrain rendering typically uses a subsection of this overall grid as the unit of optimization for falling back to lower-LOD versions, and the geometry for the terrain can be produced on-demand on the GPU as a consequence of the same.

Static meshes are themselves a unit of optimization, and usually aren't as easy to LOD efficiently and automatically in a shader (in the general case). So while in theory you could implement some of these optimizations yourself, you'd be implementing them yourself. They come "for free" with systems that are dedicated to terrain rendering.

The cost of a mesh is fixed, and generally large for something high-resolution enough to be a reasonable-sized terrain chunk. In contrast, the cost of the mesh data for terrain is effectively 0 (it can be generated, since it's based on a height map). The texture cost for the heightmap isn't too onerous; even though it's probably larger dimension-wise, it's probably smaller channel-wise. So it's very possible that the dedicated terrain approach will both load faster and use less memory, depending on how you subdivide your world, your resolution choices, et cetera.

You will find similar tradeoffs in the authoring tools. Unreal's terrain tools allow you to do complex tasks like placing spline-based features over the terrain that are snapped to the terrain (or deform the terrain around it). These splines can have tailored optimizations to processing and rendering just like the terrain can. Static meshes don't, and so you may find yourself with a tedious content-re-authoring pipeline to make any kind of changes to these kinds of features because you need to "bake" them into the meshes themselves.

Every game is different, and only you can do the analysis on your game to determine how the pros and cons balance out. But if I were to bet, I'd bet you'll have better results by using Unreal's terrain tools, both in terms of performance and in terms of ergonomics in the editor.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.