Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: MSTS consist / vehicle parser #684

Open
wants to merge 25 commits into
base: master
Choose a base branch
from
Open

WIP: MSTS consist / vehicle parser #684

wants to merge 25 commits into from

Conversation

leezer3
Copy link
Owner

@leezer3 leezer3 commented Aug 9, 2021

Heavy work in progress here, highly likely to explode unexpectedly.....
n.b. Contains the changes from #167 although not hooked up to anything yet, should work when this is done.

This will load (some) MSTS consists to a working visual train.
Not even thought about physics and stuff yet.
The new renderer is absolutely required for these to get a sensible framerate, and even this is still a little slow. We need to detect somehow if the proportion of texture in use for any given face uses alpha.

Unfortunately, the inbuilt consist / vehicle parser seems to have been very forgiving of errors in the textual block, which means that I'm still very much rehacking the base parser as I go along.....
Proabably want to cherry-pick the parser changes into the mainline branch.

msts01
30-odd van train from the 3DTS Cambrian route.

msts02

Class 47 & TEA tankers from Making Tracks' Network South East route.

@leezer3
Copy link
Owner Author

leezer3 commented Sep 13, 2021

Have picked out the fixes to the format parser, through piped brake type and the renderer tweaks and rebased this back onto the head of master.
Probably going to end up doing this a lot, as there are too many half-features we need to get the whole thing working.....

@leezer3
Copy link
Owner Author

leezer3 commented Sep 18, 2021

msts03

Took a little more bashing, but we can now load a MSTS consist into the main game.
Nothing really works (yet), so no physics, controls etc. but if nothing else we could just load a default set of acceleration curves.

Large detailed consists are rather slower than I'd like though, although this is poly-count related as opposed to anything else. We still need to find some speedups in the GL3 renderer.

Further Thoughts:

  • Everything not in the Train.MsTs plugin probably wants picking into master (again), as otherwise this will end up getting out of sync. Probably needs doing repeatedly every time something is fixed.....
  • No acceleration curves in MSTS as such. All it's got is stuff like max power numbers. Divide these by notches as a first step?
  • Need a percentage based power / brake controller. Been on the list for a while :/
  • Need to deal with the keyframe animations in MSTS stuff. Should be easier with the new renderer.

@leezer3
Copy link
Owner Author

leezer3 commented Nov 16, 2021

A little more work done.

Cabviews now load, but need a lot of components integrating. Camera restriction also appears to be broken.

If wheelspin is disabled, we can actually move our trains. No sound, brakes or power notch simulation at the minute mind, so not exactly useful.
Need to also consider refactoring the acceleration curves a bit.
Also highlights the fact that wheels don't rotate :/ Need to investigate that properly- I believe that an animation frame for wheels pulls out the wheel radii from the engine properties, and presumably twiddles via speed and this. Would wheel radii be useful for animated files?!

@leezer3
Copy link
Owner Author

leezer3 commented Dec 14, 2021

Animation changes really want pulling to master when completed & working- This is a common method of doing things.

Haven't tested performance yet, perhaps this would be better in shader when completed?!

Unsure how complete the rest of this is at the minute....

@leezer3
Copy link
Owner Author

leezer3 commented Jan 18, 2022

API changes pulled out and merged into master, just to try and keep things in better sync.

@leezer3
Copy link
Owner Author

leezer3 commented Jan 18, 2022

This branch will now load the new hierarchy objects.
All complex parts appear to be where they should in a static object, which is encouraging.....

However, it doesn't get them into train exteriors, as the CarSection is tied to the current animated object. Still fiddling, heavy WIP.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant