[BUG] DirectX 9 4x Nearest Neighbour Filter incorrect scaling

Started by subspark, Tue 01/09/2009 16:08:39

Previous topic - Next topic

subspark

Bug 1:
This one's been bugging me for a while but the DirectX 9 filter's version of the 4x Nearest Neighbour filter works differently to the DirectDraw one.

For example, character scaling - When using the DirectDraw 4x N.N. filter a single pixel is accurately scaled 4 times. With the DirectX9 equivalent, characters who are scaled <100% don't conform to the 4x pixel grid. There are varying pixel sizes with the characters and the filter no longer lives up to its name. I'm sure this bug applies to text and objects too. Please correct this CJ. Theres nothing worse in our 320x200 game than pixel inconsistency. :'(

Bug 2:
When running the DirectDraw OR DirectX 9 under the 2x Nearest Neighbour filter OR no filter 320x200 (640x400), the screen resolution is set to 640x480. I thought the minimal resolution under Vista and Windows 7 alike was 640x400 but it is infact ridiculously 800x600 4:3 aspect. If 800x600 is truly the minimum possible resolution then why has Microsoft ditched a valid 16:10 format? Clearly there must be a way around this cruddy and foolish limitation. Our beautiful 320x200 graphics is scaled up by a factor of 2 and then squished vertically into the middle of a 640x480 canvas. Yeck!

Cheers,
Sparky.

Pumaman

Quote from: subspark on Tue 01/09/2009 16:08:39
For example, character scaling - When using the DirectDraw 4x N.N. filter a single pixel is accurately scaled 4 times. With the DirectX9 equivalent, characters who are scaled <100% don't conform to the 4x pixel grid. There are varying pixel sizes with the characters and the filter no longer lives up to its name. I'm sure this bug applies to text and objects too.

This is because the scaling is all hardware-accelerated. I suppose it would be possible to do the character/object scaling in memory to avoid this but then you'd lose the performance benefits of accelerating it.  I am aware of this issue, however.

Quote
When running the DirectDraw OR DirectX 9 under the 2x Nearest Neighbour filter OR no filter 320x200 (640x400), the screen resolution is set to 640x480. I thought the minimal resolution under Vista and Windows 7 alike was 640x400 but it is infact ridiculously 800x600 4:3 aspect. If 800x600 is truly the minimum possible resolution then why has Microsoft ditched a valid 16:10 format? Clearly there must be a way around this cruddy and foolish limitation. Our beautiful 320x200 graphics is scaled up by a factor of 2 and then squished vertically into the middle of a 640x480 canvas. Yeck!

Have you tried the 3x filter? 960x600 is supported by most widescreen monitors.

subspark

Sure have - Unfortunately my system wont run it fullscreen. I'm running a 30" Apple Cinema Display here in which 16:10 games like Monkey Island and many AGS games look absolutely stunning on.
In other words, 320x200 & 640x400 games scale perfectly well under nearest neighbor filters that are a power of 2 but nothing else. Strange.  ???

Cheers,
Sparky.

SMF spam blocked by CleanTalk