rricharz / Tek4010

Free Tektronix 4010, 4013, 4014 and 4015 terminal emulator for Raspberry Pi, Linux, macOS (Macintosh) and Windows
GNU General Public License v3.0
244 stars 29 forks source link

Display Color Adjustments #53

Closed hanyazou closed 5 months ago

hanyazou commented 5 months ago

Thank you for developing and sharing your software; I find its nostalgic display quite appealing.

I am interested in adjusting the display to more closely resemble the Tektronix 4010 videos on YouTube, particularly by reducing the saturation slightly, as the video appears less saturated. (It might due to filming effects?)

https://www.youtube.com/watch?v=2SbCIP1m6hs https://www.youtube.com/watch?v=IztxeoHhoyM

20240601-204541-82097 20240601-204541-82113

Upon reviewing the change logs, I noticed you had meticulously adjusted the settings in tube.c around 2019. Therefore, I wanted to consult with you on the visual appearance before moving forward with a pull request.

Attached below are images for comparison: the left shows the current display, and the right is the modified version with intentionally exaggerated reduced saturation for clearer visibility. Which version do you prefer?

if opinions vary, I could implement a configuration mechanism allowing users to adjust these settings themselves. What are your thoughts on this approach?

Screenshot 2024-06-05 at 21 23 22 Screenshot 2024-06-05 at 21 14 35 Screenshot 2024-06-05 at 21 11 01
rricharz commented 5 months ago

The actual appearance depends a lot on the white balance and brightness of the camera, and on the color quality of the computer display. Also, age and sharpness adjustments of the 4010 display are very relevant.

I have tested this on quite a number of displays, and results vary substantially. There are also differences in the many YouTube videos. But I agree that the bright spot should be more white than green.

Currently the only adjustment is the brightness of the green drawing (0.7) and of the bright spot (1.0), which were adjusted based on input from a number of users. If you give me the RGB values of the drawing and the bright spot that you prefer I will test these and decide how to proceed.

hanyazou commented 5 months ago

I have checked the actual RGB values. They are shown below.

This diagram is illustrating my interpretation of the intensity and set_source_rgb() RGB values as defined in tube.c. For simplicity, I have excluded the inclusion of BLACK_INTENSITY in the drawPoint() calculations within this diagram.

Screenshot 2024-06-09 at 10 53 35

I have updated tube.c to enhance the overall saturation by 20% and conducted a visual comparison of the images. You can review the modifications here: https://github.com/hanyazou/Tek4010/commit/bbc5cc7485d8ba6aa7fd232d7c014cd5a6a721af

If a 20% increase in saturation seems excessive, would a more moderate adjustment, perhaps between 10% and 15%, or providing users the ability to set their preferred levels, be a more acceptable solution?

Screenshot 2024-06-09 at 10 23 25 Screenshot 2024-06-09 at 10 21 51 Screenshot 2024-06-09 at 10 18 15

vectors

4 Screenshot 2024-06-09 at 11 37 51 Screenshot 2024-06-09 at 11 38 57 Screenshot 2024-06-09 at 11 40 06 Screenshot 2024-06-09 at 11 40 33

characters

3 Screenshot 2024-06-09 at 11 44 20 Screenshot 2024-06-09 at 11 44 46 Screenshot 2024-06-09 at 13 42 23 Screenshot 2024-06-09 at 13 46 08

points

2 Screenshot 2024-06-09 at 11 41 00 Screenshot 2024-06-09 at 11 41 29

faded bright spot

Screenshot 2024-06-09 at 11 42 03 Screenshot 2024-06-09 at 11 42 27

Prior to this comparison, I calibrated my monitor to ensure accuracy. According to the calibration, my monitor covers the entire sRGB color gamut, thus we can assume the RGB values displayed are accurate.

Screenshot 2024-06-09 at 11 50 21
rricharz commented 5 months ago

Please provide a pull request with your changes.

hanyazou commented 5 months ago

@rricharz

In my modification branch, I also fix a bug (I thought it is a bug). Please look at this: https://github.com/hanyazou/Tek4010/commit/d3037d36b4361934769bbe551f81554a8d9ced79

Can I include this change in the pull request? If you are not sure, I will remove this change and create new branch for a pull request.

rricharz commented 5 months ago

Yes, this is indeed a bug. Go ahead with the pull request.