I did think it had to do with monitor/gpu scaling, though i was able to rule out the monitor at least, and i disabled all scaling in the gpu (as far as i could find the relevant setting in the control panel and via nvinspector), so i guess it must indeed be within Unity.Interkarma wrote: ↑Mon May 27, 2019 9:49 pm There are two stages to unpack here:
The texture filtering option you see in settings controls how textures are sampled in stage 1. Point filtering is just good old nearest-neighbour sampling.
- If you set your resolution to 320x200, then Daggerfall Unity renders everything into a true 320x200 framebuffer.
- This is then presented to your display, which at fullscreen is scaled over the entire display area. Daggerfall Unity uses a bordlerless fullscreen window, not exclusive resolution. The scaling here is done by Unity and your GPU.
The presentation in stage 2 requires the render to be scaled over your display surface. Unity itself (via the GPU) seems to use a bilinear or similar sampler to do this scaling. This is what results in the CRT-like blur over the whole display. I'm unaware of a way to change this step to use nearest-neighbour, which would result in a more 1:1 appearance with the render generated in stage 1.
But it's important for everyone to understand that Daggerfall Unity is rendering a true 320x200 framebuffer. I have intentionally built the game this way from the start. The issue is one of presentation as that render output is scaled to your actual display area, which is necessary if you want fullscreen. This is something done by Unity itself, and I don't believe we have any control over this. If I become aware of a way to control this, and it's not too involved, I'd be happy to add the support into DFU.
Though, this is why i was thinking of applying a shader on top of the game: I thought it'd be possible to 'pixelize' the output to a 320x200 resolution while still rendering the image itself at 1080p for example (i -think- this is how games like undertale and vvvvvv manage their pixel look). However, i guess that would likely produce some errors due to how the image is pixelized instead of properly rendered at the given resolution.
What i don't get is the fullscreen being borderless fullscreen though: The output window acts like a fullscreen window does (the same kind of behaviour, screen blacking out, unable to alt-tab without the screen going away, etc). I wonder how Unity does this on a technical level.