I made a simple model of rails and placed it on the stage, but no matter how I set it up, they constantly flicker.
It’s definitely not the material or textures, I tried different ones, I also tried different methods of smoothing and smoothing strength, but this also does not help.
What can be done in this situation?
At least some information, because I’ve already looked everywhere and have not found an answer to this question anywhere…
This is a bit of a recurring issue in other threads around the community. Checking other scenarios, there are multiple ways to deal with flickering effects, let’s try to implement some of them:
First of all, please ensure your OS and video drivers are in the latest version available. I would suggest a clean install of nVidia drivers, and to use the Developer drivers
After the driver update, switch between DX11 and DX12, to see if there are any differences
Next, if Nanite is enabled in your train tracks, test by disabling it from them
Since only the sleepers are flickering, if would be worth opening them in a 3D tool (like Blender), and perform checks for normals orientation, and non-manifold geometry
Next, if you are using Lumen in your scene, please test the following commands:
Finally, if your project has been recently migrated to the new release of 5.6, please make sure you refresh your renderer settings. Search for the “DefaultGame.ini” file in your directory, open it with a notepad, and delete all settings under the header [/Script/Engine.RendererSettings] .
I wrote down all the commands but it didn’t give any effect, everything is the same
I have it on, if I turn it off it gives an error that Lumen can’t work without it
I needed to clean the system, so I deleted the previous version and cleanly installed 5.6.1, the project was also created on this version.
and this is not only with rails (sleepers), this is also on other models where there is a similar repeating structure and standing next to it… I don’t know what else can be done…
Hmmm… I see there is a yellow plane/mesh below your tracks. I wonder what it looks like either without that geometry, or if that geometry was textured.
Although that effect is probably coming just from the shadowed bits - if you brighten up the vertical angles with something in the emissive channel (small value, too much and it would look like they would be glowing) maybe that will lessen the effect.
Will these always be used only on a completely flat surface? (Curving up/down in the context of a spline based mesh might lessen this optical illusion)
There’s also a Level of Detail system that will change the mesh depending on how far away it is, so authoring an asset (Maybe that uses a texture instead of meshes for ties/sleepers) could be a path forward.
I added a plane below on several models, just for testing, but in general I placed the rails both on the landscape and simply on the plane or other flat surfaces, there is no difference, the problem is in the sleepers themselves, I did some tests and completely removed the normals and only then did this artifact disappear, but there were no normals, but the normal maps themselves are good 4k from popular sites, so something needs to be adjusted, but I don’t know what yet… If you want, I can give you the model of the rails itself, maybe you can test it yourself, if you’re interested of course…
the 1st answer looks like chatgpt doing a generic sweep to me.
that looks like a moire effect due to geometry. the normals compound the geometry.
but maybe you can fix it via the normals.
lods can help with that. you can generate them automatically inside ue.
you’ll have to split your rails into chunks so you can lod effectively. but then you can have a instanced static mesh (hierarchical or using packed level actors) and still have 1 draw call, with proper culling.
you can also (and i’ll suggest that) modify the materials to react differently based on camera distance (depth buffer).
for example tweening the normals towards the default one (vertex). this will avoid issues with lighting and shadow calculation, precision, and resolution of the internal buffers. which causes the moire effect.
you can also try anisotropic filtering, it used to be expensive, but some people say that its gotten much cheaper a long time ago.
i’ll tween normals, wpo, and other details based on distance. that’s a very useful in general.
there’s a max wpo distance as well.
i’m not sure, but maybe nanite could help too.
look at the shadows in the ship, seems like something like that to me (but with light)
moreover, it’s even worse, I removed all post-processing and left only directional light, the same artifacts are visible on the landscape, they do not disappear with any method and strength of smoothing, I don’t think this is normal…
sorry forgot. worth noting anyway, and great work on researching the equivalent.
technically i could, but i lack the time, i’m really sorry, i’d love to but…
just sample the depth map (scene depth i think, there are two nodes i think), and use it to lerp whatever detail. you’ll have to premultiply by a scale “scalar” factor to get to your desired range.
for normals however you would want to use blend normals node intsead of a lerp. but you can lerp between no normal map (will use the vertex normal) (or a normal pointing “up” (outwards from the vertex face)) and the normal you want. then you might lerp them though it might give weird and non-normalized results, so you might want to also normalize the result. there are better ways i’m sure.
still i’m unsure your issue will be fixed with normals only.
i think your best bet is really lods and adjust the filtering on the textures which might provide a better result than actually trying to blend normals manually. (so maybe leave that method for the last resource)
that’s very normal actually. in the definition of the world normal, which means common, or average to the measure. no assumption of right/wrong.
it looks like moire to me. and could be improved with anisotropic and mipmaps
(watch this video it explains it, if you see the same behaviour then you know that’s the problem and how to fix it, i recommend to watch from that point onwards (or fully) since it shows several different problems)
you have to ensure you set those correctly in your materials and textures.
anisotropic is more costly than other methods, so i’m inclined to bet that is not enabled by default.
you could lower the resolution of the texture at a distance, but that’s exactly what a mipmap does, so just mipmap and anisotropic. you won’t be able to get rid of it 100%.
the geom is another of the parts of your issue i think. so really try lods and simplify those meshes, otherwise you’ll get noisy results on the light calculation.
also important is to check the antialiasing method, taa/t?? is noisy, and your screen might be using a lower percentage. you can set that in game. post processing settings might affect, so it’s great you tried disabling it. you can try changing settings, and also check the performance settings. but aside from texture quality, virtual texture ram size, and texture filtering, i wouldn’t expect much difference.
if you use 4k unreal lowers the resolution of the viewport to LDPI to improve performance while editing, so you actually see it with worse quality.
also if you use big size textures for the normals, you need to enable enough mip levels, otherwise you’ll have noisy sampling which increases that moire effect.
maybe try reducing the size of the normal and texture maps temporarily to see if it makes a difference, then bumping them up.
there’s a parameter in the texture editor, i don’t remember the exact name, but it allows you to set the size. unreal uses the specified size, but doesn’t change the asset, so you can change it as many times as you want. when packaging it will reduce to that size, saving space on disk and ram.
I tried all types of anti-aliasing, but I noticed this - I constantly get a message for a moment “Memory Exhausted (424 MB over budget). Expect extremely poor performance.”, it appears for a moment and then disappears, then appears again, and sometimes the fps drops to 20, and sometimes it drops in certain places, and sometimes it doesn’t, the video card is 8 GB and I allocated 4 GB to the pool, while according to statistics about 400 MB is used, it says 93% remaining…
I don’t understand what’s going on, it seems like there’s enough memory, but it says there’s not enough, maybe this affects these artifacts, maybe it’s cutting it down to increase performance.
if you tried different antialiasing and nothing made a difference that’s good. we can rule that out.
the mem issue, that’s a separate issue. i think.
that message usually appears when one of the subsystems needs more memory.
ue adjusts mem usage so sometimes it will warn you, lower fps, and then go back up, but the quality has been lowered.
also keep in mind that the editor uses more memory than the game as it runs the editor, debug info, and the game together.
it miiiiiiight have an impact now that i think of, since you said you have 4k textures.
so low vram could affect memory streaming and virtual textures.
like i recommended before you should try to reduce the texture sizes.
8gb of vram is barely enough for ue. i think i have 8 too. i can work with it but i don’t expect a lot from it. certainly struggle with 4k textures. specially if you are using vsm, lumen and nanite which really use vram.
its a moire effect like i said. have you checked the video i’ve attached?
i would suggest you try the things i’ve detailed in the previous post. setting texture sizes, format, mipmap levels, and anisotropy which i think also might need to be set on the material. also play with the quality settings and screen percentage to pin down the root of the issue.
then improve the lods so that there is no geometry details at a distance, just a flat thing.
To me, it looks mostly like a Moiré pattern - Wikipedia more than anything. But the video quality is really low, so it’s hard to tell for sure. This is a chronic problem in rendering in general and there are no perfect solutions to mitigate it without turning everything into a blurry mess.
For example:
Edit: I saw the embedded videos could go up to 720p, so I rewatched them. Still hard to say for sure, but it could still be a Moiré pattern issue. In fact, I’m probably 90% sure it is.
with LODs I have already come up with some options how to avoid this effect in the distance, I just thought that the nanite system takes all this into account and you can completely abandon LODs.
The situation with memory is still not clear, I will give statistics, it is clearly written that there is enough with a large margin, it seems to me that first you need to figure out exactly with the memory, it seems to me that somewhere in the settings something is wrong, but I can not yet understand what exactly.
On the one hand, reducing the size of textures is reasonable, it should unload the memory, but on the other hand there is still a lot of memory, I do not think that it should be like this, it seems to me that the settings are wrong, it should clearly show how much is in reserve and how much is used and only if the reserve is exhausted, only then should it be written that there is not enough memory, otherwise how can I expect …
for some reason these data “GPU Memory Pool [GPU] 0Mb, Physical memory Pool (CPU+GPU) [PhysicalLLM] 0Mb” tell me that UE does not see the video card, it seems to me that this may be the source of all the other problems, maybe so? or am I not understanding the statistics correctly?