280 likes | 336 Views
Display Technologies. Types of video display. Cathode Ray Tubes (CRTs) TVs, RGB monitors, o-scopes Flat-Panel Displays PDAs, laptops, calculators, digital watches. CRTs.
E N D
Types of video display Cathode Ray Tubes (CRTs) TVs, RGB monitors, o-scopes Flat-Panel Displays PDAs, laptops, calculators, digital watches
CRTs Electrons are fired from a filament, focused, accelerated, then deflected to a point on the phosphor coating on the inside of the display screen
Random-scan CRTs Electron beam is scanned along each line segment Capable of displaying continuous lines and very high resolution curves High-end displays capable of 100k lines per refresh
Random-scan CRTs Pros • Excellent for line drawings • Generally high resolution Cons • Can not display realistic shaded images • Not capable of color Common Example Oscilloscopes
Raster-scan CRTs Electron beam is scanned left-to-right, top-to-bottom Beam retraces to top-left after reaching bottom-right (vertical retrace) Capable of displaying continuous range of intensities at discrete positions High-end displays capable of 4k x 4k @ 120 Hz
Raster-scan CRTs Three electron guns are used, one for each color The guns are aimed through a mask and onto colored phosphors Colored phosphors are arranged in RGB triples dots (delta) – RGB monitors stripes (inline) – TVs, Sony Trinitron
Raster-scan CRTs Pros • Excellent for varying intensity • Can display shaded images • Color Cons • “Jaggies” Common Example Televisions
Human Visual System The human retina is covered in 2 kinds of photoreceptor, rods and cones The fovea, densely packed with cones, is responsible for detailed color vision
RGB color cube Coordinate system with R, G, B as axes Grayscale axis runs from (0,0,0) to (1,1,1)
M Magenta Blue Red Black Cyan C Green Yellow Y CMY color model Coordinate system with C, M, Y as axes; useful for describing color output to hard-copy devices. Grayscale axis runs from (0,0,0) to (1,1,1). Color - substractive process.
Raster-scan review • Display composed of discrete, addressable points • picture elements or pixels • Can control intensity of each pixel • Pixels can be composed of RGB triples
True-color 3 channels, 8 bits per channel – 24 bits per pixel Often includes a 4th, non-display, channel (alpha) used for image composition – 32 bpp 256 intensity levels per channel 224 total colors Sometimes combined with a LUT per channel (gamma correction)
Indexed-color 8 bpp Each byte is an index to a LUT (colormap) All 224 colors are available to the colormap, but only 28 colors are available to the framebuffer Can do animation by swapping colormap entries Multiple apps can cause flashing if they try to use different colormaps at the same time
High-color 16 bpp, 5 bits per primary color Sometimes the extra bit is given to green Limited number of bits per color can lead to noticeable quantization effects (color banding artifacts) and can be worse than index color in certain circumstances
Color quantization True-Color Indexed-Color High-Color
Single-buffered Single-buffered mode writes pixels directly into active framebuffer memory Partial results are therefore visible This is especially noticeable when trying to do animation
Double-buffered Double-buffered mode writes pixels into a secondary buffer (back buffer), different from the buffer currently on display (front buffer) When all pixels are written to the secondary buffer, an explicit call is made to swap the front and back buffers The swap is typically done during the display’s vertical retrace period This technique is preferred for interactive graphics
Framebuffer math How much memory is needed for a 1024 x 768 true-color (32 bit) framebuffer: Single-buffered?
Framebuffer math How much memory is needed for a 800 x 600 index-color framebuffer: What is frame buffer size formula? Single-buffered? Please calculate yourself it would be [X * Y * color depth(in bits)] this would give you the the frame buffer size in bits. Example: Say we had a resolution of 1280 x 1024 and a color depth of 4 bits. we would go 1280 * 1024 * 4 to give us 5242880 bits then to get bytes we divide by 8 to get 655360 bytes then to get kilobytes we divide by 1024 (Remember computers are base 2) 640 kilobytes so a computer running at 1280 x 1025 with a color depth of 4 bits requires a frame buffer of 640 kilobytes.
Coordinate systems Most windowing systems: OpenGL framebuffer: x (0,0) y y x (0,0)
Coordinate systems Does it matter? No, we just need to be aware of the difference: Where a pixel in the framebuffer will show up on screen? How do we get the pixel address under the mouse pointer? Could some other display library have its framebuffer lay-out match your windowing system? Absolutely. Many do. What if all we never directly displayed our framebuffer, but wrote it out as an image for later display? Virtually all image formats use screen-space coordinates. What if we want to support both? Then we have to know when to invert the y-axis. When would you do it?
Framebuffer coordinates We’ll pick OpenGL’s coordinate system. Where will these points appear on the screen? • (0, 0) • (5, 7) • (8, 3) 2 3 1