Smoke Effects Do Not Layer Properly

rjbradley

Member
So I have been experimenting with using the Smoke effect and have noticed that in many cases, the game engine does not layer the effects correctly. By this I mean that a smoke effect which is behind another smoke effect will sometimes be obscured by the effect in front and sometimes it will be plainly visible as if the effect in front is not there. The pictures below illustrate the issue. The front smoke obscures the view of the locomotive behind, but the smoke from the locomotive behind is plainly visible as if it is in front. I'm curious to know if others see the same issue and is there a workaround/solution or is it a bug that can only be fixed in the program?
Screenshot-2024-02-28-162858.png

Screenshot-2024-02-28-162913.png
 
This is a known issue when dealing with transparent materials, and is not specific to Trainz. On the other hand, I have no clue if N3V is aware that this is happening.

What is happening here is that the techniques used to render transparent items are frequently deficient in calculating which item should be visible. The techniques that work so well for non-transparent items are simply incapable of dealing correctly with transparency, and the techniques that work well with transparency are far more expensive to calculate, making rendering slower.

A slight modification of the simple technique works well with a single transparency at any given pixel, but is incapable of handling multiple transparencies correctly. As a result, programs that use 3D rendering often use the less expensive but less accurate method under the assumption that overlapping transparencies are rare. This usually works fine, but results in the effects you notice here when the assumptions break down.
 
For some transparent textures setting the antialiasing (Launcher -> Trainz Settings -> Performance tab) to a high value (8x) is required.

Peter
 
Thanks MasterTracklayer for the background on the issue. I may still send it in as a bug report just to see what N3V suggests. For now I'll have to try to keep the effects from crossing each other's paths as much as possible when placing them in the route.
@p-dehnert I already had the antialiasing set to 8x.
 
Back
Top