For some time now, years in fact, I have experimented with larger and larger models for Open Rails. Often many approach 100K+ polygons. In the old days with MSTS, where polygon count was much lower/smaller we could often use PolyMaster to create LODs. But this only worked if you had NO subobjects in your unLODed exported model.
If subobjects came into play you had do the hard work of creating LODs inside your modelling program by either deleting polygons or reducing polygons for any given LOD.
But as models get bigger and bigger, I start to wonder about the size of the exported model with multiple LODs, not to mention the effort given to culling/reducing the number of polygons. Essentially the more LODs you have, the size of the exported model is going to increase, and this will be substantial if the initial LOD has many polygons because of all the detail that you want close up to the model in question. At runtime, your model without LODs had for example 100k polygons to load up into the sim. But if you append LODs to that model, you might be easily loading 200K polygons in total. This consumes more resources at runtime, including the time to load that model and the memory it occupies.
Given the understanding that at runtime it is desirable from a performance perspective to have less polygons to display with distance, and hence the value of LODs, I think this is only really worth the effort with a model that is already much smaller than 100k polygons in the first place. LODs might be worth the effort for something like an engine, as culling things that might be polygon intensive close up, can be removed at distance without much visual impact. Short of reducing that engine to a simple box(!), the exported model will consume a lot of resources if LODs are included.
With things like rolling stock, I am not sure what to do. You can remove couplers, maybe reduce the number of polygons in your trucks/wheels, but the basic shape needs to be visible for quite a distance. That means your exported model will have a higher polygon count with LODs attached at runtime.
For fun I just reduce the number of wagons in consists, especially if they are varied, that means NO duplicates in the consist. This helps with performance in the sim. It also means the only way to "enjoy" 50-100 wagons attached to an engine is for ALL those wagons to be exactly the same. That wears thin pretty quickly from a visual perspective, IMHO.
I have often wished that for OR specific use, that a method be available to somehow allow for the subtraction of items in the hierarchy in the matrix section of the shape file so that at runtime extra explicit LODs would not be required. You would construct your model with this in mind such that a small text file would indicate what items in the matrix of the shape file should be displayed for a given distance. This would insure that your exported model size would stay at the SAME size for the first LOD, eg 2000 meters, regardless of how many distance levels you decided to have with NO increase in the exported model size required. It also means at runtime your 100K+ polygon model would only be seen/calculated up close, and less polygons would be displayed according to your wishes without the need for more polygons to be attached to your exported model for each LOD you appended. Perhaps the drawback would be MORE draw calls when up close, but those draw calls would be subtracted the farther away the model was in your field of view, this would be especially convenient for rolling stock, where with a 100 plus wagon consist you could shed many draw calls, hence improve performance in the sim without having to increase the loading/memory use that LODs demand..
Sorry for the ramble, but for the experienced modellers in this forum, what are your thoughts?
Thanks,
Steve
If subobjects came into play you had do the hard work of creating LODs inside your modelling program by either deleting polygons or reducing polygons for any given LOD.
But as models get bigger and bigger, I start to wonder about the size of the exported model with multiple LODs, not to mention the effort given to culling/reducing the number of polygons. Essentially the more LODs you have, the size of the exported model is going to increase, and this will be substantial if the initial LOD has many polygons because of all the detail that you want close up to the model in question. At runtime, your model without LODs had for example 100k polygons to load up into the sim. But if you append LODs to that model, you might be easily loading 200K polygons in total. This consumes more resources at runtime, including the time to load that model and the memory it occupies.
Given the understanding that at runtime it is desirable from a performance perspective to have less polygons to display with distance, and hence the value of LODs, I think this is only really worth the effort with a model that is already much smaller than 100k polygons in the first place. LODs might be worth the effort for something like an engine, as culling things that might be polygon intensive close up, can be removed at distance without much visual impact. Short of reducing that engine to a simple box(!), the exported model will consume a lot of resources if LODs are included.
With things like rolling stock, I am not sure what to do. You can remove couplers, maybe reduce the number of polygons in your trucks/wheels, but the basic shape needs to be visible for quite a distance. That means your exported model will have a higher polygon count with LODs attached at runtime.
For fun I just reduce the number of wagons in consists, especially if they are varied, that means NO duplicates in the consist. This helps with performance in the sim. It also means the only way to "enjoy" 50-100 wagons attached to an engine is for ALL those wagons to be exactly the same. That wears thin pretty quickly from a visual perspective, IMHO.
I have often wished that for OR specific use, that a method be available to somehow allow for the subtraction of items in the hierarchy in the matrix section of the shape file so that at runtime extra explicit LODs would not be required. You would construct your model with this in mind such that a small text file would indicate what items in the matrix of the shape file should be displayed for a given distance. This would insure that your exported model size would stay at the SAME size for the first LOD, eg 2000 meters, regardless of how many distance levels you decided to have with NO increase in the exported model size required. It also means at runtime your 100K+ polygon model would only be seen/calculated up close, and less polygons would be displayed according to your wishes without the need for more polygons to be attached to your exported model for each LOD you appended. Perhaps the drawback would be MORE draw calls when up close, but those draw calls would be subtracted the farther away the model was in your field of view, this would be especially convenient for rolling stock, where with a 100 plus wagon consist you could shed many draw calls, hence improve performance in the sim without having to increase the loading/memory use that LODs demand..
Sorry for the ramble, but for the experienced modellers in this forum, what are your thoughts?
Thanks,
Steve
Comment