计算机图形学:绪论

目录

三个要解决的问题

光栅图形显示技术

图形与图像

直线生成算法

字符生成

RGB


三个要解决的问题

建模(modeling):如何表示事物

呈现(rendering):如何模拟图像的形成过程

行为(behavior):如何控制事物

光栅图形显示技术

  • 光栅显示器上的图像是由光栅(raster)形成的。
  • 光栅是一组互相平行的水平扫描线,每行扫描线是由大小一致的显示单元组成的显示序列,每一显示单元称为一个像素,可显示给定的颜色和灰度。
  • 光栅显示器将显示图元(primitive)如线、文字、填充颜色或图案区域等,以像素的形式存储到一个刷新缓冲器中。
  • 光栅图形具有对显示区域填充颜色或图案的能力,存储的图像更加易于操作。

  • 对于光栅系统来说,只能用光栅网格上的像素近似地描绘平滑的直线、多边形和如圆、椭圆等曲线图元的边界。
  • 这引起了图中看到的锯齿状与阶梯状的问题,在图形学中称为“走样”。
  • 用于减少或消除这种现象的技术称为“反走样”。
  • 如何使光栅图形最完美地逼近实际图形,是光栅图形学要研究的内容。
  • 确定最佳逼近图形的像素集合,并用指定的颜色和灰度设置像素的过程叫做图形的扫描转换,或者称作“光栅化”。

图形与图像

  • 要生成真实感图形,首先必须建立画面场景的几何表示,再用某种光照模型,计算场景在假想的光源、纹理、材质属性下的光照明效果。结果是以数字图象的方式提供的,因此计算机图形学与图象处理也有着密切的关系。
  • 图形与图象是密切相关但又不同的两个概念。图象纯指计算机内以位图形式存在的亮度和颜色信息,而图形则由场景的几何模型和物理属性共同描述。

因此建模就是找到事物的几何模型物理属性的图形表示方法,呈现就是将图形变成图像的过程

以下是计算机呈现二维图的简单步骤:

  1. 定义几何要素,构建物体在计算机内的表示。确定各物体在三维空间中的方位,选取场景观察点。
  2. 计算物体表面需要显示的颜色,这些颜色可以直接赋值,或根据光照条件及表面纹理计算得到。
  3. 光栅化,把物体的几何描述和颜色信息转换为屏幕的像素。 

直线生成算法

在网格上生成直线最常用的算法为Bresenham算法:

#include "device.h"

void lineBres (int xa, int ya, int xb, int yb) 
{
  int dx = abs (xa - xb), dy = abs (ya - yb);
  int p = 2 * dy - dx;
  int twoDy = 2 * dy, twoDyDx = 2 * (dy - dx);
  int x, y, xEnd;

  /* Determine which point to use as start, which as end */
  if (xa > xb) 
  {  x = xb;
      y = yb;
     xEnd = xa;
  }
  else {  x = xa;  y = ya;
          xEnd = xb;
}
  setPixel (x, y);

  while (x < xEnd) {
    x++;
    if (p < 0)
	     p += twoDy;
    else {
      y++;
      p += twoDyDx; 
    }
    setPixel (x, y);
  }
}

字符生成

对于给定某种字体的每一个字符,生成一个小型的矩形位图。位图中该位为1表示字符的笔画经过此位,该位为0表示字符的笔画不经过此位。 

RGB

研究发现,一种锥体细胞专门感受红光,另二种锥体细胞则分别感受绿光和蓝光。三者共同作用,使人们产生了不同的颜色感觉。

大多数彩色图形显示设备特别是CRT等光栅显示器均采用红、绿、蓝三原色,即使用RGB颜色模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值