💾 Archived View for alaskalinuxuser.ddns.net › 2024-04-08.gmi captured on 2024-12-17 at 09:49:23. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2024-09-29)

-=-=-=-=-=-=-

Work around for SubViewport issue on Godot 4.2 in compatibility mode

">

024w, https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/04/

Working_transparentBG-300x176.png 300w, https://alaskalinuxuser3.ddns.net/wp-

content/uploads/2024/04/Working_transparentBG-768x451.png 768w, https://

alaskalinuxuser3.ddns.net/wp-content/uploads/2024/04/Working_transparentBG.png

1162w" sizes="(max-width: 1024px) 100vw, 1024px" />

If you can see the above image, you will note that the subviewport is

accurately displaying the revolver AND the 3D world is still visible. If you

are trying to use a subviewport to prevent weapon clipping in Godot 4.x, and

you see the below image (or similar to it), then you have run into the

subviewport issue I am referring to.

">

024w, https://alaskalinuxuser3.ddns.net/wp-content/uploads/2024/04/

NotWorking_transparentBG-300x176.png 300w, https://alaskalinuxuser3.ddns.net/

wp-content/uploads/2024/04/NotWorking_transparentBG-768x451.png 768w, https://

alaskalinuxuser3.ddns.net/wp-content/uploads/2024/04/

NotWorking_transparentBG.png 1162w" sizes="(max-width: 1024px) 100vw,

1024px" />

If all you see is your weapon, in this case my home made revolver, and the

environment background, but no 3D world, you may have forgotten to turn on

“transparent BG”, but if you have and you still see this, you probably have the

same issue I did. Fortunately, there is a work around.

While following a Udemy course on building 3D games with Godot, the instructor

had us create a subviewport and use a camera in that subview to look at the

weapon, and keep the player camera from seeing the weapon. On his screen, it

worked like a charm. In the tutorial video, it worked like a charm, but in my

Godot world, it was not working at all.

I rewatched the lessons and made sure to check “transparent BG” for transparent

backgrounds. I searched the web and found people saying you need to turn off

SSR in your environment variables. But it was already off. I found other people

saying that it is an issue in compatibility mode, and that there was not a good

work around. Other people were using the alpha scale to “cheat” and show a

weapon that was partly transparent just so you could see everything.

Fortunately, after playing around for an hour, I figured out a much easier work

around.

You probably have a setup like mine: SubViewport Container –> SubViewport –>

Camera3D (we will call it weaponCamera for this article). In which the

SubViewport has “transparent BG” selected. But when your player is instantiated

in your level/world, the environment and the weapon is all you see in your

SubViewport view of the world. If that sounds like you, then here is what you

need to do:

Go to your weaponCamera (the one in the SubViewport) and give it an new

environment. I tried copying the level environment, but that didn’t work. I

also saved the level environment and tried to load that and it didn’t work. I

just made a new environment, NOT choosing sky, set the color to match, and that

worked great. However, there is a catch…..

If you do this, your gun/weapon doesn’t always get lighter or darker when you

walk under items or out into a bright light. So this is only a half way fix for

the battle. But this does work well enough to do the job.

The actual problem is with your World Environment. If your world environment

uses “sky” then that causes all the issues. So, if you don’t want to do the

work around I mentioned above, a different workaround is to set a different

option for your world environment that doesn’t use “sky”, like canvas or custom

color, etc. Choosing any of these options and you will not need a custom world

environment for your weaponCamera. This keeps everything “together” better, but

you lose what I consider to be one of the best environment options, which are

the sky settings.

Anyhow, I hope that is helpful for the next person trying to web search an

answer to this problem!

Linux – keep it simple.