图形图像学习随笔:计算机图形学的一些基本概念

2023-10-27

本文内容摘抄于:《计算机图形学的概念

一、计算机图形学的范畴

1、图形主要分为两类,一类是基于线条信息表示的,如工程图、等高线地形图、曲面的线框图等;另一类是明暗图,也就是通常所说的真实感图形;
2、计算机图形学利用计算机建立图形所描述的场景和物体的几何表示,再用某种光照模型计算在假想的光源、纹理、材质属性下的光照明效果;
3、数字图像强调计算机内以位图(Bitmap)形式存储的灰度信息;而计算机图形则强调景物的几何属性,计算机生成的景物由几何模型(位图或向量方式)和物理属性信息共同描述;
4、三维多面体物体的图形称为几何形体(Shape)或景物,由二维图像运动产生的动态图像称为视频(Video, Movie),又将使某一图形随时间变化或运动得到的动态图形称为动画(Animation)。通常意义上的图像(Image)就是绘画、照片、影像等的总称。照片、影像等是从现实世界中直接采样获得的,但是在计算机中都被数字化了,因此称之为数字图像(Digital Image)
在这里插入图片描述
5、在计算机内以二维方式来定义和存储几何图形称为二维计算机图形学(2D CG),以三维方式来表示和存储几何形体(景物)称为三维计算机图形学(3D CG)。在计算机内定义或表示图形、物体以及场景称为图形生成或几何建模(Geometric Modeling),所定义的对象称为几何模型(GeometricModel)。图形及景物模型由点、线、面以及球、立方体、圆锥、多面体等基本数学形状描述,并在计算机内变成用它们的几何信息(坐标值)和相位信息(连接关系)表示和存储的数学模型。
6、给图形或景物模型着色,以真实感的效果表现它们的技术称为绘制(Rendering),也称渲染。特别地,称模拟光照产生阴影的技术为明暗处理(Shading)。在图形与景物的数学模型上应用绘制技术,就能将其变换成作为数字图像数据的显示模型(Display Model)。
7、计算机图形学的主要内容就是图形或景物模型的建模和绘制,并在此基础上增加了把三维图形或景物模型在二维平面上表示的投影变换、在计算机内使景物变形的几何变换和进一步使景物运动作为动态图像显示的动画等。
8、把现实世界中的景物用图像输入设备(如数码相机、扫描仪、手绘板等)作为像素的集合采集进来,并在计算机内进行适当处理,最后作为图像从图形输出设备输出。这种情况一般不属于计算机图形学的范畴,通常属于数字图像处理技术这一重要领域
在这里插入图片描述

二、计算机图形学的研究内容

  • 建模:对景物的形状和外观属性进行数学定义,并且存储在计算机内。例如,一只咖啡壶可以表示为有序的三维点的集合,这些三维点按一定的插值规则连接起来构成了咖啡壶的模型。
  • 绘制:在艺术和建筑等领域也称为渲染、绘制效果图等。即根据三维计算机模型生成带光照明暗效果的具有真实感的图像。例如,可以建立咖啡壶受光线照射的反射模型,生成十分逼真的咖啡壶图像。
  • 动画:利用图像序列产生物体运动视觉效果的一种技术。这里也要用到建模和绘制,但加入了控制时间这个关键因素。而控制时间这个因素在基本建模和绘制中一般不予考虑。
  • 其他相关技术:GUI人机交互、虚拟现实、可视化、三维扫描。

三、常见的三维模型

1.线框模型(Wire-frame Model):这种模型以线条来表现三维形体的轮廓线,没有面,不能消隐、着色和绘制真实感图形
2.表面模型(Surface Model):表面模型在线框的基础上添加了表面,可以进行消隐、着色和绘制,从而得到具有真实感的视觉效果。包括:

  • 多边形(Polygon):物体、场景或地形采用多边形,特别是平面小三角组成的网格来近似表示
  • 参数曲面片(Parametric Patch):这些曲面片是“弯曲的四边形”。这种表示方法与多边形网格相似,只是这时各个多边形的表面变成了弯曲的
  • 基于点的模型(Point-based Model):基于对景物表面的非均匀采样所得到的景物的点云表示,点云模型可以描述景物表面的三维几何与光反射性质

3.实体模型(Solid Model):常见的有构造实体几何和体素两种

  • 构造实体几何(Constructive Solid Geometry, CSG):通过将简单形状的几何图元(如正方体、球、圆柱等)进行布尔运算,可以表示很多构造出来的立体几何模型
  • 体素(Voxel):这是一种被称为空间细分(Spatial Subdivision)的技术。把几何形体(或景物)空间细分为基本的立方体,称为体素,再把每一个体素标记为空或含有几何形体(或景物)的某一部分

四、变换与投影

  • 变换(Transformation)和几何变换:变换就是对景物几何模型施加某种处理,把处理前的景物形状数据转变成处理后的景物形状数据的数学过程。例如,当表示三维景物模型时,如果想从各个方位来观察它,就需要把景物形状模型在三维空间移动、旋转甚至缩放。像这样移动、旋转、缩放三维景物模型的变换称为几何变换(Geometric Transformation)
  • 视点变换:如果想从不同的方向来表示三维景物模型,我们不是移动模型,而是让投影的方向(观察方向或视线的方向)移动、旋转。我们把这种坐标系的移动、旋转称为观察点变换或者视点变换(ViewingTransformation),有时也称为坐标变换。
  • 投影变换:把三维景物模型表示成能在图像显示器屏幕上显示的二维图像时,需要进行三维空间景物模型向二维平面的投影变换(ProjectiveTransformation)。

五、绘制与显示

  • 绘制(Rendering):指用具有现场真实感的方式来表现模型的技术,一般包含消去在三维景物投影中不可见的面(隐藏面)的处理、景物在光照时的表面明暗处理(Shading)、以及表现景物表面形状及凹凸的纹理映射(Texture Mapping)技术、光照技术——光线追踪(RayTracing)方法与辐射度(Radiosity)方法等
  • 显示:完成了三维景物建模和绘制之后,还必须将其在显示器屏幕等二维平面上呈现出来。要实现这一目的,首先要借助投影变换制作投影图。其次,在图像显示器等光栅输出设备上图形是用像素(Pixel)的集合来表示的。例如,图2.9中左图所示的三维几何形体的部分棱线及顶点的向量表示就被投影成右图的像素集合表示,即把作为向量数据记录于计算机内的棱线数据转变成像素集合表示的图像数据。这种像素数据集合也被称为数字图像。同时,为了正确地在显示器上绘制所要求的图像,还要为每个像素配上适当的颜色。在图形学里将上述处理过程称为光栅化(Rasterization)或者扫描转换(Scan Conversion)
  • 走样(Aliasing)与反走样(Antialiasing):用像素表示简单的线段(水平或垂直情况),只要保存相当于线段某一位置的像素着色(如涂黑)的信息即可。但是,对于呈某一角度倾斜的线段,如果用像素的集合来表示,就会呈现锯齿状的情况,因为像素点实际上是有一定的面积的。这种情况称为走样(Aliasing)。当然这只是计算机图形学中诸多走样现象之一。在实际显示时,并不是简单地把各个像素用黑白两色来表示,而是给予各像素色彩的明暗度及多级灰度。同时还要对斜线段进行其他处理,使其看上去更像直线。这种处理称为反走样(Antialiasing)。

六、图形流水线(Graphics Pipeline)

图形流水线的基本结构由三个主要阶段构成:应用程序、几何处理和光栅化,如图2.12(a)所示。而这三个主要阶段还可以进一步划分为若干个功能阶段,如图2.12(b)所示。换句话说,每一个阶段也可以是流水线结构。
在这里插入图片描述

  1. 应用程序阶段(Application Stage):这一阶段最重要的任务是建模,将需要绘制的几何体以及纹理数据输出到图形流水线的下一阶段。这些几何体都是绘制图元(如点、线、三角形、多边形、曲面片等)。同时,碰撞检测、纹理动画、几何变形、人机交互、键盘、鼠标、传感器等的输入检查都是这个阶段的任务。这个阶段的计算通常由CPU来执行。

  2. 几何处理阶段(Geometry Stage):这一阶段主要负责大部分多边形和顶点操作。可以将这个阶段(也是流水线)进一步划分为如图2.13所示的几个独立的功能阶段——模型与观察点变换、光照和着色、投影、裁剪、屏幕映射。很显然,几何处理阶段的计算量非常大。
    在这里插入图片描述

  3. 光栅化阶段(Rasterizer Stage):在这一阶段,根据几何处理阶段处理后的顶点、颜色和纹理坐标,将二维屏幕空间的图形顶点扫描转化成像素,即负责显示屏上每个像素的填充、纹理映射及可见性计算等工作。

需要指出的是,就目前计算机图形学技术发展水平而言,图形流水线中的应用程序阶段的功能通常是用软件方式实现的,即图形硬件加速常常位于图形流水线的后期。而几何处理和光栅化过程几乎都用硬件来实现。总的来说,软件实现和硬件实现之间经常性地交替推进,而且存在着将软件算法硬件化的趋势。近年来,图形硬件,特别是GPU(GraphicsProcessing Unit)的不断升级换代有力地支持了图形流水线这一概念,甚至连比较高级的应用程序阶段的算法都尽可能地利用硬件来实现。

七、数字图像

数字图像显示器(如CRT、LCD等)屏幕的像素示意图。屏幕上的基本可显示单位为像素,即图像元素(Picture Element, Pixel)的简称。程序通常假设像素排列成矩形阵列,称为光栅(Raster)。从左至右水平排列的一行像素的集合称为扫描线(Scan-line)。把一屏称为一帧(Frame)。需要用实际的二维屏幕坐标来表示像素的位置。计算机图形处理硬件具有存储像素信息的帧缓存(Frame Buffer)。

计算机生成的图形是数字化的。它们多数情况下是通过光栅设备展现给用户的。计算一个景物(多边形)在屏幕上的投影位置就是确定它在屏幕上的显示区域中覆盖了哪些像素。这一过程称为光栅化(Rasterization)或扫描转换(Scan Conversion)。也可以这样来理解,光栅化是对屏幕上一片连续的显示区域进行离散化采样的过程。在光栅显示器的屏幕上生成一个对象,实际上是往帧缓存的相应存储单元中写入数据。图形的光栅化过程一般分为两个步骤:首先确定像素位置(坐标);再用图形的颜色或其他属性对像素进行某种写操作,即着色。因此,光栅化就是确定屏幕空间中最佳逼近于图形的像素集合。

如果给每个像素分配一位来存储,就只能够显示黑白或单色图像。如果对每个像素分配n位来存储,就能够显示2的n次方级的灰度(Gray Scale)图像。所谓灰度级,就是给每个像素的明暗分配的等级。把像素从最暗到最亮分成等级(依照惯例最暗表示为0,最亮表示为1),用相应的整数来表示各等级。如果在单色图像显示时,各个像素分配8位来存储,则最多可以显示2的8次方= 256级灰度的单色图像。

对于彩色图像的显示,通常用红(R)、绿(G)、蓝(B)三原色混合产生新颜色。这称为RGB颜色空间。注意,红、绿、蓝三原色是以叠加方式混合的。这种加性颜色混合与另一种常见的减性颜色混合不同,后者控制着画家使用颜料进行调色以及各种画笔软件。

把整个图像用数字图像来表示或显示,实际上就是这样为每个像素分配位存储信息的。如果每一种颜色都用8位存储,256级灰度显示,各像素的颜色存储位数就是3×8=24位,能够表示2的24次方级即16兆种颜色的彩色图像。

在表示彩色数字图像时除了可以采用24位模式外,还可以采用32位模式,即附加一个8位的α(Alpha)通道,用来控制图像的透明性或者不透明性。图像可以用下面的公式来表示:c(x, y)=((r(x, y),g(x, y),b(x, y),α(x, y))

α = 1意味着像素是完全不透明的,即任何以前显示在像素上的背景颜色都被图像的颜色所重写。α = 0意味着像素是完全透明的,即任何以前显示在像素上的背景颜色将不受图像RGB颜色的影响。对于0<α<1,图像原有颜色cimage与像素当前颜色cpixel合成得到像素的最终颜色:
在这里插入图片描述

跟老猿学Python、学5G!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图形图像学习随笔:计算机图形学的一些基本概念 的相关文章

  • games101笔记 Shading

    什么是shading 不同的物体应用不同的材质的过程 就是计算出物体具体应该在的地方 物体的光照 物体本身应该有的材质 Blinn Phong Reflectance Model Blinn Phong反射模型 Blinn Phong Re
  • wstring 未定义的标识符,include

    wstring str L abcd VS2010提示 wstring未定义的标识符 include
  • Finding the Control Points of a Bezier Curve

    原文链接 https blog sklambert com finding the control points of a bezier curve Finding the Control Points of a Bezier Curve
  • PCL点云边界特征检测 (附完整代码 C++)

    一 概述 点云特征在定义上 以我个人理解 大致可以分为两大类 一类是类似于深度学习的featrue map意义 通过计算一些算子来描述点云局部 这种描述只是一种标识符 并没有实际的几何意义 比如 PFH或者 FPFH 之类的 它们只是通过对
  • GDI+学习笔记1- 概述

    一 图形概述 Windows 窗体 GDI 是构成 Microsoft Windows 操作系统子系统的应用程序编程接口 API GDI 负责在屏幕和打印机上显示信息 顾名思义 GDI 是 GDI 的后续 后者是包含在 Windows 早期
  • 转载:图像噪声的成因分类与常见图像去噪算法简介

    本文转载自博客园博主淇淇宝贝 图像的空域噪声以及二维降噪算法介绍 1 图像噪声的成因 图像在生成和传输过程中常常因受到各种噪声的干扰和影响而是图像降质 这对后续图像的处理和图像视觉效应将产生不利影响 噪声种类很多 比如 电噪声 机械噪声 信
  • (三) 计算机图形学 之 Shader 定义 (顶点 着色器)

    shader 决定材质 跟灯光的作用 shader 属性定义的通用格式 Properties Property Property 相当于一个类的公共变量 Properties 定义一个Int name display name Int 1
  • 音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍

    专栏 Python基础教程目录 专栏 使用PyQt开发图形界面Python应用 专栏 PyQt moviepy音视频剪辑实战 专栏 PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一 引言 笔者本人对音视频编码处理的基本概念
  • Python音视频开发:消除抖音短视频Logo的图形化工具实现过程详解

    前往老猿Python博文目录 一 引言 在 Python音视频开发 消除抖音短视频Logo和去电视台标的实现详解 节介绍了怎么通过Python Moviepy OpenCV实现消除视频Logo的四种方法 并提供了详细的实现思路和实现代码 但
  • 利用DDA、中点画线和Bresenham法画直线

    一 实验目的 在空白图像上绘制两个点 坐标分别为 24 26 和 140 624 并且绘制出以该点为端点的直线 要求利用DDA 中点直线及Bresenham算法进行绘制 二 设计方案 使用DDA 中点画线和Bresenham画线法绘制直线
  • OpenCV-Python图像直方图计算calcHist函数详解、示例及图形呈现

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 在前面几篇直方图相关的文章中介绍了直方图均衡 直方图匹配 局部直方图处理 基于直方图统计信息进行图像增强处理等图像处理与直方图相关的
  • 计算机图形学GAMES101(三)变换(模型、视图、投影)

    补充内容 R 是逆时针方向旋转的矩阵 R 是顺时针方向旋转的矩阵 可以发现R T R 1 像这样的矩阵叫做正交矩阵 以后如果要求往相反的方向旋转相同角度的变换 R 只需要求正向旋转的矩阵然后转置就可以了 本节涉及内容 仿射变换 线性变换 平
  • 关于欧拉角的问题

    一 简单介绍 自己主要做一个知识记录 想着学了还是要写点东西的 首先我们可以把欧拉角看成是描述方位的一种方法 我们可以用欧拉角来表示旋转 也可以用四元数 以及用矩阵来表示旋转 欧拉角是一种常用的描述方位的方法 在这里简单的介绍下方向和方位的
  • OpenCV-Python自适应直方图均衡类CLAHE及方法详解

    一 引言 对比度受限的自适应直方图均衡在OpenCV中是通过类CLAHE来提供实现的 老猿没研究过C 中的应用 但OpenCV Python中应用时与普通的Python类构建对象的机制有所不同 老猿做了相关测试 在此简单介绍一下 二 CLA
  • Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解

    前往老猿Python博文目录 一 引言 对于带Logo 如抖音Logo 电视台标 的视频 有三种方案进行Logo消除 直接将对应区域用对应图像替换 直接将对应区域模糊化 通过变换将要去除部分进行填充 其中 方法1又可以使用三种方法 一是使用
  • 62.[GIS基础]笛卡尔坐标系

    文章目录 笛卡尔坐标系 多坐标系 坐标系的嵌套 坐标变换 坐标系转换 转载请注明原始链接 http blog csdn net a464057216 article details 54578069 后续此博客不再更新 欢迎大家搜索关注微信
  • Game101现代计算机图形学入门学习笔记(七)

    光线追踪 一 光线追踪 1 为什么要使用光线追踪 二 基础光线追踪算法 1 光线 2 光线投射 1 着色过程 3 递归光线追踪 Whitted Style 1 基本过程 2 光线 表面相交 1 光线方程 3 轴对称包围盒 AABB 1 Un
  • VS2019下的GAMES101作业环境配置

    序 很久很久以前 好像看过这个 GAMES101 现代计算机图形学入门 闫令琪 哔哩哔哩 bilibili 里面好像还有一个实验 当时只是看了看视频里的热闹 并没有写实验 现在想想 还是写一写的好 万一以后用上了呢 虽然是个24K纯小白 估
  • OpenCV-Python调整图像对比度和带文字白纸照片背景漂白方法

    一 引言 在前面我们介绍了直方图均衡可以调整图像的对比度 那么还有没有其他方式调整对比度呢 答案是肯定的 今天就来招硬核的 二 对比度调整的硬核方法 这招硬核方法就是参考灰度图像的阈值处理 我们知道灰度图像的阈值处理的基本思想是 将图像中灰
  • GDI+学习笔记7-统计报表的图形绘制

    图形编程 SetPixel 设置指定点的颜色 COLORREF SetPixel HDC hDC int X int Y COLORREF crColor hDC 绘制点的DC X Y 坐标位置 crColor 设置的颜色 返回值为设置颜色

随机推荐