Hi!
That’s a really cool project you’re working on! I totally understand the effect you want to achieve, a mix of retro and modern with the typical PS1 pixelization, but with technologies like dynamic lighting. Now, it seems like an interesting challenge but I would be very careful because you need to optimize everything and more or less meticulously.
Anyway, I would try to operate like this.
Use the r.ScreenPercentage command
The command you mentioned, SetResolutionScaleValue, is correct, but it could be that you set it too low, causing a blurry effect. Try to use a middle value to get a balance between performance and clarity.
You can use the r.ScreenPercentage command in the console, you can use something like this: r.ScreenPercentage 50
This sets the internal rendering to 50% of the resolution, improving the frame rate without compromising too much on the quality. If 50% is too low or too high, you can try values between 50 and 100.
Another tip is to use a custom output resolution, that is, instead of reducing the real resolution of your monitor, you can lower the rendering resolution and keep the UI and other elements at a higher resolution.
You can do this in Unreal’s Rendering Settings:
Go to Project Settings > Engine > Rendering.
In the Screen Percentage section, adjust the value to lower the internal resolution without touching the output resolution.
For -Retro Rendering- I would use a Material like “Pixel Art”
To get a more authentic pixelated effect, you can use a custom material that creates pixelation at the shader level instead of relying on post-processing.
The idea could be to create a custom material that takes the UV values and smoothes them to simulate a low resolution. This will give the game the pixelated look without any blurring, while maintaining a higher frame rate.
In material nodes, you can use a Floor node to approximate the UV coordinates to larger blocks, simulating a lower resolution.
Also try disabling or optimizing dynamic lighting
Dynamic lights and volumes that cast shadows can have a significant impact on performance. Here are some tips for optimizing them:
Try to limit the number of lights that cast dynamic shadows. If your game has a retro look, you may not need many lights that cast real-time shadows.
Use static lights where possible, remember that static lights are much less demanding on performance.
Again, I suggest changing your post-processing method.
Even if you already have a post-process implemented for pixelation, you can try disabling other post-processing features that may be unnecessary for your visual style:
Disable Motion Blur, Anti-Aliasing, Bloom, Lens Flares or other effects that can consume a lot of resources but are not essential for a retro look.
Use Aggressive LOD’s (Level of Detail)
Set more aggressive LOD’s for world objects, reducing the quality of models as they are further away. This will help you maintain high performance without too much visual impact.
This package on Marketplace it might be right for you:
https://www.unrealengine.com/marketplace/en-US/product/pixel-materials-1
Try these options and let me know, cheers.