Hello,
Little technical question.
We are actually developping a FPS, we are using a material to render crosshair into the sight. Let’s take for the instance an Hologragphic.
We meet actually 3 issues, and would like to know what is the proper way/advice to fix them :
The scope material is set as transluency, the crosshair is a texture (2k), and we use emissive to mimic reality sight.
- With motion blur, the scope picture is ghosting
To fix that, we have try to set the material with the parameter “after motion blur”. The issue is that unfortunally mess with the transluency, and create a lot of ghosting with the transluecent part of the scope itself
- The transluency part is ghosting
Same as above, depending of the TAA (DLSS, TSR…) the transluecent part of the sight if having some shading start to be ghosting/pixelisated on movement
- Screen resolution, make the texture pixelisated
If the user downscale the resolution, the texture of the crosshair appear overpixelisated. Which ideally, independantly of the resolution, the crosshair texture should be sharp in any case.
Thanks for your answer, on the need if the issue isn’t clear, we can provide video/example.
Hi Eric,
I’m not sure if I understood correctly the kind of effect you are trying to achieve. But most FPS games that use a 2D crosshair render it directly on the screen space as an element of the HUD.
In UE, this was previously done by implementing a HUD class (see, for example, blueprint “BP_HUD_BP_Comms” in the Content Examples project).
More recently, this is more commonly done by implementing a UMG widget. Some examples are widget “WBP_PlayerHUD” in the Content Examples project, and widgets “ShooterCore/Weapons/*/W_Reticle_*” in the LyraStarterGame project.
Both approaches above should not suffer from ghosting nor be affected by motion blur or other post processing effects. Another possibility would be to render the reticle itself on a post process material.
Please let me know if this is helpful. Otherwise, would you mind providing some more details about the effect you are trying to achieve?
Best regards,
Vitor
Thanks Victor,
My bad, my post lack of clarity.
We are not speaking about a 2D crosshair on HUD, but displayed on 3D :
[Image Removed]
This is the issue with the motion blur :
[Image Removed]
if we lower the screen resolution (r.ScreenPercentage 50), the AA do the job on everything, but totally miss the crosshair, specially with FSR, DLSS, TSR and TAA. FXAA and no AA work “okay”
That only happen with “after motion blur”.
[Image Removed]
And third issue, even procedurally generated, i exagrated the effect in the photo, but any shading in the opacity, will have weird gradient artifact :
[Image Removed]
And four issue, the reticule is emissive, however, we have a slight ghosting on it (Responsive AA and output velocity is turned on).
It’s hard to see on the video, and only happen when i set the fov to 80. The center dot have this slight annoying ghosting.
I take any input for all of those problemes.
Hi Eric,
Translucent materials, especially with very fine or high-frequency details like the thin reticle you need, are common pain points for a deferred renderer with motion blur and antialiasing, particularly when using TAA or TSR.
Some things you can try (separately):
- Set the translucent material to “unlit”
- Increase the antialiasing scalability setting
- Besides turning on “output depth and velocity”, also try increasing “opacity mask clip value”
- Draw the scope’s translucent part separately from the reticle, and use “opaque masked” for the reticle instead of “translucent”
- Draw the reticle by itself using a SceneCapture2D with a fixed resolution (unaffected by screen percentage), then combine it with the main render in a post-process material or UMG widget overlay (unaffected by motion blur and antialiasing).
- Draw the reticle into the custom depth or custom stencil buffer, then use a post-process material to overlay it over the main render.
Let me know how these go. If nothing above works, would you be able to give some more details? For example, what UE version you are using, whether nanite and lumen are enabled, and if the geometry for the scope lens and reticle is just a zero-thickness mesh like a simple quad.
By the way, this doc has some invaluable information regarding TSR, including available debug tools and a section on translucent materials.
Best regards,
Vitor