leezer3 / OpenBVE

OpenBVE- A free train simulator
http://www.openbve-project.net
278 stars 52 forks source link

[Bug] Interpolation mode in object viewer cannot be changed. #1061

Open adfriz opened 2 months ago

adfriz commented 2 months ago

Description

as the title said

Reproduction

i use fujikyu train from this website: https://charlesindobve.yolasite.com/japanese-railways.php

i just load the extension.cfg file to object viewer and press F8 to open the options window.

it seems the interpolation mode only can be changed once, and i cant see the difference when raising or lowering the anti aliasing level.

default, using anisotropic. image i change it to nearest Neighbour image i change it back to anisotropic but still looks the same as nearest neighbour image

Related information

leezer3 commented 2 months ago

Interpolation must be as a result of the texture caching changes to speed up reloads. That should be easy enough to sort, although I'm not sure of the value of it.

Antialising has always required a restart of the program to change. I don't think anyone was really expected to be trying to play with these with an object loaded; They really should be set and forget options.

ginga81 commented 2 months ago

'Antialising has always required a restart of the program to change.' Does that mean that each OpenBVE and ObjectViewer need to be restarted when we change Antialising? If so, I didn't know that... I think it want to write that somewhere in the help settings or something.

leezer3 commented 2 months ago

I've now altered the interpolation option to clear the loaded textures when changed. To note, this will produce a new lag spike when the options window is closed in this specific case, as it'll load all textures in the scene from scratch. Previous to the texture caching on reload additions, this lag spike would have been at the reload point.


With the main game specifically, not unless you're using the GL menu, but the viewers need a restart to change antialiasing.

TLDR: The (openGL) window is created with a context that specifies the level of antialiasing the graphics drivers apply. This context is fixed for the life of the window.