Mobile & Web Support
This page documents the specific setups needed for non-desktop platforms. All platforms are experimental at best, and need Godot 4.2 or later.
Table of Contents
Android
As of Terrain3D 0.9.1 and Godot 4.2, Android is reported to work.
Use textures that Godot imports (converts) such as PNG or TGA, not DDS.
Enable
Project Settings/Rendering/Textures/VRAM Compression/Import ETC2 ASTC
.
The release builds include binaries for arm32 and arm64.
There is a texture artifact affecting some systems using the demo DDS textures. This may be alleviated by using PNGs as noted above, but isn’t confirmed.
Further reading:
IOS
As of Terrain3D 0.9.1 and Godot 4.2, iOS is reported to work with the following setup:
Use textures that Godot imports (converts) such as PNG or TGA, not DDS.
Enable
Project Settings/Rendering/Textures/VRAM Compression/Import ETC2 ASTC
.Set
Project Settings/Application/Config/Icon
tores://icon.svg
.The Terrain3D release includes iOS builds, however they aren’t signed and may not work.
If needed, build the iOS library and make sure the binaries are placed where identified in
terrain.gdextension
:
scons platform=ios target=template_debug
scons platform=ios target=template_release
Select
Project/Export
, Add the iOS export preset and configure withApp Store Team ID
andBundle Identifier
, then export.
Once it has been exported, you can open it in XCode, run locally, or on your device. Providing Apple support is out of scope for us.
Further reading:
Steam Deck
As of Terrain3D v0.9.1 and Godot 4.2, the first generation Steam Deck is reported working, running the demo at 200+ fps.
The user got it working with the following:
Use SteamOS 3.5.7
Install
glibc
andlinux-api-headers
in addition to the standard Godot dependencies
Further reading:
WebGL
WebGL and the Compatibility Renderer are not fully supported yet. The terrain mesh builds and is reported to work fine.
The remaining issue is that the shader does not work because Godot does not fully support Texture2DArrays in the compatibility renderer. However it seems to work for some texture arrays, just not albedo. The exact problem isn’t fully tested or identified.
As an alternative, you can write your own custom shader. You can add texture samplers in the Terrain3DMaterial shader and in textures not in a TextureArray.
Further reading: