【计算机图形学基础】一 光栅图像

【计算机图形学基础】一 光栅图像

该系列为阅读书籍Fundamentals Of Computer Graphics所做的笔记。

本篇对应书中第三章Raster Images。Raster其词翻译为光栅,光栅这个词在字面上非常难以看出它想表达的意思。于是转而去Google它的英文释义。

在Google中可以看到如下:

1930s: from German Raster, literally ‘screen’, from Latin rastrum ‘rake’, from ras- ‘scraped’, from the verb radere .

Raster字面上的意思是屏幕。这个词来源于rake的意思掠过,和scraped的意思刮过。说到屏幕我们都会想到逐行扫描中,新的图像信息确实是一行一行掠(扫描)过去的,所以这个词的发明其实非常形象。

光栅可以理解成把一个图像分解成逐像素的。像素英文pixel,全称picture element,中文全称应该是图像元素,简称像素。
光栅显示装备包括显示器、电视和打印机,光栅输入设备有现代数码相机、扫描仪等。

除了光栅图像以外还有别的形式的图像,只是光栅这种形式已经非常流行了,所以现在基本图像都是光栅形式的。光栅图之外还有一种图叫做矢量图,光栅图可以转换成各种分辨率的光栅图,这是题外话了。

光栅设备

生词

  • emissive 发射的
  • transmissive 递送的
  • illumiate $v.$ 照亮
  • 输出设备
    • 显示设备
      • 液晶显示屏 LCD (liquid crystal display) 原理是晶体的不同面有不同颜色,通过转动晶体可以出现不同的颜色,缺点是可视角度小
      • 发光二极管屏幕 LED (light emitting diode display) 色域大,亮度高,可视角度大
    • 影印设备
      • 染料升华打印机
      • 喷墨打印机
  • 输入设备
    • 2d感应器:数字相机
    • 1d感应器:平板扫描仪

显示

分为emissive设备和transmissive设备两种,前者常见为LED显示器,可以自发光;后者为液晶显示器,需要一个背景光源。

影印设备&输入设备

略过不看。

图像、像素、几何体

生词

  • reproduce 重现
  • idealize 理想化
  • notion 概念

这里先贴上一篇文章单词image、picture和photo有什么区别

可以简单地说,picture这词来源较老,表示被画出来的,可以被触摸的绘画作品,可被翻译为图片或者图画;photo的定义是picture made by camera;而image表示一个影像,你看镜子的时候,看到的画面就可以成为image,常为无形,翻译为图像较为妥当。

为了避免图片过大,每个像素中的一个颜色通道只有8个位,256种亮度。LDR图一般储存亮度用的都是整数,而HDR图可以用浮点数来表示亮度,所以精度更高。

以下是一些常见的像素格式:

  • 1-bit 灰度,常用于文字
  • 8-bit 固定范围RGB(24 bits total per pixel) 每个颜色通道八个位,也就是256的精度
  • 16-bit 固定范围RGB 常用于专业摄影和打印
  • 16-bit 固定范围灰度 x光或者其他医学影像
  • 32-bit 浮点RGB HDR图像

Second, encoding images with limited precision leads to quantization artifacts, or banding, when the need to round pixel values to the nearest representable value introduces visible jumps in intensity or color.

这是一个英语长句。when the need是一个词组,表示当需要干啥的时候。这里表示当需要把像素取整至最接近的整数的时候。这时会introduces,也就是引入,引入可见的亮度或者颜色跳跃。整句可翻译为:当需要对有限精度编码的图像中的像素,取整至最接近的整数的时候,会引发亮度或者颜色的跳跃。(也就是传说中的失真)

显示器亮度与伽马

我们可以这么定义:关闭屏幕的时候屏幕为黑色,开启屏幕的时候为白色。假设输入数据中亮度范围为0~1,那么亮度的一半就是屏幕物理亮度的一半。然而其实人对亮度的敏感度不是线性的,在高亮度的时候,人眼分辨亮度差别的敏感度不高,而在亮度低的时候则相反。所以人眼觉得的中等亮度,其实不是0.5那个亮度。为了不浪费仅有的八位储存空间,我们尽可能地把人眼觉得的中等亮度(据说是0.18)储存为0.5,于是这就需要一个公式来校正。

要在显示器上正确显示亮度,有两点要注意:

显示器显示的亮度与输入的值其实是非线性关系的。什么意思呢?就是当你输入亮度0、0.5、1的时候,显示器亮度可能分别是0,0.25、1。假设输入亮度为$a$,可以得到这样一个公式来表达他们的关系:

display intensity = (maximum intensity)$a^\gamma$

在上面的举例中,$\gamma$就应该为2。

这个公式只能够近似地描述显示器的非线性显示。假设我们知道输入亮度$a$以及输出亮度,这里假设输入亮度为0.5,那么可以得到:

$$0.5 = a^\gamma$$

从而推导出:

$$\gamma = \frac{ln\,0.5}{ln\,a}$$

顺便这里提一下怎么把log计算转为ln计算
$$log_ab = \frac{log_cb}{log_ca} = \frac{ln_b}{lin_a}$$
这里第一步叫换底公式。

换底公式的证明:
若有对数$log_ab$,现假设$a=n^x$,$b=n^y$,可得:

$x = log_na$, $y = log_nb$
所以:
$$log_ab = log_{n^x}{n^y}\,\,① $$
已知对数基本公式:
$$log_{xa}b = \frac{1}{x}log_ab$$

$$log_axb = xlog_ab$$
对$①$进行处理可得
$$log_ab = log_{n^x}{n^y} = \frac{1}{x}log_n{n^y} = \frac{y}{x}log_nn = \frac{y}{x} = \frac{log_nb}{log_na}$$

电视上,或者游戏中我们常常可以看到伽马校正的功能,就是在调整$\gamma$的值。

关于gamma校正,可以参考这篇文章

关于真实的显示还有一点,这里就不讲了。

RGB颜色

讲光的三原色的混合,莫得谈。

alpha混合

这部分讲的是blend的内容,也先不提。

Buy Me A Coffee / 捐一杯咖啡的钱
分享这篇文章~
0%
//