【计算机图形学CG】虎书第一章——Introduction笔记

 1.1 Graphics Areas

可以将图形学划分为不同的领域,核心领域有Modeling、Rendering、Animation三个:
Modeling:

Modeling deals with the mathematical specification of shape and appearance properties in a way that can be stored on the computer.

即Modeling将图形处理为具有数学规范的计算机可以存储的数据
Rendering

Rendering is a term inherited from art and deals with the creation of shaded images from 3D computer models.

即把Modeling建立好的3D图形(可以是任何的数学描述)变成可以直接显示的二维矩阵(特定的数学描述)
Animation

Animation is a technique to create an illusion of motion through sequences of images.

计算机动画需要在建模和渲染的基础上进行,但是新增了随时间变化的特性

非核心领域包括:
User interaction 交互设计
Virtual reality 虚拟现实
Visualization 可视化
Image processing 图像处理
Three-dimensional scanning 3D扫描
Computational photography 计算摄影

1.2 Major Applications

计算机图形学的主要应用:

Video Games 电子游戏
Cartoons 卡通动画
Visual effects 视觉效果
Animated films 动画电影
CAD/CAM 计算机辅助设计/计算机辅助制造
Simulation 仿真
Medical imaging 医学成像
Information visualization 信息可视化

1.3 Graphics APIS

随缘,都可以使用

1.4 Graphics Pipeline

  • 绘图管道中使用的几何操作几乎完全可以在4D坐标空间中完成,4D坐标系是计算机科学中使用的最微妙、最美丽的结构之一
  • 用不同程度的细节来表示一个模型是有用的

1.5 Numerical Issues

解决了一些特殊运算的问题,可以使一些特殊的浮点数运算不用条件判断直接运算也不会出错

算术运算:

+a/ (+ ) = +0,
−a/ (+ ) = 0,
+a/ ( −∞ ) = 0,
−a/ ( −∞ ) = +0.
∞ + = + ∞,
∞−∞ = NaN,
∞×∞ = ∞,
∞/ = NaN,
∞/a = ∞,
∞/ 0 = ∞,
0/ 0 = NaN.
+a/ +0 = + ∞,
−a/ +0 = −∞.

 逻辑运算

任何数<+

任何数>−∞

+∞>−∞

包含NAN的语句真值一定是false

1.6 Effciency 

使用下面的流程来编写图形程序,可以提高程序运行效率的方法:

  1. 尽可能以最直接的方式编写代码。根据需要动态计算中间结果,而不是存储它们。
  2. 以优化模式编译
  3. 使用现有的任何分析工具来查找关键瓶颈
  4. 检查数据结构以寻找改进局部性的方法。如果可能,使数据单元大小与目标体系结构上的缓存/页面大小相匹配
  5. 如果分析显示了数值计算中的瓶颈,则检查汇编代码,以查找遗漏的效率。重写源代码以解决问题

1.7 Designing and Coding Graphics Programs

1.7.1 Class Design

一个Graphics Program一般至少需要设计如下几种类:

  • vector2 二维向量
  • vector3 三维向量
  • hvector 齐次坐标向量即四维向量
  • rgb 一个表示颜色的三元组
  • transform 变换矩阵,一般使用4*4矩阵
  • image 一个二维数组,数据类型为rgb

注:数组和向量的区别是:向量是抽象数学概念,仅仅为一个有序对;数组是计算机存储数据的一种方式

1.7.2 Float vs Double

到底使用Float还是Double?两位作者分别给出了他们的建议

“存储float,运算double”,即在把float取出运算之前做一次类型转换,转换为double处理和运算,再把结果转回float存储回去——P.S.

“非必要不使用double,除非有明确的证据证明double非用不可”——S.M.

1.7.3 Debugging Graphicas Programs

作者给出了一些Graphics Program的调试技巧(trick):

  • The Scientifific Method:合理的推理,猜出问题可能出在哪里
  • Images as Coded Debugging Output:使用图形输出来辅助,提醒自己某个错误的发生
  • Using a Debugger:有时候还需要使用断点式的传统调试器
  • Data Visualization for Debugging:收集必要的数据,将其可视化(生成表格或插图)从而超出问题所在
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值