I’m working on this 3D orthographic scene in Godot 4.4, and I’m hitting some weird pixel artifacts that are really bugging me. I exported this low-res “castle” model from MagicaVoxel to obj, and after setting up my basic scene with a ground mesh, a camera, and a directional light, I added the castle obj file alongside a BoxMesh3D for comparison.
I want that faux-2D orthographic look, so I followed a YouTube tutorial that suggested a few steps. I set my project viewport to 1080p, placed my 3D scene inside a SubViewport, and put that in a SubViewportContainer. Then I stretched the container to fit the canvas and adjusted the “Stretch Shrink” to around 2 to achieve a pixelated appearance. Finally, I turned on “Nearest” texture filtering.
But here’s where the problem kicks in. As soon as I do this, I see those strange artifacts in the preview, and they persist when I run the scene. It honestly looks like the game’s rendering is still happening at full 1080p rather than the downsampled resolution I’m aiming for, which is kind of frustrating. I’ve wondered if there’s an anti-aliasing setting somewhere that I need to change because it doesn’t seem like the viewport is respecting the pixelated settings.
I did a bit of poking around and switched from the Forward+ renderer to Compatibility mode, which made the artifacts go away, but introduced some annoying lighting issues. So now I’m running in circles. I have a few questions:
1. Why does my debug run still look like it’s rendering at 1080p, even though I expected it to downsample to 540p or 360p? Could anti-aliasing be the issue here?
2. Is this a common problem when using the Forward+ renderer in 4.4?
3. Are there any other config tweaks you might suggest? I’d really like to stick with the Forward+ renderer if I could get this working right.
Any advice or insight would be super appreciated! Thank you!
Weird Pixel Artifacts in Godot 4.4 – Need Help!
Hey there!
It sounds like you’re really getting into the nitty-gritty of Godot, and those pixel artifacts must be super frustrating! 😩 Let’s see if we can tackle your questions one by one.
1. Debug Run & Downsampling
So, you mentioned that your debug run looks like it’s still at 1080p instead of the downsampled resolution. If you’re using Nearest filtering and set up everything right, it should technically show that pixelated look. Anti-aliasing could definitely be the culprit! Make sure to check the anti-aliasing settings in your project. If it’s enabled, try turning it off and see if that helps!
2. Forward+ Renderer Issues
Yep, the Forward+ renderer can sometimes give weird results with pixel art. It’s not uncommon for users to encounter artifacts or issues like the ones you’re facing. This might have something to do with how it handles lighting and colors. If you find using Compatibility mode solves the artifact issue but messes with lighting, it’s a tough spot.
3. Suggestions for Config Tweaks
Here are a few tweaks you can try:
It’s a bit of trial and error, but hopefully these tips get you closer to that sweet faux-2D look you’re going for! Keep pushing through; learning these things can be tough, but it gets easier!
Good luck and happy developing! 🍀
The pixel artifacts you’re noticing happen because the SubViewport’s actual rendering resolution is still at 1080p, causing inconsistencies when downscaled through the SubViewportContainer. To effectively achieve a crisp, pixelated “faux-2D” look, you should explicitly set your SubViewport resolution to the lower resolution you’re targeting (such as 540p or 360p) rather than relying solely on “Stretch Shrink.” Ensure your SubViewport is configured with a fixed size matching your desired downsampled resolution—then, using the SubViewportContainer, upscale to fit your actual viewport. Also, double-check your project’s render settings and disable anti-aliasing, as AA can add unwanted smoothing, undermining your pixel-perfect intention.
Regarding the Forward+ renderer in Godot 4.4, this behavior isn’t uncommon—it tends to preserve higher resolutions by default to provide detailed lighting and effects, thus causing pixelation discrepancies. Compatibility mode indeed alters this behavior but may introduce lighting constraints. To continue using Forward+ without artifacts, verify that your project settings’ filtering mode is strictly set to “Nearest,” disable MSAA and FXAA specifically in your render quality options, and ensure the SubViewport has “Transparent BG” disabled for precise pixel rendering. If issues persist, consider adjusting your camera’s orthographic size and scaling assets consistently to avoid fractional pixel values, which can further mitigate artifacts and produce a cleaner visual result.