godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
90.55k stars 21.08k forks source link

Environment bg_mode Canvas + Glow doesn't work on Android [GLES3] #28776

Closed grenzionky closed 2 years ago

grenzionky commented 5 years ago

Godot version: 3.1

OS/device including version: Computer: OS: Manjaro 18.0.4 Illyria Kernel: x86_64 Linux 5.0.9-2-MANJARO DE: KDE 5.57.0 / Plasma 5.15.4 WM: KWin

Phone: Nexus 5X Android 8.1.0

Issue description: world environment canvas glow doesn't work on android

Steps to reproduce: enable world environment canvas glow, observe that it works on the computer. export it for android, and it doesn't work on my phone.

Minimal reproduction project: https://mega.nz/#!6t5DCSgY!vssu8eIcfpTVmO_nZ2UiNNojQsKuL0fiTJsl4OEzo_0

YeldhamDev commented 5 years ago

Could you provide more details about the phone itself? Model, Android version, etc.

bojidar-bg commented 5 years ago

Does it happen when forcing GLES2 via project settings / command line, and running on desktop?

Calinou commented 5 years ago

@bojidar-bg As far as I know, glow isn't implemented in the GLES2 renderer.

grenzionky commented 5 years ago

@YeldhamDev I updated the question

grenzionky commented 5 years ago

Gles2 doesn't give a glow option to begin with

akien-mga commented 5 years ago

I can confirm that using GLES3 + Enviroment Background Mode "Canvas", glow doesn't work on Android.

Glow is now implemented in GLES2, but bg_mode Canvas is outright broken on GLES2, so this issue is specific to GLES3. The GLES2 issue is tracked in #32458.

clayjohn commented 4 years ago

This is likely because Android defaults to "3D-no effects". You need to change the render setting Frambuffer_allocation.mobile to "3D". http://docs.godotengine.org/en/latest/classes/class_projectsettings.html#class-projectsettings-property-rendering-quality-intended-usage-framebuffer-allocation-mobile

akien-mga commented 4 years ago

@clayjohn I just tried and that doesn't seem to be the case.

BTW, even if it doesn't seem to be the full explanation here, it might still be a relevant factor. I feel we might need clearer documentation in a prominent place (and note:: references in other related places) to the framebuffer allocation options and their different default values on desktop and mobile.

fossegutten commented 4 years ago

I want to add this: With Godot 3.2 on Windows: If i turn on Background Mode "Canvas" in GLES3, all the viewports fail to render transparency, and renders black instead, even if "Transparent Bg" is enabled.

himaghnam commented 4 years ago

I am having this problem basically for be glow is working on gles3 (2d canvas mode) but while using addictive blend mode it is getting weird flickers and is getting a blueish cast on the whole screen

lambferatu commented 2 years ago

I was having this issue in the 3.x branch, however doing this made it work on a Huawei Nova 5T with Android 10 and the Android Studio emulators

akien-mga commented 2 years ago

Fixed by #58470.