The online racing simulator
November Progress Report
1
(32 posts, started )
November Progress Report
Hello Racers,

We have decided not to do a graphics progress report this month.

On Eric's side, things are going well as you have seen in the progress reports. But it does take a while because of the level of detail. There are still two tracks to update after he finishes the one he is currently on. We plan to show you some more pictures in December.

On my side I was working on sharing the lighting between tracks, but recently got diverted onto improving the sharpness of the text for the interface which then led to sharper dashboards and number plates. I was aware that it wasn't really necessary for the release, but I got an idea for a slight improvement that would take "a couple of days" and ended up doing a few weeks' work because of the improvements it led to.

Some people might be interested to know how one thing leads to another and can cause apparent delays in development. Warning: Technical details in the following paragraph! Feel free to skip to the before and after screenshots! Smile

In fact this started from an improvement in the editor. Recently I had removed the software-based render for ambient lighting so now the images for the ambient lighting are rendered on the graphics card. After that update, which was important to help improve the graphics, there were just a few software-based drawing functions remaining. They include the editor text and guide lines, which were drawn by locking the back buffer and setting pixels directly. I converted these functions to use the graphics card's version of line drawing and the texture-based text as used in game. This finally allowed anti-aliasing to be used in the track editor which is helpful for Eric. But it did require some improvements in the accuracy of the in-game text. I decided to go through the font characters, thinning them a little, which took a couple of days once I had been through all the Latin, Greek and Cyrillic characters. Then I realised some of the character drawing wasn't really under control and I went through making sure it all made sense and upgraded the resolution a bit. This included visiting all places in the code where text was drawn, including the dashboards, so I doubled their resolution while I was at it. Also I noticed the number plates were looking quite bad so their resolution has been doubled as well along with more accurate text positioning. One more thing I implemented was "kerning" which is when you move some characters closer together for visual reasons. For example a classic case is A followed by V. The gap looks too big unless the characters are moved together. I had added a small tail onto the small L and this was causing a particularly bad gap between the l and t in "multiplayer" so I finally succumbed to the temptation of implementing kerning which I had wanted to do for years.

Here are some comparison shots to demonstrate some of the improvements.
Attached images
XF_plate.jpg
XF_dash.jpg
3D_name.jpg
ES_text.jpg
More polished indeed Thumbs up. Glad things are going well, and good idea for these display improvements LFS
The icons on the dash now look much clearer. That could look great in VR ... depending on the glasses Thumbs up
Liking the number plates Smile

Did you get a chance to look at the font width/alignment bug (attached) while you were digging around?
I can't find the bug report, but I know it was mentioned before - maybe buried in the hidden test patch section.
Attached images
hud_bug.gif
Great little improvements! When I tested LFS in high resolution a few months ago I saw that dials seem to be a little low res and thought that could use some improvements, but didn't actually bother me that much to write a request about it. It certainly looks a lot better, thank you!
All little things help improving Thumbs up
Quote from Degats :Liking the number plates Smile

Did you get a chance to look at the font width/alignment bug (attached) while you were digging around?
I can't find the bug report, but I know it was mentioned before - maybe buried in the hidden test patch section.

That seems to be using Unicode characters from one of the code pages. I can see circles like that in the Japanese code page under extra page 81. But it seems OK with most fonts.

Maybe the existence of the bug depends on which font you have selected. It may be an LFS bug in some way (with wide characters) but there may be a workaround by selecting the correct font with Japanese language selected.
i can't believe it, best progress report ever
Quote from Scawen :That seems to be using Unicode characters from one of the code pages. I can see circles like that in the Japanese code page under extra page 81. But it seems OK with most fonts.

Maybe the existence of the bug depends on which font you have selected. It may be an LFS bug in some way (with wide characters) but there may be a workaround by selecting the correct font with Japanese language selected.

Yeah, it's probably something to do with either the font, or maybe how Windows is reporting something, because it started happening in Windows 10 IIRC.
You definitely need to have a font installed for those characters to render as anything other than squares - this was a problem for a while where LFS was looking for a font that didn't exist or something.

Long story short, LFS is using the wrong width for a lot of the characters, so some get cut off (LFS thinks it's narrower than it is, like the gif) and some show the left edge of the character next to it in the bitmap as well as the correct one (LFS thinks it's wider than it really is). The top couple of lines of the Japanese extended page 87 are a good example of the latter.
Attached images
widthbug2.jpg
Looking good Thumbs up I also like to introduce people to kerning, in order that I don't suffer public signage atrocities alone. Once you've seen keming and all that Wink

I was wondering if it's possible that the kerning mechanism could be used/abused to add a flag option to force monospaced text on a button? It could save us a huge amount of buttons under the right circumstances.
Quote from Racon :I was wondering if it's possible that the kerning mechanism could be used/abused to add a flag option to force monospaced text on a button? It could save us a huge amount of buttons under the right circumstances.

And make sure numbers are always fixed width with no kerning - columns of numbers must always align Wink
Quote from Degats :Liking the number plates Smile

Did you get a chance to look at the font width/alignment bug (attached) while you were digging around?
I can't find the bug report, but I know it was mentioned before - maybe buried in the hidden test patch section.

Off-topic (picture): Is that server insim or would that be possible to achieve through LFSLazy? It's awesome!
This is such a nerdy update. I love it!
Quote from Degats :Yeah, it's probably something to do with either the font, or maybe how Windows is reporting something, because it started happening in Windows 10 IIRC.

I can reproduce this in Windows 7, which will be helpful for debugging.

Quote from Degats :Long story short, LFS is using the wrong width for a lot of the characters, so some get cut off (LFS thinks it's narrower than it is, like the gif) and some show the left edge of the character next to it in the bitmap as well as the correct one (LFS thinks it's wider than it really is). The top couple of lines of the Japanese extended page 87 are a good example of the latter.

The problem varies between fonts. MS PGothic doesn't seem to show the problem much but SimSun-ExtB does. That seemed the same here in a quick test in Windows 7 and Windows 10.

I would expect it to cut off characters that are too wide but don't know why it doesn't deal with narrow characters properly, so I'll have a look in the debugger.

Quote from Big Daddy :Just curious why every text uses their own function.
Using a global function for every text would only require to modify the global function (gpu implementation) and increasing the resolution scale globally.

They do use a common text drawing function but I changed the way that function was called. Now there is a standard text aspect ratio (which can be overwritten in some rare cases) instead of each caller deciding that for itself. So all the function calls needed to be adjusted and in some cases it was messed up where non-standard widths were used and had to be done a different way now.

Quote from Big Daddy :Looking forward to screenshots using the new Ambient Occlusion.

It was already used in the Aston screenshots. The main change compared with the old system is that it can now deal with transparent objects properly. There will be a slight darkening near fences which the old system ignores. Of course in reality a fence does reduce the influence of sky lighting a bit. On the other hand the old system drew trees as the entire polygons without transparency, so in that case the sky was too occluded near trees. The hardware-based render takes account of transparency and includes all relevant objects so the brightness should be correct now.

Quote from Racon :I was wondering if it's possible that the kerning mechanism could be used/abused to add a flag option to force monospaced text on a button? It could save us a huge amount of buttons under the right circumstances.

Maybe you could remind me of this in a test patch stage, as I'd rather avoid looking at InSim for now.

Quote from Degats :And make sure numbers are always fixed width with no kerning - columns of numbers must always align Wink

Numbers have not been included in any of the kerning classes. And it was some years ago the '1' character had some invisible points added to make it the same width as the other characters.
what about Nvidia G-Sync improvement?
Quote from TwinySkyline :Off-topic (picture): Is that server insim or would that be possible to achieve through LFSLazy? It's awesome!

Impossible to do on a server, it's a client side app I wrote that uses InSim/OutGauge data, no LFSLazy style memory hacking Smile

It's quite old and a bit buggy, It can get confused and crash in certain circumstances - I know what the problem is, but I haven't got around to fixing it up yet.
Quote from Scawen :Maybe you could remind me of this in a test patch stage, as I'd rather avoid looking at InSim for now.

Will do Thumbs up
Thanks for the update of your current work
Details that makes difference, specially now that people can play games in higher resolution, always good to see the updates coming and now that we can expect to see some more improvements in December (tbh it reminds me that once the VW Scirocco was about to get released in December, sooOoo who knows) Tongue
Disappointed that this is what I waited one month for.
-
(Mikus1212) DELETED by Scawen : off topic / spam
-
(gu3st) DELETED by Scawen : off topic / spam
-
(Mikus1212) DELETED by Scawen : off topic / spam
-
(RC-Maus) DELETED by Scawen : off topic / spam
-
(benjamin.torres) DELETED by Scawen : off topic / spam
-
(RC-Maus) DELETED by Scawen : off topic / spam
-
(RC-Maus) DELETED by Scawen : off topic / spam
Thanks for the report HeartThumbs upPetals
The major thing to note for those who are disappointed to not see screenshots :
Quote from Scawen :... There are still two tracks to update after he finishes the one he is currently on. ...

=> the real tests will begin before end of Q1 2019 max Tongue

... and I bet on Kyoto for December with cherry blossoms Heart
Big grin
Nice update, its like playing with my glasses on Big grin
I have hoped for South City Frown
But thanks for the Progress Report.
1

November Progress Report
(32 posts, started )
FGED GREDG RDFGDR GSFDG