Tutorial: Getting the most from PBR and why you should be using it in TRS19

MSGSapper

Trainz route developer
Tutorial: Getting the most from PBR and why you should be using it in TRS19

Many users, and some content developers, don't seem to understand what Physically Based Rendering (PBR) is, why they should be using it, and how to get the most out of it. I have created this tutorial to address these points. PBR was introduced into TRS19 for the first time in Trainz history and is a revolutionary step forward for Trainz in general.

Caveat: This tutorial is directed towards those of you who have a computer system capable of running TRS19 with the PBR Shader set to Ultra, but may not be doing so at present for some reason. For more on the minimum TRS19 hardware requirements for various levels of computer graphics see the following link:

http://www.trainzportal.com/blog/view/trs2019-hardware-requirements

What is PBR?

Physically Based Rendering (PBR) is an approach in computer graphics that seeks to render graphics in a way that more accurately models the flow of light in the real world. Many PBR pipelines have the accurate simulation of photorealism as their goal. Shaders may be used to implement PBR principles. PBR realistically portrays light and shadows in real time eliminating the old requirement for structures and other content items to contain some type of shadow. Bottom line: To get the most realistic and beautiful graphics ever in TRS19 you will need to use PBR. For more on PBR see:

https://en.wikipedia.org/wiki/Physically_based_rendering

and

http://www.trainzportal.com/blog/view/Introducing-Physically-Based-Rendering

What is Parallax?

Parallax mapping (also called offset mapping or virtual displacement mapping) is an enhancement of the bump mapping or normal mapping techniques applied to textures in 3D rendering applications such as TRS19. To the end user, this means that textures such as stone walls will have more apparent depth and thus greater realism with less of an influence on the performance of the simulation. It is this parallax mapping that allows a PBR content item to appear to have depth (ie; 3D). For content developers the parallax effect is achieved by including a height map in the alpha channel of the normal texture map file. As an example all PBR ground textures use parallax mapping. For more on Parallax see:

https://en.wikipedia.org/wiki/Parallax_mapping

For content developers see this link for more information on texture mapping requirements:

https://forums.auran.com/trainz/sho...BR-ground-textures-using-Materialize-and-GIMP

Do all PBR content items use parallax?

No. Parallax would not be appropriate for all content items. Anything that should not have depth should not use parallax. Parallax will be used wherever and whenever 3D depth is needed for that item.

Why should I be using PBR with parallax?

PBR, and the 3D effects that come with it, is one of the major reasons that most people purchased TRS19, including me. If you have PBR items or textures that use parallax, and are not having your shader set to Ultra, then you are really missing out on what the creator of that item intended and the best look for that item. If you want to see content items that have been designed by their creators to have realistic lighting, shadows and depth then you will want to set up TRS19 correctly for PBR parallax.

What does it take to get the full PBR parallax effect in Trainz?

In TRS19 you must set the shader to Ultra as shown in the screenshot image below:

Ultra-Shader-SS-1.jpg


What if I don't want to use PBR parallax?

Well, you certainly don't have to, but if you opt not to, then many PBR items will not look right. As an example my TRS19 SAP Track U.S. 132LB SG series track content items will not look right at all. As another example almost all the PBR ground textures will look flat and not as they should, should you opt to not use PBR parallax.

Can my machine handle the Ultra Shader?

PBR in general is graphically performance intensive. Add to that the graphics hungry TRS19 and you can see frame rates that may drop considerably if you have a sub-par or mediocre graphics card. For best results a Nvidia 1060 or above graphics card, or its equivalent, is best. Lower level graphics cards can be used but performance frame rates will suffer. If you have a lower level graphics card you can cut back on the Maximum Draw Distance and some of the other graphics settings to offset the performance hit of the Ultra shader as shown below in this screenshot:

Max-draw-distance.jpg


Bob
 
Last edited:
I would like recommendations for available (eg. assets) grasses, ground clutter, and so on that I can readily employ on my routes. Maybe you can suggest some.
 
Sorry as a content creator there is a cost to creating only for TS19 and it needs an entire new workflow. You have said that I should be using it but you haven't really given explained and given any concrete reasons why it is worth the switch. Especially as it needs a higher end graphic card. ie Intel integrated graphics wouldn't cut it.

Cheerio John
 
I would like recommendations for available (eg. assets) grasses, ground clutter, and so on that I can readily employ on my routes. Maybe you can suggest some.

Whoa! That's a tall order as there are a number of them. As a general rule almost anything specifically created for build 4.6 (TRS19) or above most likely will have PBR support. That is certainly true for all my build 4.6 content items (554 items and counting as of today). Also another good indicator to look for is if the keyword of PBR is in either the title or description for the content item.

Bob
 
Sorry as a content creator there is a cost to creating only for TS19 and it needs an entire new workflow. You have said that I should be using it but you haven't really given explained and given any concrete reasons why it is worth the switch. Especially as it needs a higher end graphic card. ie Intel integrated graphics wouldn't cut it.

Cheerio John

Hmmm, I thought I had, but let's address it further. It all comes down to two questions for a TRS19 content creator:

1. Do I want my content items to realistically portray light and shadows in real time?

2. Do I want my content item textures to have depth and appear 3D?

If the answer to both of the above is no, then certainly don't design for PBR.

Here is a side by side screenshot comparison of my build 4.6 (PBR Parallax) <kuid:439337:103196> TRS19 SAP Track U.S. 132LB SG, FB, TP with Spikes, Shiny and build 4.2 (non-PBR) <kuid2:439337:102580:1> SAP Protrack U.S. 132LB SG, FB, TP with Spikes, Shiny track of similar type:

PBR-Parallax-Comparison.jpg


The track on the left has ballast that is 3D, shadows and more complex realistic looking ties. The PBR parallax make all the difference here. The track on the right, while fairly good, has none of that. My question to you: Which do you prefer, or do you think users will prefer, if they have a graphics card that can support it?

Yes, the workflow is indeed different. But so was going from regular track design to procedural track in earlier versions of Trainz, as an example. It just takes some getting used to, as with any new change. Once you have got the hang of it however its not all that hard to do. As for myself, everything I am doing now is for PBR (554 items and counting for build 4.6 as of today). TRS19 pointed to the future, and that future is 3D content items from this point forward. Again, nothing new here. Every new major Trainz version has required us content developers to adapt to changes and new ways of doing things. TRS19 is no different in that way. It is the price of demand for realism and a competitive game/simulation market that is constantly pushing the graphics envelope.

Integrated graphics have never been recommended for Trainz for many versions, and that is certainly the case now. Trainz is a very serious 3D/Virtual world simulation which takes some real graphics horsepower to get the most out of it. Trainz is not special in this regard. The same can be said of many games on the market currently, at least based on what I see in Steam. Almost any great 3D/Virtual world game is going to take similar horsepower.

BTW Blender 2.80, with its node support, makes PBR development a lot easier the Gmax. I used to do things in Gmax, but Blender has that aging app beat hands down, and its totally free and well supported, which is why I made the change to it. Has it got a learning curve? Hell, yes, but so did GMax when I first had to learn it. Better tools make all the difference in content creation, and Blender is a very serious professional tool indeed, and you can't beat the price!

For those who want to know, I have a Nvidia GTX 1080 graphics card (from EVGA) on my system and it's great with really decent frame rates!

Bob
 
Last edited:
I remember both you guys (you and john) LOL and yeah MSG you are right...

When I left trainz 8 years ago it was because the game engine was stuck and sucked. I went to creating for various games that used PBR and got to know Substance and now I came BACK to trainz mainly because of the new possibilities of creation using PBR.

Now, one of the main things I found when I got trs2019 was lack of PBR content. I mean I like intermodal and have yet to find a container yard over build 2.5. Now I aim to change that, but that's a ways off since I have to get trs's import and export and most importantly scripting down pat. But I agree with you man, PBR is the only way to go and those who don't like it should really stick to trs12. Just my opinion though :)
 
I remember both you guys (you and john) LOL and yeah MSG you are right...

When I left trainz 8 years ago it was because the game engine was stuck and sucked. I went to creating for various games that used PBR and got to know Substance and now I came BACK to trainz mainly because of the new possibilities of creation using PBR.

Now, one of the main things I found when I got trs2019 was lack of PBR content. I mean I like intermodal and have yet to find a container yard over build 2.5. Now I aim to change that, but that's a ways off since I have to get trs's import and export and most importantly scripting down pat. But I agree with you man, PBR is the only way to go and those who don't like it should really stick to trs12. Just my opinion though :)


Agree completely
 
Whoa! That's a tall order as there are a number of them. As a general rule almost anything specifically created for build 4.6 (TRS19) or above most likely will have PBR support. That is certainly true for all my build 4.6 content items (554 items and counting as of today). Also another good indicator to look for is if the keyword of PBR is in either the title or description for the content item.

Bob


Sorry, I was referring to textures. I am not interested in spending an hour trying to make something look like grass. The interface is too arcane. Do most of them have PBR in the title?
 
... thankz a lot msgsapper ...

... thankz for the technical explanation ... i'm not a content developer or creator, just a naive, impulsive user, who likes the look of a simulated realism ... and i'm glad with your recommendations and comparisons .. thankz for all your efforts and most respect for all your creations and tuts ...
grtz
daveric
 
The superior rendering of TRS19, especially 3D textures, is what persuaded me the take the plunge and start developing a route. TRS19 seemed to go a long way toward bringing train simulation graphics up to the level of AAA games.

H.Fithers
 
Hmmm, I thought I had, but let's address it further. It all comes down to two questions for a TRS19 content creator:

1. Do I want my content items to realistically portray light and shadows in real time?

2. Do I want my content item textures to have depth and appear 3D?

If the answer to both of the above is no, then certainly don't design for PBR.

Here is a side by side screenshot comparison of my build 4.6 (PBR Parallax) <kuid:439337:103196> TRS19 SAP Track U.S. 132LB SG, FB, TP with Spikes, Shiny and build 4.2 (non-PBR) <kuid2:439337:102580:1> SAP Protrack U.S. 132LB SG, FB, TP with Spikes, Shiny track of similar type:

PBR-Parallax-Comparison.jpg


The track on the left has ballast that is 3D, shadows and more complex realistic looking ties. The PBR parallax make all the difference here. The track on the right, while fairly good, has none of that. My question to you: Which do you prefer, or do you think users will prefer, if they have a graphics card that can support it?

Yes, the workflow is indeed different. But so was going from regular track design to procedural track in earlier versions of Trainz, as an example. It just takes some getting used to, as with any new change. Once you have got the hang of it however its not all that hard to do. As for myself, everything I am doing now is for PBR (554 items and counting for build 4.6 as of today). TRS19 pointed to the future, and that future is 3D content items from this point forward. Again, nothing new here. Every new major Trainz version has required us content developers to adapt to changes and new ways of doing things. TRS19 is no different in that way. It is the price of demand for realism and a competitive game/simulation market that is constantly pushing the graphics envelope.

Integrated graphics have never been recommended for Trainz for many versions, and that is certainly the case now. Trainz is a very serious 3D/Virtual world simulation which takes some real graphics horsepower to get the most out of it. Trainz is not special in this regard. The same can be said of many games on the market currently, at least based on what I see in Steam. Almost any great 3D/Virtual world game is going to take similar horsepower.

BTW Blender 2.80, with its node support, makes PBR development a lot easier the Gmax. I used to do things in Gmax, but Blender has that aging app beat hands down, and its totally free and well supported, which is why I made the change to it. Has it got a learning curve? Hell, yes, but so did GMax when I first had to learn it. Better tools make all the difference in content creation, and Blender is a very serious professional tool indeed, and you can't beat the price!

For those who want to know, I have a Nvidia GTX 1080 graphics card (from EVGA) on my system and it's great with really decent frame rates!

Bob

>Getting the most from PBR and why you should be using it in TRS19


Unfortunately there are more machines out there with integrated graphics than with a GPU that scores over 10,000 on 3D passmark score. Both TANE and TS19 will run on integrated graphics of 4000 series or more with the right content. You are quite correct about TS12 many content creators including myself still create at that level in order not to cut off those users with lower end GPUs.

The workflow with Blender 2.79b is one a lot of content creators are familiar with, 2.81 and FBX is a major change.

I accept that some content creators can do wonderful things with PBX etc but there are many without the income to support the latest and greatest computers and GPUs.

The older stuff still works and still has a place in the world and nothing you have stated so far has convinced me that I need to move to it and ditch all the none PBX content.

In time TS19, higher end GPUs and PBR/FBX will become more the normal but for the moment I think we are still at the point where lots of content isn't PBR, many don't have the horsepower to run TS19 at the right settings so it isn't main stream.

As mrscsi commented there is some PBR content but not that much. It is very much niche at the moment.

Cheerio John
 
Note: TRS19 only uses PBR, all old non-PBR textures are converted to PBR and some like window glass do not look good at all. Also you get parallax on all PBR if you have a Alpha in the normal.
 
Note: TRS19 only uses PBR, all old non-PBR textures are converted to PBR and some like window glass do not look good at all. Also you get parallax on all PBR if you have a Alpha in the normal.

That's interesting, but I am curious how that could be possible as many older content items have no normal files, and none have parameter files, all of which are necessary for PBR. I cannot imagine how they would default those, unless they are generating them on the fly?

You are correct to a point. All normal texture files have an alpha channel but you can leave it pure white instead of filling it with a height map. This does make a difference, which I have seen in practice. For more seem my tutorial at:

https://forums.auran.com/trainz/sho...BR-ground-textures-using-Materialize-and-GIMP

Bob
 
That's interesting, but I am curious how that could be possible as many older content items have no normal files, and none have parameter files, all of which are necessary for PBR. I cannot imagine how they would default those, unless they are generating them on the fly?

You are correct to a point. All normal texture files have an alpha channel but you can leave it pure white instead of filling it with a height map. This does make a difference, which I have seen in practice. For more seem my tutorial at:

https://forums.auran.com/trainz/sho...BR-ground-textures-using-Materialize-and-GIMP

Bob


Many assets do not have an alpha channel, deleting it makes the texture file 25% smaller and will no visible effect in TANE and lower versions of the game.

Cheerio John
 
Many assets do not have an alpha channel, deleting it makes the texture file 25% smaller and will no visible effect in TANE and lower versions of the game.

Cheerio John

I should have said "All PBR normal files have an alpha channel"

Bob
 
Sorry, I was referring to textures. I am not interested in spending an hour trying to make something look like grass. The interface is too arcane. Do most of them have PBR in the title?

Try these 86 from me. All are PBR with parallax:

<kuid:439337:101980> PBR Crop Field 7c - Truly Seasonal
<kuid:439337:102108> PBR Arid 1
<kuid:439337:102086> PBR Asphalt Pavement 3
<kuid:439337:101982> PBR Crop Field 8 - Truly Seasonal
<kuid:439337:102110> PBR Arid 2
<kuid:439337:101921> PBR Grass 13 - Truly Seasonal
<kuid:439337:102113> PBR Arid 3 - Truly Seasonal
<kuid:439337:101923> PBR Grass 14 - Truly Seasonal
<kuid:439337:102115> PBR Arid 4 - Truly Seasonal
<kuid:439337:101925> PBR Grass 15 - Truly Seasonal
<kuid:439337:102245> PBR Arid 5 - Truly Seasonal
<kuid:439337:102080> PBR Asphalt Pavement 1
<kuid:439337:102090> PBR Beach Sand 2
<kuid:439337:102922> PBR Ballast 1
<kuid:439337:102082> PBR Asphalt Pavement 2
<kuid:439337:102078> PBR Concrete Pavement 2
<kuid:439337:103422> PBR Ballast 2
<kuid:439337:102088> PBR Beach Sand 1
<kuid:439337:102029> PBR Brick Pavement 1
<kuid:439337:102225> PBR Garbage 1
<kuid:439337:102033> PBR Brick Pavement 2
<kuid:439337:102035> PBR Brick Pavement 3
<kuid:439337:102237> PBR Garbage 3
<kuid:439337:102045> PBR Coal 2
<kuid:439337:102130> PBR Coal 3
<kuid:439337:102012> PBR Crop Field 9 - Truly Seasonal
<kuid:439337:102076> PBR Concrete Pavement 1
<kuid:439337:102100> PBR Forest Ground 1 - Truly Seasonal
<kuid:439337:101972> PBR Crop Field 7 - Truly Seasonal
<kuid:439337:102104> PBR Forest Ground 3 - Truly Seasonal
<kuid:439337:101976> PBR Crop Field 7a - Truly Seasonal
<kuid:439337:102106> PBR Forest Ground 4 - Truly Seasonal
<kuid:439337:101978> PBR Crop Field 7b - Truly Seasonal
<kuid:439337:102240> PBR Garbage 4
<kuid:439337:101984> PBR Crop Field 8a - Truly Seasonal
<kuid:439337:101986> PBR Crop Field 8b - Truly Seasonal
<kuid:439337:101988> PBR Crop Field 8c - Truly Seasonal
<kuid:439337:102143> PBR Grass 22 - Truly Seasonal
<kuid:439337:102015> PBR Crop Field 9a - Truly Seasonal
<kuid:439337:102021> PBR Crop Field 10 - Truly Seasonal
<kuid:439337:102023> PBR Crop Field 10a - Truly Seasonal
<kuid:439337:102017> PBR Crop Field Corn 1 - Truly Seasonal
<kuid:439337:101996> PBR Crop Field Corn - Truly Seasonal
<kuid:439337:101990> PBR Crop Field Cotton - Truly Seasonal
<kuid:439337:101994> PBR Crop Field Cucumbers - Truly Seasonal
<kuid:439337:102001> PBR Crop Field Grain 1 - Truly Seasonal
<kuid:439337:102027> PBR Crop Field Grain 2 - Truly Seasonal
<kuid:439337:101935> PBR Grass 20 - Truly Seasonal
<kuid:439337:101999> PBR Crop Field Grain - Truly Seasonal
<kuid:439337:102138> PBR Gravel 10
<kuid:439337:102010> PBR Crop Field Hay - Truly Seasonal
<kuid:439337:102025> PBR Crop Field Strawberries - Truly Seasonal
<kuid:439337:102102> PBR Forest Ground 2 - Truly Seasonal
<kuid:439337:102037> PBR Mud 5 - Truly Seasonal
<kuid:439337:102229> PBR Garbage 2
<kuid:439337:102039> PBR Mud 6 - Truly Seasonal
<kuid:439337:101527> PBR Grass 11 - Truly Seasonal
<kuid:439337:101919> PBR Grass 12 - Truly Seasonal
<kuid:439337:104784> PBR Grass 13a - Truly Seasonal
<kuid:439337:101927> PBR Grass 16 - Truly Seasonal
<kuid:439337:101929> PBR Grass 17 - Truly Seasonal
<kuid:439337:101931> PBR Grass 18 - Truly Seasonal
<kuid:439337:101933> PBR Grass 19 - Truly Seasonal
<kuid:439337:102141> PBR Grass 21 - Truly Seasonal
<kuid:439337:104182> PBR Rock Face 5
<kuid:439337:102134> PBR Gravel 8
<kuid:439337:102136> PBR Gravel 9
<kuid:439337:102041> PBR Mud 7 - Truly Seasonal
<kuid:439337:104172> PBR Rock Face 1
<kuid:439337:104174> PBR Rock Face 2
<kuid:439337:104177> PBR Rock Face 3
<kuid:439337:104180> PBR Rock Face 4
<kuid:439337:102094> PBR Sand and Pebbles 1
<kuid:439337:102123> PBR Sand and Pebbles 2
<kuid:439337:102125> PBR Sand and Pebbles 3
<kuid:439337:102127> PBR Sand and Pebbles 4
<kuid:439337:102288> PBR Scrap 1
<kuid:439337:102291> PBR Scrap 2
<kuid:439337:102293> PBR Scrap 3
<kuid:439337:102096> PBR Soil 1 - Truly Seasonal
<kuid:439337:102098> PBR Soil 2 - Truly Seasonal
<kuid:439337:102145> PBR Water 1
<kuid:439337:101969> PBR White Water 1
<kuid:439337:102117> PBR Woodchips 1
<kuid:439337:102119> PBR Woodchips 2
<kuid:439337:102121> PBR Woodchips 3

Bob
 
I like the looks of the PBR textures and have one or two used in my route. I would use more but run into visual anomalies with them. When placing a building on PBR textures the building looks as though it is floating. No amount of fiddling can remove that effect.

I tried using PBR ballast and had to spend hours fixing the mess it created. How does one use PBR with track?

Randall
 
Back
Top