7 Eylül 2021 Salı

VGA (Video Graphics Array) Ekran Kartı

VGA Ne Demek?
Açıklaması şöyle
"VGA" has two meanings:

- A specific graphics card, the IBM Video Graphics Array from 1987, which supported resolutions up to 640×480 (now known as the "VGA" resolution), and which also introduced a new video connector type that's now known as the "VGA" connector.

- The 15-pin analog video connector introduced by the IBM VGA but later used for 35 years by probably every other graphics card in the world.

So when people talk about the 640×480 limit, they refer to what the IBM "VGA" chip could output. The physical connection, however, can handle much higher resolutions, although it depends on the cable quality and shielding (at some point the analog signal begins to deteriorate).
VGA Ekran Kartı artık yok ancak VGA connector halen kullanılıyor

VGA connector
Şeklen şöyle

Açıklaması şöyle. Yani bu kabloyla her piksel teker teker gönderiliyor.
VGA is an older signalling standard where a pixel is transmitted on only three pins by using analog voltages.

Each of these voltages is represented as a voltage level between 0 volts (no intensity) and 0.7 volts (full intensity). So a pure black pixel will have the signal level of 0v,0v,0v on the three lines, while a pure white pixel will have an ideal signal level of 0.7v,0.7v,0.7v on the three lines and so on.


This means that VGA is capable of transmitting in any resolution at all, one pixel at a time. Cable quality and transmission speed count strongly for the quality and responsiveness of the display.

Enhanced Graphics Adapter - EGA
Açıklaması şöyle. VGA'nın atası EGA idi.
The 16-color modes on the VGA use a hardware design borrowed from the EGA.
Ekran Çözünürlüğü
Açıklaması şöyle. Çözünürlük ilk başta sadece 640x480 ve 16 renk idi.
Original VGA supported 640x480 16-colors and 720x400 (essentially a small step up from the 720x350 monochrome (MDA) text, but with color). While VGA has come to mean "any video card and monitor that uses a blue 15-pin connector" that's not what it originally meant. Even when VGA (e.g., SVGA) started to support higher resolution, that was not, initially, directly supported by BIOS, DOS, etc. but rather extra modes with special drivers in Windows, some games, etc. I would not expect a vintage card to produce 800x600 (or higher) without loading some extra software first, and it might not do it at all.
Color Palette
Resmin renk uzayı ne olursa olsun, eskiden VGA ekran kartlarında "color palette" kullanılırdı.  Bu renklerin neye göre seçildiğini açıklaması şöyle
some colors are for compatibility with older gfx like EGA,CGA and the rest is a compromise between usually needed colors for Apps at that time
Daha detaylı bir açıklama şöyle
The VGA default palette in the 256 colour mode (Mode 13h) first has 16 color entries from CGA (which is also same as default 16-color EGA palette and the only palette for 320x200 EGA mode)

Next 16 color entries are 16 shades of gray.

And the next 216 color entries has been already mentioned; they are sets of 24 hues, in 3 different saturation values, and in 3 different brightness values. 24 × 3 × 3 = 216.

The final 8 colour entries are black, or maybe left undefined so BIOS does not overwrite them when changing modes.
Koddan Color Palette'e Dönüşüm
Açıklama şöyle.  Yani eskiden VGA kartları renk için toplam 24 bit kullanmasına rağmen bir seferde sadece 265 renk gösterebilirdi. Çünkü video bellek alanı azdı. Günümüzde zaten Color Depth olarak 32 bit (true color) kullanılıyor.
How Windows Uses Color
One of the benefits of a device-independent output model is that you can specify the colors an application uses without regard for the physical characteristics of the output device. When you pass a color to the Windows GDI, you pass a COLORREF value containing 8 bits each for red, green, and blue. The RGB macro combines individual red, green, and blue values into a single COLORREF. The statement

COLORREF clr = RGB (255, 0, 255); 
creates a COLORREF value named clr that represents magenta—the color you get when you mix equal parts red and blue. Conversely, you can extract 8-bit red, green, and blue values from a COLORREF value with the GetRValue, GetGValue, and GetBValue macros. A number of GDI functions, including those that create pens and brushes, accept COLORREF values.

What the GDI does with the COLORREF values you pass it depends on several factors, including the color resolution of the video hardware and the context in which the colors are used. In the simplest and most desirable scenario, the video adapter is a 24-bits-per-pixel device and COLORREF values translate directly into colors on the screen. Video adapters that support 24-bit color, or true color, are becoming increasingly common, but Windows still runs on millions of PCs whose video adapters are limited to 4 or 8 bits per pixel. Typically, these devices are palletized devices, meaning that they support a wide range of colors but can display only a limited number of colors at one time. A standard VGA, for example, can display 262,144 different colors—6 bits each for red, green, and blue. However, a VGA running at a resolution of 640 by 480 pixels can display only 16 different colors at once because each pixel is limited to 4 bits of color information in the video buffer. The more common case is a video adapter that can display more than 16.7 million colors but can display only 256 colors at once. The 256 colors that can be displayed are determined from RGB values that are programmed into the adapter's hardware palette.
Fade İşlemi
Fade Effect/ Gamma Correction veya OpeGL'deki GL_FUNC_REVERSE_SUBTRACT için yapılan işlemin açıklaması şöyle
For PC VGA, which definitely has just 256 colours on screen that are picked from the 16 million available via a look up table, such fades are definitely done by changing just the palette definition every 0.1 seconds or something like that.
Eğer fade işlemini kodla yapmak istersek açıklaması şöyle. Java'daki Color sınıfının darker() metoduna bakılabilir.
If you do it naively, you just subtract a fixed value from each R, G, B component on each frame. The consequence is that brighter colours take longer to reach black (zero) since they start from higher RGB values. That's what seems to be happening in your screenshots

Hiç yorum yok:

Yorum Gönder