N3V: Its time to update the low poly threshold to match the TRS19 marketing hype!

MSGSapper

Trainz route developer
The original low poly threshold cutoff of 500 polys was set over 20 years ago with the original Trainz, and it made sense at that time, given the graphics card capabilities of the day. It amazes me however, given all the graphics technology changes that have occurred since then, that we still are enforcing that 500 limit. When creating any new content item over 500 polys you will get an error message unless you cheat a little with certain lines in the config.txt file or some workarounds.

How in the age of TRS19 and PBR textures can N3V still insist on that limit? By todays 3d game and simulation standards that limit is ridiculously low! Even bottom of the barrel computer graphics chips can handle far in excess of that these days.

TRS19 is being marketed as the most graphically realistic Trainz to date. Realism however comes at a cost and means more polys in most cases. If you want realistic looking 3rd party content to match the marketing hype you really need to revise the threshold to at least ten times what you had 20 years ago (ie; low poly threshold set to 5000 polys). Even 5000 is low by todays 3D game and simulation standards, which often work at many times that level.

Bob
 
A agree with you Bob, 500 is far too low.

Luckily with the line of code added to the config I've been able to get rid of the warnings in TRS19 for older large poly items, my computer shows no sign of melting yet.
 
When an object has more than 500 polygons, several meshes have to be made and the lowest one must have less than 500 (lod0, lod1, lod2, lod3 ...), it is something that has been known for a long time and is used . It is more work for the author and it is heavy but it is what is done.

The problem will come when NV3 imposes in a future service pack that in trainz 2019 objects or trains cannot be used, of thousands of polygons without various meshes or lods. If this happens many assets will become erroneous.

Currently in TANE you cannot use meshes of more than 500 polygons without several meshes or lods, unless they have a build lower than 4.5, but in trainz 2019 you can use a single mesh of thousands of polygons by placing a tag in the config.tex:
"mesh-table-lod-transition-distances"

I do not understand why a single mesh is allowed in 2019 and in TANE it cannot be done.
 
When an object has more than 500 polygons, several meshes have to be made and the lowest one must have less than 500 (lod0, lod1, lod2, lod3 ...), it is something that has been known for a long time and is used . It is more work for the author and it is heavy but it is what is done..

In reality very few of the major 3rd party authors adhere to the multiple LOD requirement based on my check of a random cross section of their structure content to date. Three good examples: Various Jointed Rail authors, Dave Snow, and Ben Dorsey. In the content of theirs I checked they only had a single mesh model. Why? Its just too complex and time consuming to have to build 4 different LOD versions of the same model, along with textures to match. Trying to fulfill that multiple LOD requirement cuts your content production down by a factor of 3, at least, and does nothing for you as the author except make things harder. Now if I were being paid to do that, it would be a different matter perhaps, but I have noticed even many of the payware authors often don't try to meet that requirement either.

If the time ever comes that N3V no longer accepts single LOD models, I will quit producing content as it's just too much of a pain to do. I am in this for fun - not pain.

IMHO N3V should not be maintaining 20 year old graphic standards (ie; 500 poly threshold) when things have vastly changed over the last two decades in graphic card capabilities. To do so just holds TRS19 back as the preeminent Train simulation. A comparison of much of the original "toyish" looking content of the build 1.2 era versus build 4.6 PBR content todays shows just how far we have come. If N3V wants Trainz to continue being the most realistic 3D Train simulation out there, then they are going to have to change their 20 year old graphic standards to that generally accepted by todays 3D game and simulation industry.

As for those having less capable graphics cards, there are many ways you tweak the settings in order to increase the FPS rate.

Bob
 
The 500 triangle limit has certainly slowed down my efforts as a creator but I disagree with the complaint against it. It enforces some modelling discipline which I think is still very much required in Trainz, regardless of advances in video cards. I say that because the open nature of Trainz allows route builders to stick as many assets as they like in a scene and the Trainz game engine is not as good at dealing with the load as some others out there in 3D games world. Unless some strict limits are maintained, the advantages of new, expensive video cards can be very quickly wasted.

The ability to cheat the system with config tags and the inconsistency between TS19 and previous versions are things that N3V should tighten up on.
 
It doesn't take much effort to copy the original and knock a few details off it.

You only need one level of LOD even if some do seven levels.

Cheerio John
 
Doing multiple levels of LOD's doesn't worry me at all. This again is one of those areas where if a significant change is made it could render a lot of old content which many still use as no good. This has always been the issue with Trainz because of the wishes of the masses to keep backwards compatibility.

Regards
Peter
 
Ben (Dorsey) was never interested in making LOD models and I spent a couple of years trying to convince him of the merits. Making LOD bridges has its unique challenges so I can hardly fault hime. Andi Smith argued for a developer's "test only" config tag that fell on deaf ears. My solution, for several years now, is to include a simple box/cube to stop the errors during development.

Blender has the Decimate modifier that does a surprisingly good job and there are a couple of options for that. One version often does a better job than the other. The final low poly model can be a challenge for locos, and especially steam locos,

The problem is not confined to Trainz and there is a process called "retopology" that aims to reduce ultra high poly models, that are used for bakes, to meshes of more acceptable sizes for game engines. That's not an easy process.

I'll admit that LOD/FBX/PBR and other "advances" are making it tougher for long time creators but, speaking only for myself, I rather like the challenge.
 
My little laptop runs better on LOD whatever it is.

Luv Karen


LOD = Level Of Detail


Example......a building with 3 levels of LOD
1st level = 15,000 polys / triangles at 100 meters viewing distance
2nd level = 6,000 polys / triangles at 500 meters viewing distance
3rd level = 500 polys / triangles at 1,250 meters viewing distance

The detail that you cull or cut from the 1st LOD is made up on the 2nd & 3rd levels by using a high quality baked normal map.

Hope that gives a better understanding Karen of what and how LOD works
 
Hope that gives a better understanding Karen of what and how LOD works

Then the next question ...

The detail that you cull or cut from the 1st LOD is made up on the 2nd & 3rd levels by using a high quality baked normal map.

What is a "high quality baked normal map"? Indeed what is a "normal map" regardless of whether or not it has been in the oven (gas or electric? Does it make a difference?)?
 
What is a "high quality baked normal map"? Indeed what is a "normal map" regardless of whether or not it has been in the oven (gas or electric? Does it make a difference?)?

I'll use a steam loco as an example......
Base model has most of the major detail as a mesh (body, piping, highly visible details) and might run to 70,000 triangles. From that model I make the very high poly with all the extra little details like rivets, smaller pipes, ect.

The first mesh is fully UVW mapped....high detail model doesn't need to be mapped

Then export both models and open the main low poly mesh in SP. Add in any extra map layers I use then bake the textures using the very high poly mesh in SP to get a really good detailed normal map. It is the normal map that fools the eye into thinking all the detail is still visible on the lower LOD's when in reality I have already stripped 50% of the polys off the original low poly mesh.

Hope that explains it a little for you.
 
Last edited:
You're focussed on the wrong end of the scale. It is the high detail end where hardware can make a difference today. So make a really detailed high poly model by all means, but there is absolutely no point at all in having more polys at low LOD.

Here is an example of the RMRX GP40-2. It goes from 200k polys at high detail (20 years ago this had to be more like 2,000 polys), down to 100 polys at low LOD.

Given there are only a few pixels on the screen, and 100 polys is actually enough detail to make this look like the same train, why waste polys when the pixel density can't even make use of them? (I circled the 100 poly model, which is showing here at 1km and it's already only a handful of pixels in size).

LOD.png
 
Last edited:
You're focussed on the wrong end of the scale. It is the high detail end where hardware can make a difference today. So make a really detailed high poly model by all means, but there is absolutely no point at all in having more polys at low LOD.

Here is an example of the RMRX GP40-2. It goes from 200k polys at high detail (20 years ago this had to be more like 2,000 polys), down to 100 polys at low LOD.

Given there are only a few pixels on the screen, and 100 polys is actually enough detail to make this look like the same train, why waste polys when the pixel density can't even make use of them? (I circled the 100 poly model, which is showing here at 1km and it's already only a handful of pixels in size).

Tony:

I started this thread to focus on LOD0 and the error message you get when that mesh exceeds 500 polys. As with so many threads, we have wandered a bit onto other topics, such as the need for multiple LODs.

I certainly understand the economy of design versus performance argument put forward by others here, but this is not sufficient justification for maintenance of a standard established almost 20 years ago. Software design standards are established based on capabilities and limitations of the technology at the time you establish the standard. Because of this, standards must evolve over time to deal with changes in technology in order to stay current or eventually they become a roadblock and hinderance to development efforts and thus meaningless.

I can say this with assurance as after I retired from the Army in 1993 I became a full time software engineer, and did that on a day-to-day basis from 1993 to 2005 when I went on to other things. During that period I saw software standards evolving every 2-3 years and had to replace computers and software tools also every 2-3 years in order to keep current. I cannot even begin to imagine a single standard being maintained for almost 20 years in the software business.

All I am asking here is that you please consider updating this antiquated standard and set an error threshold that is more realistic, given todays capabilities and technologies, which we couldn't even envision 20 years ago.

The 3d gaming and simulation industry is fast heading toward photorealism and you cannot encourage 3rd party content creators to support that using such an old standard. This is especially true for Trainz, as you all do little content work these days and rely almost completely on 3rd party developers, such as myself, to do that for you.

I would also suggest that others here who are for maintaining the status quo go visit https://www.cgtrader.com/ and take a look around. This one of the primary sites on the Internet where the professional freelance mesh and model designers go to sell their work to the gaming, simulation and CGI industry. What you see here is where these industries are heading in the way of graphics and models. What they call low poly on this site is often way in excess of what is refereed to in Trainz as so called low poly.

Bob
 
The standards have been updated in TS9, TANE, and TS19. I have been using LOD from TRS2004, it's not that hard. Back in TRS2004 I had to make an 80ft. car with no more than 2000 polys and a bogey at 100 for 4 wheels, 150 for 6 wheels. Most of my new content has the "under 500" as just a box.
 
The standards have been updated in TS9, TANE, and TS19. I have been using LOD from TRS2004, it's not that hard. Back in TRS2004 I had to make an 80ft. car with no more than 2000 polys and a bogey at 100 for 4 wheels, 150 for 6 wheels. Most of my new content has the "under 500" as just a box.

Are you saying the 500 LOD threshold that launches the error message has been updated? I seem to remember that 500 number going way back, accept at the beginning it was a warning message only for many years, and not an error....

Bob
 
Early on, there was no warning (or even a content manager...). Like Whitepass says, LOD has been a requirement for 15+ years now; the warnings (and later errors) only came about because so many people ignored LOD and uploaded horrendously inefficient models to the DLS - and then blame N3V for Trainz's poor performance.
 
Hi MSGSapper
You will be hard pressed to find any game made today that does not use LOD.

It is essential to the efficient operation of a game engine. To display the hundreds of thousands of polys of high detail models up close, you need to reduce your poly count the further away the object is. There is still a limit on how many polys a computer can display at any one time.

Additionally, the only way for the 'scenery detail' setting to function is LOD. It literally adjust when the LOD transitions occur (at maximum, they will be the same as the settings you configure; lower settings of scenery detail will lower the distance the LOD transitions occur). So without LOD, users with lower spec computers will have no way of using routes without absolutely destroying performance.

This is why we have the 500 triangle maximum poly count for the lowest, because when you have hundreds of modern high detail objects in a scene with no LOD, you will completely destroy performance. You need to reduce the poly count for objects as you move away.

You may not see the point in LOD yourself, but it is absolutely essential, and is the reason we have this error message. Computer resources aren't unlimited, and with more and more detail being used up close, you absolutely need to reduce detail at longer distances to maintain performance.

In all honesty, if creators continue to refuse to implement LOD on their content, then we will need to further investigate ways to enforce LOD is actually used...

Regards
 
Back
Top