LCD、CRT

光栅显示系统结构

s(https://fastly.jsdelivr.net/gh/Ye2222/blogImage@main/images/image-20210911185252515.png)

计算机图形系统的构成

  1. 软件
  2. 输入设备
  3. 输出设备

s(https://fastly.jsdelivr.net/gh/Ye2222/blogImage@main/images/image-20210911185423115.png)

视频显示设备简介

图形学基础算法:根据视频显示设备的特性进行设计

  1. 液晶显示(Liquid Crystal Display)--LCD

    • 液晶具有各向异性
    • LCD结构与工作原理:不施加电场,利用电压改变液晶的分子排列顺序,控制光通过,达到显示目的。
      • 不施加电场,光通过
      • 施加电场,光通过受限
    • 彩色LCD
      • 增加了彩色滤光器
      • 背光版发出的是白光,通过滤光片RGB产生彩色。
    • 可视角度
      • LCD显示器光源经折射和反射后输出时有一定方向性,从大于某个角度(可视角度)观看会产生色彩失真。
      • 120度为选择标准
    • LCD显示器一般采用荧光背光板
    • LED显示器采用发光二极管作为背光源
    • LED显示器是LCD显示器的一种
  2. 阴极射线管(Cathode Ray Tube)--CRT

    s(https://fastly.jsdelivr.net/gh/Ye2222/blogImage@main/images/image-20210911190816761.png)

    • 持续时间和分辨率 (Persistence and Resolution)

      • 持续时间:磷涂层被轰击后发光的持续时间(余辉)

        长:利于静态复杂图象的显示;

        短:利于动画显示

      • 分辨率: CRT荧屏所能显示的不重叠的最大点数称为它的分辨率。

    • 光栅扫描显示(Raster-Scan Display)

      • 大部分采用CRT的显示器都是光栅扫描显示器

    s(https://fastly.jsdelivr.net/gh/Ye2222/blogImage@main/images/image-20210911191052313.png)

    s(https://fastly.jsdelivr.net/gh/Ye2222/blogImage@main/images/image-20210911191103454.png)

  • 扫描线(Scan line): 屏幕的每一行称为一条扫描线。
  • 像素(pixel, picture elements): 扫描线上的每个点称为一个像素
  • 刷新缓冲区(Refresh buffer)或帧缓冲区(Frame buffer)与显示区域对应,每个单元保存一个像素的color及其它信息。
    • 例: 1024X1024,每像素24位,则要3M字节帧缓存。
  • 屏幕纵横比(aspect ratio): 列数/扫描线数。
    • 逐行扫描与隔行扫描
  • 光栅化(Rasterization)和扫描转换(Scan conversion)
    • 如何使光栅图形最完美地逼近实际图形,是光栅图形学的研究内容。
    • 扫描转化算法
      • 确定逼近图形的最佳像素集,并用指定的颜色或灰度设置像素的过程叫做图形的扫描转换。
  1. 随机扫描显示(Random-scan display)

  2. 彩色CRT显示器

    • 常用彩色CRT显示器是阴罩式CRT显示器

    • 其结构与单色CRT显示器类似,但有不同之处

      ■ 荧光屏的每个象素点由三个磷涂层点构成,分别发红绿蓝三种颜色的光。

      ■ 有三支电子枪分别对应三种颜色的点。

      ■ 在屏幕后有一个荫罩,上面的小孔与每个象素点对应。

      ■ 所看到的色彩是三种颜色混合的结果。

s(https://fastly.jsdelivr.net/gh/Ye2222/blogImage@main/images/image-20210911192815303.png)

OpenGL

  • 是一个图形库,全称为Open Graphics Library

  • 是应用程序与图形处理的接口

  • 为移植到不同环境形成了一个开放式的OpenGL

  • 功能模块

    • 绘制几何图形
    • 几何变换
    • 颜色和光照
    • 反走样(反混淆)
    • 纹理映射
    • 雾化
    • 图元属性
  • OpenGL函数

    • OpenGL核心库函数:opengl32.lib
      • 核心库函数以gl开头
      • 函数名本身往往指出参数个数及类型
    • OpenGL实用程序库函数:glu.lib
      • 这一部分函数有核心库函数实现,以glu为前缀
      • 可看作是核心库函数的扩展,提供更高级的图形功能
    • 扩展库
      • 核心库函数是设备独立的,与操作系统和硬件无关。
      • 扩展库提供的函数用来扩展窗口系统的功能
  • OpenGL实用工具包 freeglut

    • (Graphics Library Utility Toolkits)

      • 图形库实用工具包提供与任意屏幕窗口系统进行交互的函数库

        • 独立于屏幕窗口系统

          • 简化应用程序的工作,也方便移植
        • GLUT库函数以glut为前缀

          • http://freeglut.sourceforge.net/

          • Version 3.2.1(Released: 29 September 2019)

        • GLUT函数分类

          1. 初始化和创建窗口

          s(https://fastly.jsdelivr.net/gh/Ye2222/blogImage@main/images/image-20210911194335915.png)

          Mode--可以指定显示模式

          • Mode参数是一个GLUT库中预定义的可能的布尔组合
            • 1:GLUT_RGBA或者GLUT_RGB。指定一个RGBA窗口,这是一个默认的颜色模式
            • 2:GLUT_INDEX。指定颜色索引模式。
          • 还允许你选择单缓冲区或双缓冲区窗口
            • 1:GLUT_SINGLE.单缓冲区窗口。
            • 2:GLUT_BUFFER.双缓冲区窗口,这是产生流畅动画必须选的
          • 特殊缓冲
            • 1:GLUT_ACCUM.累积缓冲区。
            • 2:GLUT_STENCIL.模板缓冲区。
            • 3:GLUT_DEPTH.深度缓冲区。
          • 创建单颜色缓冲区、深度缓冲区的RGB窗口,用“或“(|)操作符来建立。
            • glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE|GLUT_DEPTH);
          1. 处理窗口和接收键盘和鼠标输入
          2. 绘制三维物体
          3. 后台管理
          4. 运行程序