ORMT - Sessions Open Rails Management Team
#41
Posted 29 October 2023 - 01:15 AM
Is there any topic that you would like ORMT to discuss?
#42
Posted 29 October 2023 - 01:47 AM
In minecraft you have to place torches to prevent hostile Mobs spawning in low light levels. A minecraft scene may have a hundred torches with out loss of performance. (static light sources) I bet these static lights are limited or fudged in some way, but the effect is still gorgeous.
I realise that getting a dev to implement things is a problem, but are there not ready made chunks of monogame code ?
https://deepworldgam...t-point-lights/
I`m not a coder so sorry if the above is not relevant.
Anyway, perhaps ORMT can find a moment to discuss static lights. Or even a move to direct x 10? Thanks, Rick
#43
Posted 31 October 2023 - 01:50 PM
rickloader, on 29 October 2023 - 01:47 AM, said:
It doesn't matter what shape the lights are, with immediate rendering, we need to calculate the light effect for every pixel (multiplied by number of lights). Every pixel on screen (in the 3D world) is calculating the light cone effect currently.
rickloader, on 29 October 2023 - 01:47 AM, said:
https://deepworldgam...t-point-lights/
The code here appears to have been removed, but it is nevertheless going to be applying all 20 lights to every pixel. I don't remember what the maximum number of lights we could do with DirectX feature level 9_3, but more will definitely be worse for performance.
The main way out, which I believe most game engines use (or at least support) these days, is deferred rendering.
rickloader, on 29 October 2023 - 01:47 AM, said:
Minecraft has an almost unique optimisation it can do: almost everything can be calculated at vertices, not pixels, which massively speeds up things.
#44
Posted 31 October 2023 - 02:31 PM
I must now reads about deferred rendering. thanks, Rick
#45
Posted 31 October 2023 - 04:44 PM
rickloader, on 31 October 2023 - 02:31 PM, said:
The code to do multiple lights (up to an arbitrary fixed limit) is pretty simple, but it needs someone to take the time to implement it and test the performance effect (and see if it'll even work with our supported shader levels). Without that, we don't even really know if deferred rendering is needed (or a bump on minimum specs). :(
#46
Posted 31 October 2023 - 06:57 PM
James Ross, on 31 October 2023 - 01:50 PM, said:
While you are here, may as well "spill the beans" on anti-aliasing as well (warning this will almost surely cause some "brain pain" to read):
Multisample anti-aliasing in deferred rendering
If you want to see what a high performance, but limited AA looks like, I give you Run8. Running OR without quality AA, but with lights galore might be not what you are asking for. Many FPS games cheat by having a lot of black on the screen to "improve" visual performance with less AA. The last time I looked at Dovetail's offerings FXAA did very little for me. The simple but expensive SSAA works very well in forward rendering. Per say SSAA, is not really possible in deferred rendering without a fabulous GPU setup (dual Nvidia 4090s anyone?!) and even then you might be relegated to 1920x1080 as opposed to 4K to get decent frame rates. If this is so "simple" to do, somebody would have tried it out already. Alas the years role by.
There is also the "messy" issue how deferred rendering handles transparencies, this might turn the handling of common OR shaders upside down.
Steve
#47
Posted 01 November 2023 - 06:01 AM
James Ross, on 28 October 2023 - 07:02 AM, said:
James Ross, on 31 October 2023 - 04:44 PM, said:
Let me take the chance to note here that the support for multiple lights is part of the glTF PR, which is part of the unstable release for more than a year. (Maybe more than two? I'm not in a mood to check back...) Currently the only supported way of adding more lights to the scene is to create a glTF object with attached lights, which then can be used either as a vehicle or a scenery object. Multiple of such glTF-s can be displayed at the same time, and one object may contain multiple lights. Currently there is a constant max. limit number of 20 is set in the code, but this is just because I don't know the performance implications.
#48
Posted 01 November 2023 - 08:15 AM
Eldorado.Railroad, on 31 October 2023 - 06:57 PM, said:
There is also the "messy" issue how deferred rendering handles transparencies, this might turn the handling of common OR shaders upside down.
I hope you didn't think I meant deferred rendering is "simple", because it certainly isn't, and I know about the anti-aliasing and transparency downsides.
What is "simple" is changing our existing shader from doing 1 light to doing a higher (but still limited) number of lights, like Peter has done in the glTF patch (along with a lot of other work, of course).
gpz, on 01 November 2023 - 06:01 AM, said:
There is also the implications of increasing the minimum spec from DirectX feature level 9_1 to 10_0.
#49
Posted 01 November 2023 - 10:05 AM
Nevermind the professed outcomes, someone has to even try. Until that happens, we can speculate all we want.
#50
Posted 01 November 2023 - 12:12 PM
- Physics Improvements
- Lightning Improvements
- File Structure Evolution
- World and Activity Editors
- Documentation
- Installers and Tutorials to simplify new user experience
If there's another way organizationally that these topics fall into swimlanes, great. We have various "camps" of interest, and it seems that some camps are more favoured than others.
I also want to continue to beat the drum on resurrecting TSRE -- please find a volunteer within the developers who might be able to figure out the QT components and see if there's a way to port that into C#.
Get as many eyes on that source code as we can, and perhaps someone will see a path forward. But people have to look at it. It's not fixing itself, and Goku continues to be absent.
Without new routes, we're screwed.
#51
Posted 01 November 2023 - 02:35 PM
#52
Posted 01 November 2023 - 10:29 PM
eolesen, on 01 November 2023 - 12:12 PM, said:
- Physics Improvements
- Lightning Improvements
- File Structure Evolution
- World and Activity Editors
- Documentation
- Installers and Tutorials to simplify new user experience
If there's another way organizationally that these topics fall into swimlanes, great. We have various "camps" of interest, and it seems that some camps are more favored than others.
IMO migrating from one file type to another isn't going to do much for creators and users, certainly not absent a robust conversion program. OTOH re-thinking what could/should be in files should open the doors to many new features. As an example, in North America a train is defined as one or more locomotives coupled to one or more cars. The current .con files does that for us. But in North America a train is often understood as a collection of locomotives coupled to one or more collections of cars, where each collection of cars are destined for very different points. That's not what the .con can handle. A file structure that can handle the later can also handle the former... but the former cannot handle the later. If files are to change the information they carry, please, please keep an open mind.
eolesen, on 01 November 2023 - 12:12 PM, said:
Get as many eyes on that source code as we can, and perhaps someone will see a path forward. But people have to look at it. It's not fixing itself, and Goku continues to be absent.
Very good points. Many of the functions that do things are good. Would that not be the hardest part to code from scratch? Translate them C#. HOW you get to those functions via the UI needs a major re-work.
eolesen, on 01 November 2023 - 12:12 PM, said:
I've been making that point since day 1. Nobody was interested.
#53
Posted 02 November 2023 - 07:00 AM
I recently thought about building route editing features using the OR infrastructure. I was originally thinking of copying the RunActivity code, removing all of the simulation code and then adding editing features. But the simulation and rendering code are heavily intertwined, so removing the simulation looks like a lot of work. It would probably be easier to add route editing features to RunActivity and arrange it so that they only work when the simulation is paused using escape. This might not be the best solution in the long run, but it would be a way to get started.
So far I haven't decided to do any of this, mostly because I don't have a Windows machine. I have a DesktopGL version of RunActivity that I created a few years ago and I could modify that. But the DesktopGL version has performance issues and I had remove all window specific features from it. For example that version can't read any of the options settings from the registry. So, I'm not sure I would end up with something others would use.
Doug
#54
Posted 02 November 2023 - 09:22 AM
#55
Posted 02 November 2023 - 01:37 PM
dajones, on 02 November 2023 - 07:00 AM, said:
Doug, I Agree with your assessment. I also have experience using C/C++ background. Decades ago, more at a bit banging level level developing device drivers. Specializing with disk drives, communications device drivers, and modems. For embedded systems, Unix systems, MS PC systems.
Having also read some comments about more developers eyes on the code, from non-programmers. Some with out a programming background don’t understand. That it is not just not translating C++ code to C# but other factors as well. If I recall in the past members of the ORMT had a discussion with Goku, and more than likely have looked at the code.
dajones, on 02 November 2023 - 07:00 AM, said:
I took a different approach near the end of Covid. Cloning the code from from GitHub, hacking out RunActivity and other commingled code was able to have a running dynamic version running on Windows 10 using QT. However was not able to have sound working.
Troubleshooting the problem was not a simple code fix. But appears to be a design problem. Down loading Goku’s latest code, running on two different Windows 10 64 bit systems, and a Windows 7 systems has the same problem.
Without getting into the details problems having to do with using OpenAL, transitioning QT dynamic code to Windows *.exe executable code. In addition Goku may been on shadow ground here QT states that with out a commercial license open source code executable code should be distributed as linkablel libraries as opposed to static builds. He was doing this even before doing commercial work from a reference by OR.
dajones, on 02 November 2023 - 07:00 AM, said:
Doug
IMHO a possible path for OR to follow would be to follow MSTS method of having separate RE, AE, and RGE linked into OR code.
With that being said around April of this year when reading threads that TSRE support was abended. Decided to look at OR Track Viewer, which uses WPF as a GUI. Which had started out as a separate program linked to OR, before being integrated into it. Was able to set up a module hooked into the OR code and able to load directories and files in. However continuing on was not possible for me. Not have enough of a graphics background, complete enough knowledge of MSTS file structure, and no documented API. Would be too over overwhelming a task.