图形学

向量值常用于表示力,位移,速度等物理量
这里写图片描述

单位向量:模为1

点积:

这里写图片描述

叉积:计算结果是向量
叉积只能用于3D向量,2D向量没有叉积。向量w同时垂直于u和v。
左手拇指定则(用于左手坐标系):指定w的方向

  1. 将拇指之外的4个手指指向第一个向量u的方向
  2. 向v的方向转动手指

将矩阵的每一行/列视为一个向量。

矩阵乘法:
结果矩阵C的第ij个元素的值等于A的第i个行向量和B的第j个列向量的点积
Cij=Ai,* ∙B*,j
由于在点积的计算中2个向量的维度必须相等,所以矩阵A的列数必须与矩阵B的行数相同
这里写图片描述
所以矩阵可以用结合律,不能用交换律

转置矩阵:行列交换

单位矩阵:

  • 正方形矩阵
  • 除了对角线上的元素为1外,其他元素均为0。
  • 将一个矩阵与单位矩阵相乘,得到结果不会发生改变。单位矩阵可以被看成是矩阵中的数字1

矩阵行列式:用符号detA表示

  • 将一个正方矩阵映射为一个实数
  • 得到逆矩阵
  • 余子式:删除了第i行和第j列后的(n − 1)×(n − 1)矩阵。
    这里写图片描述

    伴随矩阵:

  • 对于1个正方形矩阵,用Cij=(−1)i+jdetA¯ij(代数余子式)代替对应的元素Aij,获得A的余子矩阵CA

  • 对CA进行转置,得到A的伴随矩阵

    逆矩阵:

  • 只有正方形矩阵能做逆运算

  • 不是所有的正方形矩阵都有逆矩阵。有逆矩阵的称为可逆矩阵,没有逆矩阵的称为单调矩阵。
  • 如果存在逆矩阵,则唯一。
  • 将一个矩阵与它的逆矩阵相乘,其结果必定为单位矩阵。矩阵与它的逆矩阵的相乘次序可以互换
  • 这里写图片描述
  • 对于小矩阵(4×4矩阵或更小)来说,使用伴随矩阵的方法更有效率。对于更大的矩阵来说,我们可以使用诸如高斯消元法的方法求逆矩阵。但是在3D计算机图形中,要处理的矩阵具有特定的形式,因此可以事先确定求逆矩阵的方程,这样我们就无需浪费CPU资源去求一般矩阵的逆矩阵了。
  • (AB)-1=B-1A-1

    线性变换:

  • 函数τ(v)= τ(x,y,z) = (xʹ,yʹ,zʹ)。这个函数的输入和输出都是一个3D向量。

  • 满足这里写图片描述

仿射变换:

  • 线性变换加上平移向量 α(u)=τ(u)+b
    这里写图片描述

组合变换:

  • 有缩放矩阵S,旋转矩阵R,平移矩阵T。将这3个变换连续应用于立方体。
  • 可以将SRT看成一个矩阵C,将所有的3个变换封装为一个净仿射变换矩阵。
  • 注意支持结合律不支持交换律

坐标转换变换:
把将点或向量的坐标从一个参考系转换到另一个参考系
这里写图片描述
这里写图片描述

例如

  1. 物体可能在多个场景中重复使用,在局部坐标系中建立对象并存储坐标,通过坐标转换矩阵将物体从局部坐标系变换到不同的世界坐标系。
  2. 为了生成场景的2D图像,把一个局部坐标系(称为观察空间)附加在摄像机上,从世界空间到观察空间的坐标转换称为观察变换,相应的矩阵称为观察矩阵。

active变换可以和坐标转换相互转换。
这里写图片描述

Direct3D是一种底层绘图API,位于应用程序和绘图硬件之间。
组件对象模型(COM)技术使DirectX独立于任何编程语言,COM对象称为接口,并把它当成一个普通的C++类来使用。
2D纹理(texture)是一种数据元素矩阵,可以用于存储图像数据。
纹理可以被绑定到渲染管线(rendering pipeline)的不同阶段(stage)

显示:
这里写图片描述

  • 两个缓冲区分别称为前台缓冲区和后台缓冲区。
  • 前台缓冲区存储了当前显示在屏幕上的图像数据
  • 在后台缓冲区中绘制动画的下一帧
  • 当后台缓冲区的绘图工作完成之后,交换前台缓冲区的指针和后台缓冲区的指针。

    深度缓冲区(depth buffer):

  • 深度缓冲区中的每个元素与后台缓冲区中的每个像素一一对应

  • 判定物体的哪些像素位于其他物体之前

因为计算机显示器上的像素分辨率有限,所以当我们绘制一条任意直线时,该直线很难精确地显示在屏幕上。
这里写图片描述
通过提高显示器的分辨率(缩小像素的尺寸),或者使用抗锯齿技术。
Direct3D支持多重采样的抗锯齿技术,它通过对一个像素的子像素进行采样计算出该像素的最终颜色,减弱阶梯效果,实现更平滑的图像。
例如4X多重采样(每个像素采样4个邻接像素)
这里写图片描述
一个像素与多边形的边缘相交,像素中心的绿颜色存储在可见的三个子像素中,而第4个子像素没有被多边形覆盖,因此不会被更新为绿色,对4个子像素(3个绿色和一个白色)取平均值,获得淡绿色。

计算机图形学pdf 内容可copy 适合要学习开发3d游戏的朋友们学习 希望对大家有所帮助 目录: 第1章基本图形的生成 1.1 直线 1.1.1 生成直线的DDA 算法 1.1.2 生成直线的中点算法 1.1.2 生成直线的Bresenham算法 1.1.3 程序设计案例 1.2 圆 1.2.1 DDA 算法 1.2.2 Bresenham算法 1.2.3 程序设计案例 1.3 椭圆 1.4 区域填充 1.4.1 扫描线填充 1.4.2 种子填充 1.4.3 程序设计案例 1.5 字符的生成 1.6 图形裁剪 1.6.1 线裁剪 1.6.2 多边形裁剪 1.6.3 字符裁剪 1.6.4 裁剪程序设计案例 1.7 Visual C++中基本绘图函数 1.8 课后练习 第 2 章二维图形 2.1 用户坐标到屏幕坐标的变换 2.1.1 窗口到视口的变换内容 2.1.2 窗口区到视图区的坐标变换 2.2 几何变换 2.1.1 基本变换 2.1.2 复合变换 2.1.3 几何变换程序设计案例 2.4 平面曲线图 2.4.1 正叶线 2.4.2 正叶线蝴蝶结 2.5 平面曲线程序设计案例 2.6 课后练习 第 3 章图形交互技术 3.1 用户接口设计 3.2 逻辑输入设备与输入处理 3.2.1 逻辑输入设备 业搜---www.yeaso.com CAD教育网制作www.cadedu.com 《计算机图形学原理及算法教程》(Visual C++版)和青芳清华大学出版社出版 3.2.2 输入模式 3.3 交互式绘图技术 3.4 交互技术程序设计案例 3.5 课后练习 第 4 章简单 CAD 绘图系统开发实例 4.1 计算机图形学绘图基础 4.1.1 Visual C++开发系统基本绘图知识 4.1.2 计算机图形学会图系统设计基本原则 4.1.3 图形程序设计步骤 4.1.4 在Visual C++集成开发环境下程序的调试 4.1.5 计算机程序结构设计基础 4.1.6 绘图程序设计基本方法 4.1.6.1 图形层次结构和程序模块结构 4.1.6.2 面向对象程序设计 4.1.6.3 绘图子程序和主程序 4.1.6.4 编程绘图方法 4.2 图形的数据结构 4.2.1 图形信息的分类 4.2.2 图形数据结构 4.2.3 计算机对数据的管理—数据文件 4.2.4 图形数据的存储状态 4.2.5 动态文件数据结构的组织原则 4.2.6 简单CAD 绘图系统编程实例中的数据结构 4.2.6.1 图形元素基类的组织 4.2.6.2 组织图形类系统文档 4.2.6.3 增加图形元素 4.2.6.4 实现各类图形的绘制 4.2.6.5 保存图形数据到文档 4.3 简单CAD 绘图系统功能简介 4.3.1 简单CAD 绘图系统运行界面 4.3.2 简单CAD 绘图系统功能 第5章三维图形 5.1 三维图形几何变换矩阵 5.2 三维图形基本变换 5.2.1 平移变换矩阵 5.2.2 比例变换矩阵 5.2.3 旋转变换矩阵 5.2.4 对称变换 5.2.5 错切变换 5.3 图形的投影变换 5.3.1 投影变换分类 5.3.2 平行投影 5.3.2.1 正平行投影(三视图) 5.3.2.2 斜平行投影 业搜---www.yeaso.com CAD教育网制作www.cadedu.com 《计算机图形学原理及算法教程》(Visual C++版)和青芳清华大学出版社出版 5.3.2.3 透视投影 5.4 三维变换程序设计案例 5.5 课后练习 第 6 章曲线与曲面 6.1 曲线曲面参数表示的基础知识 6.1.1 非参数表示和参数表示 6.1.2 参数表示的基本特征 6.1.3 曲线段之间的连续性 6.1.4 曲线曲面设计中的几个概念 6.2 常用参数曲线 6.2.1 一般规则空间曲线 6.2.2 Bezier 曲线 6.2.3 B 样条曲线 6.3 参数曲面 6.3.1 函数式曲面 6.3.2 旋转曲面 6.4 常用曲面 6.4.1 双曲线曲面 6.4.2 Bezier 曲面 6.4.3 B 样条曲面 6.5 曲面与曲线程序设计案例 6.6 课后练习 第 7 章几何造型 7.1 实体的表示模型 7.1.1 形体的边界表示模型 7.1.2 构造表示 7.1.3.边界表示 7.1.3.1 欧拉操作 7.1.3.2 集合运算 7.2 求交分类 7.2.1 求交分类 7.2.2 基本的求交算法 7.2.2.1 线与线的求交计算 7.2.2.2 线与面的求交计算 7.2.2.3 曲面与曲面的求交 7.3 图形相交-相切程序设计案例 7.4 非传统造型技术 7.4.1 基本概念 7.4.2 分形造型对模型的基本要求 7.4.3 分形造型的常用模型 7.4.4 分数维图形应用 7.5 分形造型程序设计案例 7.6 课后练习 业搜---www.yeaso.com CAD教育网制作www.cadedu.com 《计算机图形学原理及算法教程》(Visual C++版)和青芳清华大学出版社出版 第 8 章消隐技术 8.1 线消隐 8.2 面消隐 8.2.1 区域排序算法 8.2.2 深度缓存(Z-buffer)算法 8.2.3 扫描线算法 8.3 消隐 8.4 消隐技术程序设计案例 8.5 课后练习 第 9 章真实感图形绘制 9.1 颜色模型 9.1.1 CIE 色度图 9.1.2 常用的颜色模型 9.2 简单光照明模型 9.2.1 Phong 光照明模型 9.3 局部光照明模型 9.3.1 局部光照明模型 9.4 光透射模型 9.4.1 透明效果的简单模型 9.4.2 Whitted 光透射模型 4.4.3 Hall 光透射模型 9.4.4 简单光反射透射模型 9.5 纹理及纹理映射 9.5.1 纹理的概述 9.6 整体光照明模型 9.6.1 光线跟踪算法 9.6.2 辐射度方法 9.7 真实感图形学程序设计案例 9.8 课后练习 第 10 章计算机动画 10.1计算机动画概述 10.2计算机动画的应用领域 10.3 计算机动画的分类和原理 10.4 目前计算机动画面临的问题 10.5 计算机动画程序设计案例 10.5.1 帧动画 10.5.1 实时动画 10.6 练习题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值