I am creating a scene for the game engine and setting up the ground now. I have different levels of details and thus want to keep my pieces as different objects. I duplicated it several times and added a Displace modifier set to Object Coordinates. The coordinates point to a plane object. I got the seamless result (as expected), but when the ground reaches where LOD switches level, I get this problem:

enter image description here

I guess this comes from the mesh being used by LOD, which is just invoked from its initial position. It also doesn't get the coordinates from the object using it. Do you have a way around ?

  • 2
    $\begingroup$ I'm not familier with BGE LOD details but I believe the problem is modifiers are applied when you start the game engine. So you need to save all the meshes in inactive layers in their correct locations. Another approach is to manipulate vertex height using a script in-game. Its not easy but I think Ive seen examples of it and it would scale up much better than storing huge amount of meshes with LODs. $\endgroup$
    – kheetor
    May 23, 2016 at 7:13
  • $\begingroup$ The thing is that LOD replaces my many land patches with ONE object that keeps the same position (x 0 y 0 in another layer). An object situated at x 2 y 2 will use this mesh so as any other patch will do when switching LOD level, no matter where it is situated. This screws up the displacement coordinates, so I am looking for a way to tell the software that the mesh being used for LOD has the same coordinate that the piece of land it replaces...this should fix it. $\endgroup$
    – Yvain
    May 23, 2016 at 11:30
  • $\begingroup$ Making your own LOD system is easy and I would do it rather than trying to stab the integrated LOD system $\endgroup$
    – kheetor
    May 25, 2016 at 10:25
  • $\begingroup$ I can reproduce it doing one of the following : displace the lower LOD in edit mode, or, having a different midlevel values in the displace modifier. $\endgroup$
    – lemon
    May 25, 2016 at 13:16
  • $\begingroup$ I haven't worked with LOD too, but looking at the image, and the modifier stack, it looks like the problem is the modifier isn't applied to the lower res mesh, so it's only affecting the high res mesh that it's applied to. $\endgroup$
    – Georges D
    May 25, 2016 at 14:53

2 Answers 2


The simple answer is that modifiers aren't fully supported by the Game Engine.

While modifiers will typically be rendered by the Game Engine, they won't be updated by the engine. So what's happening is the displace modifier is being altered by the Game Engine at the point where it needs to change LOD, but because modifiers don't update correctly, it's just reverting to the flat version without displacement.

This answer has some additional information: Make modifiers update in the game engine

You're not out of luck, though. There are other ways to implement LOD in the BGE.

  • $\begingroup$ Could you expand on the "other ways" eluded to by your last sentence? $\endgroup$
    – Dan
    May 26, 2016 at 21:35
  • $\begingroup$ That's a little beyond the scope of this site, but searching YouTube for "Blender LOD" gives some good results. The techniques I've seen involve mesh swapping based on camera distance, rather than modifiers. I suspect you could use an identical mesh for each LOD, but just use a different modifier on each one. I don't know that the modifiers would behave well in that situation, but if they did it'd be a good way to non-destructively duplicate and decimate your meshes. $\endgroup$
    – Matt
    May 26, 2016 at 21:40
  • $\begingroup$ This one in particular looks like a good solution: youtube.com/watch?v=zp9mA1gK8sQ $\endgroup$
    – Matt
    May 26, 2016 at 21:42

I am not sure that I am understanding your question correctly, so please tell me if I'm not. I believe that you want to make an incline with the selected mesh, but instead of an incline, you currently have a sharp drop off.

Why bother with LOD? Why not just go into Edit Mode?

Way 1

If you go select the last cube and go into edit mode, you can select the two faces nearest to the 3 other meshes on the side and bring them down to the right level. To do this, I keyed G, then Z, then -1. LeftMouseButton to confirm.

enter image description here

Way 2

If you want to get fancier, you can select the entire mesh in Edit Mode by keying A once or twice until everything's selected. Then you can key W and select Subdivide. Do this twice.

Select the 32 faces that now make up the previously selected two sides of the mesh. Key O to turn on Proportional editing. Key G, then scroll to make the white circle bigger (do not confirm). Finish up with Z, then -1. Now use the LeftMouseButton to confirm.

Tab to reenter Object Mode. Whatever values you were using in your Subdivision surface object modifier for View: and Render:, subtract two. This method takes longer, but it gives the slope a gradient.

The original vid of this setup was too long, so I split it into four parts. Part one:

enter image description here

Part two:

enter image description here

Part three:

enter image description here

Part four:

enter image description here

Final Notes

Here is the final result after Way 1:

enter image description here

Way 2:

enter image description here

Here is a .blend file with both ways in it:

  • 1
    $\begingroup$ hum my problem comes only when the lower LOD mesh replaces the original square. I'm using an Object displacement on my land pieces and also on the lesser LOD mesh, but the latest doesn't come up proprerly. it must be the same as the higher level. I guess i could just copy and decimate every piece of land to its own location to use the duplicate as the lesser LOD level, but as what's been said it would give me a lot of models. I'll like a proper solution that allows ONE SINGLE lesser LOD mesh to be replacing every patches and displaced properly. I'll try dive into scripting if I need to. $\endgroup$
    – Yvain
    May 25, 2016 at 22:54

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.