Recently I've been trying to import into my game the mesh of a terrain that I have in Blender. I chose to use a model other than a heightmap because it's needed the maximum accuracy possible. Unfortunately the model, once highly detailed, has 263,169 verts and this exceeds the maximum limit that a mesh can hold into the engine I use (the limit is normally 65,536 verts).

As a solution I read that the engine can manage without problem models with more than limit if the model is "subgrouped" in meshs with at maximum 65,536 verts. There comes the problem for me. Until now I've been trying to do this in Blender, that is, to "subgroup" my mesh, but, sadly enough, entirely unsuccessfully. I've never used Blender before and, although all my research, I still don't have even the slightest idea about how to do such thing.

I found this link, but I don't know if this is exactly what I need... I also achieved to create "groups of vertices", but only through a very manual process.

This is the image of the terrain, if it helps:


My working vacation is near, then I'll have time to study Blender a lot more. I would be very grateful having some tips about where to start in the case of the described problem.

  • $\begingroup$ It's hard to say without knowing what you mean by "subgrouped". Do you want to split the mesh into separate 65,536 vert pieces? Or something more complicated? $\endgroup$ – gandalf3 Apr 25 '14 at 2:53
  • 1
    $\begingroup$ like user2699 answered, you can split your mesh in to pieces, but I would strongly suggest that you not try to put a 263,169 vert ground plane in to a game. See this question for more help blender.stackexchange.com/questions/2466 $\endgroup$ – David Apr 25 '14 at 16:10
  • $\begingroup$ This is what you want: kwnetzwelt.net/wordpress/archives/2431 The guy who did this made the scripts himself, so it would be a matter of asking him do share the scripts. $\endgroup$ – Marcos Saito Oct 18 '15 at 4:15

As it happens, I've been working with subgroups in terrain myself, probably for a different game and game engine than you are. Here's how I would proceed. Broadly speaking, my custom is to analyze the terrain object I am working with and to create subgroups from sets of vertices which share common properties. Examples of such properties include what the selected vertices represent. For example, all roads in a section might be assigned to the same subgroup of vertices. All watercourses (rivers, streams, &c by whatever name known) might be assigned to a different subgroup. All bodies of water, from puddles, through ponds and lakes to seas and oceans, might be assigned to a third. I also use density of vertices (when projected to the base plane) as criteria, so that a mountain might be assigned to its own subgroup (or sometimes more than one, if required by the density of vertices.

Just doing the basic math, you have 263,169 verts, and the maximum limit per section is 65,536 verts, you will need at least five subgroups (263/65 is greater than 4). Unless there are other considerations in the game engine that would force otherwise, I'd create groups which share common characteristics. For example, relatively smooth areas have few verts, and mountains have many. This image

enter image description here

shows the subgroups I would define in the case of your terrain object. I might be inclined to stretch the number of subgroups to 6 of more, if I need to separate out roads easily, and if the mountain in the upper right has too many vertices. In the case of the mountain, if I had to separate that into two subgroups, I'd cut into a bottom and a top subgroup, as indicated by the dashed line.

As top exactly how I would define the vertices would depend upon the details of the game engine. I would certainly define vertex groups to make it easy to select (or deselect) one or more of the subgroups at a time, but I suspect that the subgroups would need to be made into separate objects which are exported to the game object as part of a single scene. This will depend upon the details of implementation of the import process for the game engine.

Disclaimer: upon seeing your actual mesh I might make different choices for the subgroups I'd use.


Here are a few possible approaches. You can split the mesh up into several different meshes, which appears to be what you are asking for. It's rather tedious, but if you only need to do it once it will work.

  1. select the vertices you want to split
  2. press P
  3. click selection
  4. repeat until you have the mesh sufficiently subdivided

Alternatively, if the mesh doesn't have to be preserved 100%, you could reduce the vertex count of your mesh. The decimate modifier provides some great options for simplifying a mesh without losing much detail. This may lose some accuracy in the flat parts of the terrain, where it really isn't noticeable, while preserving detail in the steeper parts.

  • $\begingroup$ A lot of the detail from that model can be baked to this lower poly mesh. You could use Blender's Selected to Active feature to stencil the high-detail models normals onto the tex-coords of the lower poly model that user2699 mentions. To break up your model, I'd use numpad-7 to go into top view then make sure that Ortho view is enabled(if not then numpad-5) Next activate the box tool(B) to draw out the selections in a grid like fashion. Then do what is mentioned above to separate the pieces. $\endgroup$ – MarcClintDion Apr 25 '14 at 7:07
  • $\begingroup$ BTW, if you are breaking the high-poly into sections then you can use different textures for each component and this will give you much higher texture resolution for the overall model. Modern hardware can easily handle a hundred or more 1024x1024 textures and even more model draw calls so there is not much need anymore to overly cautious in these areas. Pixel shader instructions(GPU) and physics(CPU) are likely to be your bottlenecks. Almost a decade ago, ATI was recommending VBO sizes of about 1800, these days I'd say that's still good advice if you are targeting handheld devices. $\endgroup$ – MarcClintDion Apr 25 '14 at 7:15

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.