godot_heightmap_plugin
godot_heightmap_plugin copied to clipboard
Flat terrain on Android and Web (GLES3)
Hi,
This issue is similar to Zylann/godot_heightmap_plugin#96, except it's happening on GLES3 on Android and HTML5 export.
The terrain on those targets is flat. When exporting to Linux, the terrain is not flat.
Linux:
Android:
The project is pretty simple, just a randomly generated HTerrain, a light, and a camera. The Shader type is Classic4Lite.
This is using GLES3, which is why I created a separate issue from Zylann/godot_heightmap_plugin#96. My phone supports OpenGL ES 3.2 and OpenGL ES GLSL ES 3.20 for the shading language. Renderer is Adreno 630. EGL Version is 1.4 Android META-EGL.
Thanks!
PS if this does't work, I found a workaround which is to generate the mesh. I'll try generating the mesh at varying levels of details, then splitting each mesh up into sections, and then implementing LOD using the GeometryInstance properties of the MeshInstance as mentioned in the Godot documentation. I may try to automate that if it ends up working well.
Adreno GPUs (like most mobile GPUs) have broken GLES3 drivers, see https://github.com/godotengine/godot/issues/12816.
Likewise, WebGL 2.0 is often broken; we consider it to be deprecated in Godot's context.
PS if this does't work, I found a workaround which is to generate the mesh. I'll try generating the mesh at varying levels of details, then splitting each mesh up into sections, and then implementing LOD using the GeometryInstance properties of the MeshInstance as mentioned in the Godot documentation. I may try to automate that if it ends up working well.
If this is the last resort it might make sense to have a terrain baker in the plugin. It's really not ideal and some features might get missing, but at least it allows authoring medium-sized terrain in the editor and later bake it so the result can run on low-end/broken GPUs
I have similar issue with my Moto G6 Play device (Adreno 505 @ 450 MHz). Using my own project or the Zylann/godot_hterrain_demo, I get completely flat visible terrain. The collision detection terrain however, is working.
Unfortunately, this project is not really usable on Android in its current state, which is a shame as it is very effective when working.