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

I'm not an especially big player with content creation with only just over 300 assets on the DLS. I work in TS2012 3.5 and 3.7 and I know very well that when N3V finally shuts down accepting 3.5 assets I will be calling a halt on making anything except for my own personal use. I wonder how many other content creators will be doing exactly the same. That will leave content creation in the hands of an increasingly small number of hobbyists who have the time, resources, brain power and energy to work with and understand the new materials.

And then there is the question of how many Trainz hobbyists are using assets that use the new materials in TS2019. A good 95% or more of the assets used by the routes in my TS2019 install are 3.7 or older and to tell the truth I prefer it that way. Ultra realism is all very well, but not at the expense of having a railway simulator that actually works reliably at the nuts and bolts level.


And that is an interesting point, imagination goes a long way. TANE is the last DRM free version of Trainz and I certainly feel more comfortable creating in something that is DRM free.

Cheerio John
 
The 500 poly limit is just too small. You even need to hit this very small poly count for LOD1, which seems ridiculous, or at least I do unless I'm doing it wrong.

John

If you only need LOD0 and LOD1 to comfortably get down to <500 triangles, then that's not ridiculous. If you cannot do it all in one step like that, then you need to create an LOD2, LOD3, etc. with each step dropping the tri-count by at least 20% until you do get to less than 500. Did you not realise that?

Also, I can't see how using PBR textures makes this any more arduous than it already is with older material formats. As long as you can retain the UV mapping scheme from the LOD0 mesh and stick with the same textures for all meshes LOD1, 2, 3 etc, what is the problem? Maybe there is something I don't yet understand regarding PBR that makes the creation of lower detailed meshes more difficult, but I can't see how adopting, say, a 2000 tri final limit instead of 500 would make things that much easier. Someone, please educate me.
 
Also, I can't see how using PBR textures makes this any more arduous than it already is with older material formats. As long as you can retain the UV mapping scheme from the LOD0 mesh and stick with the same textures for all meshes LOD1, 2, 3 etc, what is the problem? Maybe there is something I don't yet understand regarding PBR that makes the creation of lower detailed meshes more difficult, but I can't see how adopting, say, a 2000 tri final limit instead of 500 would make things that much easier. Someone, please educate me.

I am not sure I can do this justice, but I will try. If you are using PBR materials that are non-parallax based then you probably won't encounter any issues for the most part that I am aware of, or have experienced. Non-parallax PBR materials act in a manner fairly similar to .onetex materials, although not as flexible, especially with texture atlases.

On the other hand if you are using parallax (ie; height map in the normal file) in your texture you are going to have deformation appear in the structure. I ran into this issue several times and now for most part do not use parallax for structures, or only for parts of them. This became a big issue with track for me. Unlike .onetex materials you have to provide for users turning off the Ultra shader setting which turns off parallax. In essence the model will look different based on if you have the Ultra shader turned on or off. Try looking at my track with the Ultra Shader on and off and you will see how things look.

As an example this caused me major problems with the ballast interacting with the ties in regards to the track forcing me to revisit the project and do major revisions to it once I was aware of the problem, which was new to me at the time. When parallax was turned off everything shifted height wise and the ties disappeared below the ballast. I had to readjust everything to work around that.

With multiple LODs you are going to be altering the structure and removing things while most likely the texture files will remain the same. Of course you can resolve this, but that would mean having multiple textures files correctly sized to the LOD mesh. Parallax almost makes the texture a structural element rather then just a covering. In PBR you will have 3 files for every texture, instead of the single diffuse file many are used to using. Also PBR with parallax doesn't work very well with texture atlases, especially if glass is in that texture. There are a lot quirks with PBR and I am still finding myself, after good deal of experience with it, still having to find work arounds to get things to look right from time to time. Another issue is when sharp angles are used with parallax, but that is fodder for a thread all on its own.

Again I am not an expert on this by any means. I am just relating my own experiences in using it to you.

As for adjusting the 500 limit, that is just to account for all the graphics technology capability changes that have occurred since that number was first imposed. That 500 poly threshold comes from many years ago, yet even integrated graphics can handle that with hardly a thought these days. Remember that 500 poly threshold message used to be a warning in Trainz at one time and not an error, and that was in a time where graphics cards were far less capable then they are today. I don't mind that they changed it from a warning to an error but they should have accounted for general graphics technology changes when they did it and upped the threshold.

Bob
 
Chris (windwalkr) once said in TrainzDev that draw calls were more important than poly counts. Ideally, an asset should have just one draw call at the lowest poly LOD. Try doing that for a loco with umpteen attachments. :)

I'm somewhat curious that Trainz validation doesn't complain about excessive use of different materials. I'm sure that will come some day.

The 500 poly count limit doesn't bother me much since many assets look like bugs at that distance in Preview Asset. I notice it more when the surveyor/driver view goes to map view and especially if the final material doesn't have the same shading as earlier LODs. Making a boxy final LOD model is a bit painful.

PBR is getting much easier to understand although the tools such as the Substance series can be a challenge. I rarely use parallax although if Substance bakes it in the parameter file I will use it.

And, finally, if asset count on the DLS is some kind of expertise measure then I must be really dumb. What interests me is investigating these technologies and trying to pass on what I have learned.
 
@ Bob

Yep, I well remember when you had to totally revise and re-issue your procedural track(s) due to the PBR problem and felt sorry for you, but also very impressed that you didn't give up on fixing it.

I know what you're referring to regarding parallax paralysis. When TS19 first emerged, I made a simple test object (cylindrical log) just to see if I had the necessary software and knowledge to work with FBX/trainzmesh and PBR textures. My first attempt did produce an object that worked in Trainz, but its PBR textures with parallax were sliding all over the place, depending on view angle. The solution was to reduce the "strength" of the heightmap to such an extent that it may as well not have been there. A regular m.tbumptex version of the same model was as good looking as the repaired PBR, but saved a fair bit of filesize in the textures. So I put PBR on the shelf and have not yet returned to it. One of these days Alice, one of these days....

As for the 500 limit, I guess we will just have to respectfully disagree on the need to relax it. LOD is here to stay. The big gaming houses deal exclusively in PBR models, but the other day in Assassin's Creed, I saw a Spartan soldier's shield morph from a circle to a hexagon at 20 metres distance, so I know they are still saddled with strict LOD's, just like us. Whether the final threshold is 500 tri's or something more, is immaterial in my view. We will still need to make LOD meshes. I don't see any need to make different sized textures for multiple LOD's though. The automatic process of mip-mapping takes care of that. It certainly does in T:ANE. Is there something about PBR textures in TS19 that forces you to do that manually?


.
 
Last edited:
Just to clarify, the 500 triangle limit is for the lowest LOD on your model. How you achieve this is up to you, but it is strongly recommended that you have between 20% and 50% reduction for each level of LOD in your asset. The minimum is a 20% reduction, and there are definitely times where I have been at or close to the minimum reduction to get a LOD in at a reasonable distance...

However to show an example of one of my assets (not yet released, sorry) in the asset preview tool.

pwXak7u.jpg

Closest LOD

vAA2AKr.jpg

Somewhere around middle LOD

Py6KrnM.jpg

Lowest LOD. The wagon is the dot within that circle

There is absolutely no reason for your model to be over 500 triangles when it is simply a dot on the screen.

So there are two considerations for this lowest LOD that influence the poly count...

1) The silhouette of the object. You want to keep the silhouette, and preferably the general surface colours, the same.

2) The water reflections. Trainz uses the lowest LOD for water reflections (for performance reasons, reflections are very costly on performance), so you want to have enough polys in the lowest LOD to actually provide a decent water reflection.

For those curious, in relation to the reflection/etc stuff, this is what the lowest LOD on the wagon I mentioned before looks like when up close:

izD8Ums.jpg


But to recap. It is ESSENTIAL for all content to have some degree of LOD, as there are still limitations on how much a computer can render. Especially as we add in more and more features to Trainz. So you still need to make efficient content.

Regards
 
Hi Zec, Yep I must be doing something wrong then. All the models I have built for my route use LOD and at least to level LOD2, and I have encountered the same problem with all of them so far.

On my latest model LOD0 = 2232 polys, LOD1 = 1420 polys, LOD2 = 56 polys. This threw the 500 poly error for me. To get it to work I had to revise it to LOD0 = 2232, LOD1 = 498, LOD2 = 56. So something is amiss (me probably).

Here is the config file...

description "A GWR Coaling Stage"
mesh-table-lod-transition-distances 400

thumbnails
{
0
{
image "thumbnail.jpg"
width 240
height 180
}
}

mesh-table
{
lod0
{
mesh "coaling_stage_lod0.trainzmesh"
auto-create 1
lod-level 0
}

lod1
{
mesh "coaling_stage_lod1.trainzmesh"
auto-create 1
lod-level 1
}

lod2
{
mesh "coaling_stage_lod2.trainzmesh"
auto-create 1
lod-level 2
}
}

Any ideas? Anyone? I thought LOD0 = 2232 polys, LOD1 = 1420 polys, LOD2 = 56 polys would work, but it doesn't for me.

Am I misinterpreting the mesh-table-lod-transition-distances tag?

Any help would be appreciated.

John
 
Hi John
The good news is that this one is an easy fix :)

The mesh-table-lod-transition-distances tag is a list at which distance each LOD transition occurs (not counting changes to detail setting changes, which can reduce these distances). So for three LODs, you will need two values. As you have 1 value, only LOD0 and LOD1 are being calculated.

So for 3 levels of LOD, you would use a tag along these lines:


mesh-table-lod-transition-distances 400,800

Of course, the values you use will vary depending on your object :)

Hope this helps!
Zec
 
Whether the final threshold is 500 tri's or something more, is immaterial in my view. We will still need to make LOD meshes. I don't see any need to make different sized textures for multiple LOD's though. The automatic process of mip-mapping takes care of that. It certainly does in T:ANE. Is there something about PBR textures in TS19 that forces you to do that manually?

As I keep saying here, I am not against the use of LODs. They have their place and they serve their purpose.

Parallax changes a lot of things, and can sometimes have unpredictable effects, as I elaborated on in my last post to you. I think the best way to visualize the effect would be as follows:

1. Without parallax the texture is essential two dimensional paint with very little to no depth. Example: A brick wall is basically painted to look like the real thing but you can usually tell it isn't. This is not much different then .onetex materials in that way.

2. With parallax the texture is three dimensional and has depth. That brick wall now looks like a more real brick wall to the point the texture has become almost a structural element all its own and interacts with your mesh. This is very different then .onetex materials.

Why use PBR?

1. For that depth.

2. For much more realistic lighting and appearance. PBR materials, based on my extensive use of them, tend to look much better then .onetex materials do. Textures tend to look more realistic.

For more on the basics of PBR see: https://en.wikipedia.org/wiki/Physically_based_rendering

Bob
 
The problem MSGSapper, is that you only use one LOD for your 30k+ poly models. You need to start implementing LOD-levels into your assets, which takes hardly any time. Trainz is already slow, and LOD allows an object to be seen far away (Instead of it just cutting off while still visible), without rendering excess polys. As Tony said earlier, I think NV3 is just trying to make trainz more usable for all. All you need to do is use a simple decimate feature and 2-3 lod levels, and you've greatly helped thousands of trainz user around the world who have poor computers.
 
That parallax bug is in all games, there is no fix.

The first time I saw parallax textures was several years ago in Far Cry 4. It was used to make the stones in a house wall look 3D and I wondered why they always covered up the corners of the wall with a board. Now I know it was to prevent me ever seeing the effects of that fundamental problem.
 
The problem MSGSapper, is that you only use one LOD for your 30k+ poly models. You need to start implementing LOD-levels into your assets, which takes hardly any time. Trainz is already slow, and LOD allows an object to be seen far away (Instead of it just cutting off while still visible), without rendering excess polys. As Tony said earlier, I think NV3 is just trying to make trainz more usable for all. All you need to do is use a simple decimate feature and 2-3 lod levels, and you've greatly helped thousands of trainz user around the world who have poor computers.

Decimate is not simple on complex models at all! I have used it a number of times and the results can be rather unpredictable, especially when you need to reduce in 20% steps. Not everything that is sub-divided decimates well and you sometimes end up with gaps and holes without realizing it until you see it in Trainz. I have experienced this first hand in Blender, which is what I use, but apparently you have not.

You make these things sounds simple yet I only see two items from you on the DLS, and both of those are routes. On the other hand I am closing in fast to 3,000 items on the DLS, about a third of them currently build 4.6. The items you apparently object to of mine mostly came from CGTrader and that is the way they were designed by freelance professional mesh designers who generally sell to major gaming companies. If I hadn't bought them using my own money, since I wanted something more realistic for my routes then what is currently available, you wouldn't even have a chance to try them unless you purchased them using your own money and then making the effort to adapt them to Trainz yourself. Right now I am extremely pressed for time as my upgrade efforts are taking a lot more time for TRS19 then any previous major Trainz version, so don't have the time or inclination at present to try to do multiple LODs for all of those highly complex items. Perhaps in time I can revisit those items and do that - but not now. I do make an effort however to be up front with each item I upload to the DLS that they are high poly and in most cases give you the poly count so you can decide to use it or not, which is always your prerogative.

Bob
 
You make these things sounds simple yet I only see two items from you on the DLS, and both of those are routes. On the other hand I am closing in fast to 3,000 items on the DLS, about a third of them currently build 4.6. The items you apparently object to of mine mostly came from CGTrader and that is the way they were designed by freelance professional mesh designers who generally sell to major gaming companies.

Hi Bob
Just to clarify on the subject of LODs and stock models.

As every game has different LOD requirements, and often have different LOD requirements for different object usages (ie objects that are seen up close have more subtle LODs, whilst objects that are mostly seen from a distance may have more agressive LOD), very few stock models will include LOD. It's simply not worth the effort when the buyer is going to have to re-do the LOD anyway. I'm not saying all won't include it, but many won't.

Instead the LOD generation is up to the buyer of the mesh. I've known a few professional artists (both freelance, and involved with game studios directly), and talked with quite a few more, and this is fairly standard in the industry. When you buy a stock model, you generate from that a suitable LOD set for your game. Some may actually not use the stock model as-is, and instead make a lower poly version that becomes their highest LOD, especially if there are polygon limitations in a scene.

But the generation of the LODs is far less than the time it takes to make the high detail model/texture itself (plus then making LODs!). Substantially less in most cases, since you aren't spending the time actually making the object.

I've recently been working with a bit of stock artwork, including LOD generation, myself. There is a definite saving in time for creating the content when all I need to do is configure materials, maybe optimize a couple of parts, and then make some LODs using available tools (in 3DSMax, you can do a lot with editable poly, and simply removing edges and vertices, let alone with the optimize tool).

So yes, you are buying the model without LOD. But any game studio buying that model is buying it with the expectation of making the LOD themselves to suit their game engine...

Regards
 
Hello Bob. I didn't mean to offend you or be rude. And I apologize if I was. But I want to address some of your your points.

I do not have much experience with Importing Trainz assets, Bob (As I just imported my first animated lod object), but I have much experience with 3d modeling in blender. You point about comparing your 3000 assets to my 2 is irrelevant, as it have nothing to do with my 3d modeling skills, and I'm not required to upload my models to the DLS to make a point.

Also your 3000 assets are explainable because you were not the one who modeled them. I make all my assets totally from scratch, and it can take a while.

One more suggestion would be to use the newly added un-subdivide feature (implemented in blender 2.9), designed to remove edges that were the result of a subdivision operation. https://docs.blender.org/manual/en/2.90/modeling/meshes/editing/edge/unsubdivide.html

I hope this helps.
 
Good morning gentlemen, I am not writing here for the debate (we already have one on this topic in the Spanish forum); Just say that I agree with N3V's position on it and with those who support the limitation of lods.
I want to ask N3V for a logo to include in the thumbnails of those who create content with lods (we upload it to DLS or not), it could be added to the TRS 2019 logo or individual.


Greetings to all, Javier
 
I do not have much experience with Importing Trainz assets, Bob (As I just imported my first animated lod object), but I have much experience with 3d modeling in blender. You point about comparing your 3000 assets to my 2 is irrelevant, as it have nothing to do with my 3d modeling skills, and I'm not required to upload my models to the DLS to make a point.

No, its not irrelevant at all, at least in your case. In your case I do not know you, or your background, and your profile says virtually nothing of any real consequence about you, or even your real name for that matter. I have ran into too many "experts" on the Internet over the years that are anything but, and have had little to no practical field experience, and not just in Trainz, but in my various professional lives. With so little information on you, how can I judge, besides taking your word for it, that you have "been there, done that" and you know what you are talking about? When you take me to task for my work, the only way I can evaluate your degree of competence, given the lack of background information on you that I can check out, is to see what work you have done in Trainz. As someone else pointed out in an earlier reply, numbers aren't everything, and I entirely agree with that. They do however provide the following really useful information on you so I can judge the merits of what you are telling me I should do in Trainz:

1. The quality of your work that I can actually see.
2. The breadth of your work that I can actually see.
3. The sophistication of your work that I can actually see.
4. What level of Trainz you are currently designing for that I can actually see.
5. How well you support your older content, or if you do at all that I can actually see.
6. That you have created similar content using what you are suggesting that I do that I can actually see.

In this case what you have on the DLS leaves me no way to discern any of the above, as you have contributed zero items of structures, tracks, scenery items, vehicles, etc to the DLS under your own name of dundun92. People like gawpo50, dinorius_redundicus, pencil42, whitepass and pcas1986, who have replied here as well, I am well familiar with and their body of work, and have used their great content on my routes. I greatly respect their work and listen to whatever they have to say, even though I may not agree with it. In your case I do not know you or am familiar with your work at all.

Also your 3000 assets are explainable because you were not the one who modeled them. I make all my assets totally from scratch, and it can take a while.

You are flat wrong there, which makes me wonder if you have really done your homework on me given that you can check out and evaluate my items on the DLS to see what I have done and how I did it? First of all I don't develop content just for contents sake. My priority is creating content where needed for use on my high end routes. In most cases I only create items where there is nothing comparable in quality readily available on the DLS. I have also collaborated with a number of really great Trainz developers out there over the years such as Dave Snow, Ben Dorsey and Vulcan. I will be the first to admit that my forte is not CAD as it was with those three people I named.

Dave and Ben were both professional CAD people before they retired. Vulcan was a mechanical or civil engineer, I can't remember which, who used CAD extensively in his work prior to his retirement. I am getting better and better with time, but I am not sure I will ever be at their level, so I do what I can, however I can, to get the content I need for my routes. Of course many people are using my content and like it. My routes are high end, and I make that very clear in my dedicated support threads for each route I have. BTW Dave has 7178 content items on the DLS and Ben has 6776 content items on the DLS. The breadth and quality of their work is stunning and they have truly beautiful items of which I use a lot of on my routes. I am very grateful to them for their efforts, and really enjoyed working with them on the occasions where that happened. What is remarkable is that is to the best of my knowledge, having worked with them and used their content extensively, not one of the items they created has multiple LODs, yet they form one of the major backbones of most of the quality routes out there on the DLS. Something to consider.....

Bob
 
Last edited:
Hi Bob
Just to clarify on the subject of LODs and stock models.

As every game has different LOD requirements, and often have different LOD requirements for different object usages (ie objects that are seen up close have more subtle LODs, whilst objects that are mostly seen from a distance may have more agressive LOD), very few stock models will include LOD. It's simply not worth the effort when the buyer is going to have to re-do the LOD anyway. I'm not saying all won't include it, but many won't.

Instead the LOD generation is up to the buyer of the mesh. I've known a few professional artists (both freelance, and involved with game studios directly), and talked with quite a few more, and this is fairly standard in the industry. When you buy a stock model, you generate from that a suitable LOD set for your game. Some may actually not use the stock model as-is, and instead make a lower poly version that becomes their highest LOD, especially if there are polygon limitations in a scene.

But the generation of the LODs is far less than the time it takes to make the high detail model/texture itself (plus then making LODs!). Substantially less in most cases, since you aren't spending the time actually making the object.

I've recently been working with a bit of stock artwork, including LOD generation, myself. There is a definite saving in time for creating the content when all I need to do is configure materials, maybe optimize a couple of parts, and then make some LODs using available tools (in 3DSMax, you can do a lot with editable poly, and simply removing edges and vertices, let alone with the optimize tool).

So yes, you are buying the model without LOD. But any game studio buying that model is buying it with the expectation of making the LOD themselves to suit their game engine...

Regards

Zec:

That was interesting information and background on the subject. Thank you for that.

I think one of the downsides of purchasing stock models, as I have, is that if you are not at the same level of expertise as the original designer, which frankly I am not, you may be at a disadvantage on being able to create those LODs from such sophisticated models. If it were easy, I would have already done it. I guess for now, those who have a graphically challenged computer system may have to give some of my latest content a pass.

BTW I do not my best to try to purchase the lowest poly version of a quality or realistic item from CGTrader that I can. Unfortunately, what CGTrader defines as low poly is no where the same as your definition at N3V in the vast majority of cases. I purchase their meshes, adapt them for TRS19 as best I can, to include generating PBR textures, and in a number of cases provide Trainz particle effects and animation when desired or I could do it.

As a side note, the royalty free license I purchased these items under gave me the right to may them payware, but I did not want to go that route because of all the issues involved, so Trainz users get to benefit for free from what cost me good money. Before folks criticize my work you should reflect on the fact that the items might not be available to you otherwise, as I purposely tried to purchase models from CGTRader that were realistic and filled currently existing quality gaps on the DLS when it comes to TRS19. In essence you are getting near payware TRS19 quality items for free that you would normally have to purchase from folks like Jointed Rail.

I have taken great pains to make sure people are fully aware of what is involved with my content, as I post poly counts in the description these days for my items, and to often tell you where it came from in the case of the commercial items (see the license section of the config.txt files). My routes, where all the content I have purchased is intended for, are very high end routes and have been for some years. Again I go to great pains to ensure folks know what they are getting before they download the routes, assuming they bother to check out of my support official support threads for those routes. As an example in the case of my Cattaraugus Creek & Lake Erie 1950s route Official Support Thread for TRS19 I say:

"Minimum requirements are TRS19 with all hot fixes applied, all free DLCs downloaded and installed, and you must have your Shader quality set to ULTRA. Uses my TRS19 PBR Parallax procedural track with animated junctions, 3D PBR ground Textures and TurfFX/Clutter effects."

Of course they can try it on their system at lower settings and see how well it works, or doesn't, but you won't experience the full effect of what I have done at those lower settings. My routes are for people like me who want the best and most realistic freeware route available. This approach obviously cuts down my downloads of my routes, but I am not in it for the quantity of downloads. Based on user comments over the years I think my high end routes compare favorably against payware ones, but unlike those, they are free.

I also provide a YouTube video run through of the route so they judge for themselves if their system can handle the route.

Realizing that folks may well be left behind I have made the choice to not "new version" previous iterations of that route. When I update my routes to a new major Trainz release, such as TRS19, I do it as a new KUID. This allows the older versions to stick around for those who have machines that can't handle the current level of graphics. I do not continue to provide support however for those old routes, and have always made that clear, but at least they have something they might be able to use.

To see how I handle this for one of my TRS19 routes see this forum thread at:

https://forums.auran.com/trainz/sho...k-amp-Lake-Erie-1950s-Official-Support-Thread

Bob
 
Last edited:
Since I know folks will ask, and it is only fair to do so since I have published that information for two others here, here is my current breakdown of content items of all types on the DLS:

Total items on the DLS of all versions: 2979

Breakdown:

TRS19: 1250
T:ANE: 37
TRS2012: 655
TRS2009/2010: 1039

I am always in the process of migrating and improving older content versions to newer Trainz versions which explains why there is almost no T:ANE items left now, nor anything earlier then 2009/2010. As time goes by, and where needed, I will update other older items of mine as well to more current versions. The few remaining T:ANE items are there for a reason, such as the Protrack, and will stay as they are. When it comes to my content items on the DLS I am not a "fire and forget" sort of guy and try to keep my stuff current as much as I can and time allows.

BTW I doubt I will be updating my content or routes beyond build version 4.6. This is just getting to hard and time consuming and its fast approaching not being fun anymore.

Bob
 
Back
Top