Vulkan problem rendering ParallaxBackground (Godot 4.1)

Hello!
I encountered a rendering problem while trying to use the ParallaxBackground node as in the lecture video. The ParallaxLayer nodes tend to switch their visibility as the camera follows the player’s movement, and the Sprites2D (of the platforms in the game) get offset while that happens.

Researching the problem, I found it to be common among people with my iGPU specs (as in this link). It seems to be a compatibility problem between Vulkan and Godot 4, which some people also refer to as issues with the CanvasLayer and Camera2D nodes (but I don’t fully understand the explanation).

In my case, as in the referred link, the ParallaxBackground node works correctly in the engine when I choose the Compatibility rendering mode, but the rest of the workaround methods I encountered online weren’t effective.

Are you aware of a solution or better workaround to this problem? I also found a Parallax2D node to be available in the AssetLib, but I’m not sure how to use it in replacement of the background developed in the course (wich uses the Mirroring effect).

Are you referring to Draw Order? What you’re describing sounds like each layer will draw on top of the others whenever they repeat, which might be fixable by defining a specific Draw Order for each one. I don’t see why that wouldn’t already be resolved by scene tree order though.

When you run the game, do you see anything unusual in the Remote tab? I’m guessing not, but worth checking.

Also, I had issues with parallax Mirroring while doing Kaan’s 2D course. I recognize this is the Mobile course and your specific issue is probably a little different, but this could be useful. Apparently a lot of people have had problems with Mirroring:
https://www.reddit.com/r/godot/comments/139a1wq/to_anyone_having_problems_with_parallax_mirroring/

Kaan also mentions that there will be further modifications to this in the next lesson, so it might actually be a good idea to implement those and see if they change the issue at all.

Hi BH67!
As I run the main scene, no changes can be seen in the Remote tab. It seems not to be a Draw Order issue, I already used the inspector trying a workaround. Also, some layers turn their visibilty off as I can tell form textures transparencies.

As I can tell from the linked post you provided, the ParallaxBackground node also shows trouble mirroring when their layers sprites are offsetted as “centered” or away from the scene origin. This is not the case, following Kaan’s instructions.

As I open the next Kaan’s lecture, I found this topic from another student. It looks similar to my problem but is sadly closed (I’ve already DM them). I will implement the changes and see what happens, but i’m not confident it will help.

Here bellow is a screenshot from my case, where you can also see that a platform sprite (the one the player is using to jump) has gone off-screen. This behaviour also seems to be part of the rendering problem.

I took a close look at the godotengine link you posted - that’s pretty unusual =)

If you haven’t already, have a look at the one Calinou linked it to, 58314 - I wonder what would happen if you inserted a dummy node of some kind (I’d experiment with a Node2D and a white Node, just to see if the white Node’s lack of a transform impacts anything) as the zero child of your ParallaxBackground, or maybe even somewhere else. The more you can boil down a minimum reproduction project, the better equipped you are to work around it.

I’m thinking if it really is an unsolved driver issue that’s beyond your control, then maybe your best option at the moment is to offset the problem to something invisible that doesn’t affect the game. It’s not a clean approach (borders on bad advice actually) and I’d write some comments explaining it, but I don’t have any further ideas. If it successfully works around the problem and keeps you from getting hung up in the course, it’s probably worth it imo. Good luck!

2 Likes

I’ve put in some additional effort to understand the 58314 topic and now I comprehend your advice, thanks you! Unfortunelly, adding a node without Transform did not worked around the rendering problem…

The good news is a new Parallax2D node has been announced!! It seems like an alternative that will work on my iGPU specs, so I will find a proper solution, eventually

I will now continue the course on “Compatibility” mode. If I find a way to reproduce the desired background with the node currently abailable in the AssetLib for GoDot 4.1, I will share it tagging the next lecture

1 Like

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.

Privacy & Terms