admin管理员组文章数量:1794759
计算机图形学基础
本文章是Fundamental of Computer Graphics一书的读书笔记。
在正式步入本章之前,我们先来介绍一个生活当中很常见的概念——像素。什么是像素?像素是数字图片的最小单位,你不可能在一张显示在屏幕上的照片找到比这个小色块更小的东西了。我们通常看不见它,就像行人不会留意地上的蚂蚁,一个个小色块在屏幕上紧密排列起来之后,就会令人产生形状的错觉。可当这张照片展现出的欺骗技术太过蹩脚,你就会像被路上的蚂蚁咬了一口一样,警惕地注意到图片当中的像素板式蒸发器,例如当图片放大到不合适的比例时,屏幕上就会出现明显的锯齿:
右边被过度放大了的图像显然很不真实和自然,但有一点值得我们注意:它的大致形状和颜色,和被放大之前是毫无二致的。任何人都可以一眼得出结论右边的图像相比左边的图像更加粗糙,那么当我们谈论到清晰程度的时候,我们在谈论什么?我们是在谈论这张图片的分辨率(此处指图像中的像素数量)吗?并不是,高分辨率的图片可能清晰程度比低分辨率的图片更差,看下面这个例子:
明显更加清晰的第一张照片的分辨率是2290 x 2362,而模糊的第二张照片的分辨率是2748 x 2834,很明显第二张照片的像素数量在两个方向上都要比第一张照片更多,但翠青蛇是第二张照片反而更模糊。这是因豪门小老师为我们直觉上的“清晰程度”并不和分辨率画等mi185号,清晰程度度量了这张照片对“理想中的照片”的拟合程度。所谓“理想中的照片”是对于某一现实存在的照片所描述的画面,对其描述程度最好的一张。这张“理想的照片”可能存在,也可能不存在。例如说对于拍摄于某地的风景照片来说,“理想的照片”就应当是那位摄影师手中的原片,而对于写实画风的游戏来说,取其某一时刻的截图(或者把游玩过程看成连续的一系列截图),玩家脑海中认为的更好的画面就是这张截图对应的“理想的照片”。
接下来再引进一些数学,让我们把图片看成一种映射,那么由像素组成的图片便体现了一个从二维坐标到颜色(在计算机中用一组数字表示)的映射,那么“理想的照片”便是诸多试图表示同一个画面中最优阿里云国际版的一个映射。这样一来,任何实际存在的照片,都只是对于“理想的照片”的一种近似。
位图(bitmap)和矢量图(vector image)上述基于像素的讨论仅限于位图,也即用像素点阵来表示图像。例如下面的点阵描绘了一只蓝色的胖头鱼。
位图的图像质量是极易受到图片操作如拉伸、裁剪、压缩等等影响的,我们时常能看见糊成色块的表情包,这便是多次有损压缩的功劳,人称电子包浆。
矢量图的图像质量则十分坚挺,如字体便是矢量图的一种,随意的增大和减小字号都不会显著影响字体的显示质量,这是因为矢量图和位图不一样,它并不储存单个像素,而是储存绘制图像所需的步骤。因此它本质是一组指令,而计算机严格遵守指令绘制出来的图像自然拥有很高的图像质量。上海餐厅周但相较于位图,它难以表示复杂的形状。
显示设备如今的显示设备都是以像素为单位显示图像的,每个像素都由几个基本色块组成,通过不同颜色发光单元发出的不同强度的光的混合,显示器就可以显示各种颜色。,凑近显示器观察,我们通常可以看到分野明显的像素块。
根据不同显示器发光物的不同,可以分为两类:
发光式(Emissive displays)发光式显示器的每一个像素都可以发光,并且可以根据电流的不同改变发光强度,比较典型的如LED(Light-Emitting diode)显示器。
投射式(Transimissive displays)投射式显示器的像素本身不发光,其光源来自像素块后面的背光,每个像素通过某种方式来控制通过的光的量,进而控制不同像素的发光强度。比较典型的有液晶显示器(Liqui时殷弘d Crystal Displays, LCD),其显示效果是通过液晶的特殊性质实现的。
计算机中的照片正如我们之前所说,照片可以看作一个映射,而在计脸上长痘痘了怎么办算机中我们可以进一步具体地谈论这一个映射的储存形式,假设照片是黑白的,那么这一映射就可以表示为: I(x, y):R\\rightarrow V(R\\subset R^2,V\\subset R^+) 在这个映射中,颜色值使用正实数来表示(显然用负数代表颜色没有意义),0代表黑色,而越大则越趋近于白色,这一表示称为灰度。如果照片是彩色的,使用红、绿和蓝色作为基色,那么应该是: I(x, y):R\\rightarrow V(R\\subset R^2,V\\subset (R^+)^3) 又因为每一个像素都不是一个单独的点,而是占有一定面积的一块,我们认为它的形状是正方形,每个像素的位置以这块正方形的中心表示。以照片左下角的像素中心为原点建立笛卡尔坐标系:
令照片的长为L,宽为W,那么右上角的像素坐标处于(L-1,W-1)处,整个照片覆盖范围为: R=[-0.5, L-0.5]\\times [-0.5, W-0.5]
像素格式从上文我们已经知道,我们使用正实数来表示颜色值,也即像素的值。对计算机来说,既然存在整数和浮点数的区分,也就产生了不同的颜色值的表示方法,这一节中我们主要讨北京旅游线路论RGB颜色模型,即用红色、绿色和蓝色作为基色来表示各种颜色。
当我们需要高精度的图像时,我们会选择使用32位浮点数来表示每一个颜色,那么一个像素的大小就是96比特,这么高精度的图像是非常耗费资源的,在这种表示方法下,仅仅显示一个1000万像素的图片(分辨率为3872 x 2592,比4k分辨率要高一些)就能耗去115MB的内存。
当精度要求不高时,例如要让显示设备显示这张照片时,我们可以使用整数代表的小数作为照片的格式。什么是“整数代表的小数”?为了统一颜色的数值,我们会将所有颜色的值归一化处理到[0,1]区间内(显示器的亮度是有上限的),这样做方便处理。而如果用浮点数来表示颜色的数值又太过浪费,我们不需要那么高的精度,因此我们选择用8位整数来表示[0,1]区间里部分数字。8位整数大小范围是0-255,我们在储存这些整数的时候认为它们是分子,而分母为255,因此我们储存的就不是整数而是分数了,这样这256个整数就被均匀地映射到了[0,1]区间上,同时我们有整数0代表浮点数0,整数255代表浮点数1。
以浮点数作为颜色数值的图像格式通常称为高动态范围图像(High Dynamic Range image, HDR),与之对应的,用整数作为颜色数值的图像格式通常称为低动态范围图像(Low Dynamic Range image, LDR)。以下是一些常见的像素格式:
1-bit灰度,非黑即白,通常用于字体渲染8-bit RGB固定范围色彩,每个颜色值都用8比特整数表示,一个像素大小为24比特,家用显示器一般就使用这种格式10-bit RGB固定范围色彩,每个颜色值都用10比特整数表示,一个像素大小为24比特,和8-bit RGB差不多。12-bit 到14-bit RGB固定范围色彩,一般常见于相机原片和专业摄影16-bit RGB固定范围色彩,一般常见于专业摄影和印刷16-bit 灰度,一个像素叨叨姐大小为16比特,用于医疗上的放射影像16-bit 浮点RGB,通常用于存储HDR图像,以及作为实时渲染的中间格式32-bit 浮点RGB,通常用于处理HDR图像,以及软件渲染伽玛值假设我们正在使用一台使用黑白显示器的电脑,并且忘记刚刚学过的关于像素格式的事,我们现在可以给像素输入任意的实数,那么对于电脑上的每一个chinaunix像素块,我们输入0为黑,输入1为白,木村拓哉女儿那么输入0.5呢?是刚好在白和黑之间的灰色吗?
从数值上历史吧来说是的,这个像素块刚好发出了其最大发光强度一半的光,但是在你看来并不是这样,人眼对于颜色强度的感知是非线性的,这导致了0.5这个颜色值在你看来不真实,为了对这一认知差异进行弥补,显示器厂商通常会使用一种称为伽玛校正(Gamma correction)的技术来让这个例子里的0.5龙之谷手游吧代表的就是你眼中的恰到好处的灰色。
伽玛校正的原理很简单,假设电脑向显示器输入a作为颜色的数值(a在0到1之间),那么实际的显示数值为 C_{实际显示数值}=C_{最大显示数值} \\times a^{\\gamma} ,其中的 \\gamma 就是伽玛值。
大多数时候,伽玛校正都是对我车罩们很有帮助的。但在某些特殊情况下,我们需要显示器输出我们指定的颜色值,而这个时候伽玛校正就帮了倒忙了,这时候我们就需要得到伽玛值,然后在输入的时候以 a^{1/\\gamma} 作为颜色一女二夫值而不是 a ,如此就可以让显示器显示我们指定的颜色数值了。
透明合成(Alpha compositing)目前为止我们的颜色系统可以顺利描述大多数的物体——汽车、小花、房子、门以及门上的玻璃。等等,玻璃?我们怎么描述玻璃的颜色呢?玻璃可以看作是透明的物体,透明的物体不应该有颜色,那么我们就要将玻璃一脚踢出我们的RGB俱乐部,警告它不许再出现吗?不用如此残忍,我们可以引入新的值来描述“透明度”,这在颜色系统中通常称为Alpha值或Alpha通道,我们规定Alpha值的大小在[0,1]区间范围内。
我们先给出结论,一块无色的玻璃的Alpha值应该是0,规定玻璃的颜色为黑色,在任何透过玻璃观察的视角上,眼睛所看到的都是玻璃后方的景色,这时候观察者眼中的颜色为 :color_{看到的}=(1-0) \\times color_{玻璃后方的}+0\\times color_{玻璃}=color_{玻璃后方的}
这就汽车清洁用品是Alpha值的用法,假设一个物体的Alpha值为 \\alpha ,其颜色为 c_澳洲中文网{物} ,其相对观察方向后方的颜色为 c_{背景} ,那么最终观察到的颜色就是 c=\\alpha\\times c_物 + (1-\\alpha)\\times c_{背景}
图片的储存一些流行的图片储存格式有:
jepg. 这是一种广泛运用的有损压缩格式,其根据人类视觉系统的特点对图像块进行压缩。这一格式适合内容为自然景观的照片tiff. 这是一种无损压缩格式,这一格式通常用来无损存储8位或16位RGB图片ppm. 猫咪的品种 这种非常简单的无损无压缩格式通常用来储存8位RGB照片pn熏衣草精油g. 是一种支持无损压缩的位图图形格式,支持索引、灰度、RGB三种颜色方案以及Alpha通道等特性版权声明:本文标题:计算机图形学基础 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1685905411a8884.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论