I have a suggestion to improve the performance of TFT monitors using the capabilities of ATI's SmartShader.
Many owners, like myself, of PVA based TFT monitors will be annoyed by the slow gray-to-gray response time (>100 ms) in 3D games. However, the white-to-black (and reverse) response of these panels is <25 ms. This feature can be used to enhance the g-t-g response:
A very simple routine should amplify color changes for each pixel, shortening the response time between frames. In the next frame, the "normal" color value should be output to the screen. The adjustable constant needs to be tuned to prevent a color "overshoot".
Based on the SmartShader function in the ATI control panel I suggest the following routine:
1) Take the difference between the currently and previously rendered frame, for the individual values for red, green and blue for each pixel.
2) Multiply these difference values by an adjustable constant (say 0-255). Clip values if outside valid color range.
3) Take values for r, g, and b channel of current frame, and add the values of step (2), for each pixel. Output to the screen buffer.
Note that in order to work, the framerate must be fixed (vsync enabled). When the framerate drops below this value, the constant may be lowered automatically, to compensate.
I hope there is somebody out here to pick up this idea. It should be possible using ATI's PSS plugin, but that only works in OpenGL. Thanks.....
Many owners, like myself, of PVA based TFT monitors will be annoyed by the slow gray-to-gray response time (>100 ms) in 3D games. However, the white-to-black (and reverse) response of these panels is <25 ms. This feature can be used to enhance the g-t-g response:
A very simple routine should amplify color changes for each pixel, shortening the response time between frames. In the next frame, the "normal" color value should be output to the screen. The adjustable constant needs to be tuned to prevent a color "overshoot".
Based on the SmartShader function in the ATI control panel I suggest the following routine:
1) Take the difference between the currently and previously rendered frame, for the individual values for red, green and blue for each pixel.
2) Multiply these difference values by an adjustable constant (say 0-255). Clip values if outside valid color range.
3) Take values for r, g, and b channel of current frame, and add the values of step (2), for each pixel. Output to the screen buffer.
Note that in order to work, the framerate must be fixed (vsync enabled). When the framerate drops below this value, the constant may be lowered automatically, to compensate.
I hope there is somebody out here to pick up this idea. It should be possible using ATI's PSS plugin, but that only works in OpenGL. Thanks.....