5 ms·
Maybe this is a good place to ask: I have an Actor that rotates a child Static Mesh through a series of meshes (via "Set Static Mesh") to display a number 0-30
by mintplant 10y ago
Maybe this is a good place to ask:
I have an Actor that rotates a child Static Mesh through a series of meshes (via "Set Static Mesh") to display a number 0-30. When I preview or launch the game, the mesh ends up rendering with some crummy-looking pixelation:
https://www.spinda.net/files/pixelation2.PNG https://www.spinda.net/files/pixelation2.PNG
https://www.spinda.net/files/pixelation1.PNG https://www.spinda.net/files/pixelation1.PNG
So far I've tried: ensuring Settings->Resolution Scale->Engine Scalability is set to 100%; switching between Temporal AA, FXAA, and MSAA; disabling motion blur; restarting the editor multiple times; create a whole new project from the basic/minimal template and drop my object into an otherwise-empty scene. Nothing's gotten rid of this jaggedness.
- cma 10y agoSounds like texture streaming. There is a way to disable it on a per-asset basis.
- mintplant 10y agoThanks for the suggestion. I just tried disabling texture streaming globally but unfortunately it didn't help. It's not a texture that's ending up pixelated but rather the edges of the 3D model, as if it's being rendered at some lower resolution and upscaled or anti-aliasing isn't being applied properly. Another example: https://i.imgur.com/tuvcAA8.png https://i.imgur.com/tuvcAA8.png - FXAA is turned on yet the edges are all jagged and pixelated.
- cma 10y agoLooks like it has AA to me. You would be better with temporal AA, FXAA reduces jaggies but doesn't know enough of the underlying shape to really do anything like super sampling along subtle curves and stuff. For lines it can sometimes use enough surrounding context on screen to do a passable job. If you use the new forward renderer you can turn on MSAA and get super sampling along the edges too but it is still going to be there to some degree. 2xMSAA is only going to get you the equivalent of two bits of translucency information for each edge pixel.
- cma 10y agoOh make sure your mesh has smoothing groups too, or you will be getting aliasing on the specular on the internal polygons. Some of your edge artifacts look like they may be that.
- mintplant 10y agoI have smoothing groups enabled in Blender's FBX export settings, so they should be there. I can't find a way to tell if they've been imported correctly from within UE4. The model is here, if you're willing to take a look at it: https://www.spinda.net/files/number6.fbx https://www.spinda.net/files/number6.fbx I switched from Temporal AA to FXAA because it interacted oddly with the changing Static Mesh. When it switched from one number mesh to the other, the new one would jitter and sort of dissolve in until it settled out. I have another object with a texture that rapidly changes, cycling through a set, and Temporal AA causes ugly artifacting there which settles out once the texture stops changing. (This happens both with texture streaming on and off.) edit: video of what I'm talking about - https://www.spinda.net/files/temporal-aa.mp4 https://www.spinda.net/files/temporal-aa.mp4
- cma 10y agoTemporal AA can have issues with scrolling textures and stuff. I think there is a setting on the material to disable temporal AA around that area, but it may only be for translucency. For a sort of flipbook mesh like that I could see it happening too. Not sure what your best option is. You can change around some variables on how big the temporal AA history filter is, but if you lower it enough to get rid of all that ghosting you may end up as bad off as the 2xMSAA in terms of how much AA you actually get out of it. Your best bet may be trying a higher level of MSAA, r.MSAACount will control the level of it. With really dense meshes it can begin having a high cost.
- mintplant 10y agoYou were right about turning down Temporal AA ending up with worse results than 2xMSAA. MSAA with r.MSAACount = 4 is a huge improvement, though: https://www.spinda.net/files/4x-msaa.mp4 https://www.spinda.net/files/4x-msaa.mp4 Thanks for the help! I'll go forward with this for now and see if I run into performance issues. Around how dense is "really dense"?
- Rusky 10y agoKind of seems like you're on a hidpi display and the game isn't aware of it. (Or maybe the buffer that mesh is rendering to, but it seems like you've covered that and I don't know Unreal well enough to suggest otherwise.)
- mintplant 10y agoI am in fact using a HiDPI display. I tried setting Windows 10's scale factor to 100%, disabling my HiDPI (laptop) monitor, and moving UE4 to a 1x (1080p) display. Unfortunately the issue is still present: https://i.imgur.com/tuvcAA8.png https://i.imgur.com/tuvcAA8.png I don't know whether this means HiDPI scaling isn't the issue or I failed to completely disable whatever scaling is being applied. I also checked Application Scale in Developer Tools->Widget Reflector, but it was already at 1.0.
- Rusky 10y agoThat image does not seem to have the issue at all. Which makes me think that if it doesn't happen for everything in the scene, the engine is for some reason rendering that object to a lower-resolution buffer and upscaling it with point sampling.