Review of computer graphics

从模型生成二维图像– 光照模型

非真实感绘制– 风格化

真实感绘制– 基于物理原理

 

Sketchpad (1963), MIT• 绘图程序

– 光学笔交互式

– 图形用户界面(GUI) – 裁剪/缩放算法 – 对象实例的思想 • 计算机图形学的开创性工作

60年代的其他主要成果:• 光栅化算法• 参数曲面• 隐藏面消除算法• 点的齐次坐标表示

70年代的其他主要成果:•Z-buffer算法• 纹理映射• Phong光照模型• 关键帧动画• 光线跟踪算法

Utah teapot(1975): –Martin Newell– 三次贝塞尔曲面–图形学算法的标准测试模型 • AppleI, II个人电脑 • ACMSIGGRAPH(Special Interest Group in Graphics)

• 1973年召开了第一次SGGRAPH会议 • 使得计算机图形学成为了计算机科学的一门子学科• 80年代: 发展形成了当前图形学的软硬件架构• IBM PC、MAC、X86指令集• 更快(处理器)、更小(体积)、更大(内存)、更便宜(价格)•任天堂的游戏机• 三维图形软件

• 90年代:实时绘制• 3D图形取代2D图形占据了主流 • 3D视频游戏 •显卡 • 3D特效电影 • OpenGL的推出 – 跨平台的3D图形API

• 2000年至今:硬件和软件稳步发展• 液晶显示器• 高清电视• 网络平台•移动端

 

发射式显示器• LED • 透射式显示器• LCD(Liquid crystal displays)

图形应用系统• AMIP流水线(Application-Model-to-IM-Platform Pipeline)• 图形平台的两类模式:• 立即模式(Immediate-Mode)• OpenGL, Direct3D• 保留模式(Retained-mode)• WPF(Windows Presentation Foundation)

Opengl• 开放的工业标准• 支持多平台• 一直在不断发展

 

什么是管线?• 相互连接的一系列数据处理单元,前一单元的输出将作为

后一单元的输入• 指令执行管线• 图形管线• 软件管线

 

采用了client/server模型• CPU端是client • GPU端是server •OpenGL API在中间负责指令的传递。• 状态机 • API中的函数调用将设定相应的状态 • 各种状态变量用于存储当前的状态

 

OpenGL固定管线程序结构• 初始化管线• 指定显示窗口/视图 • 大小、位置• 设置照相机• 设置光源• 加载模型数据 • 几何数据、纹理数据…• 设置事件响应函数• 开始事件循环

 

不同的坐标系:• 物体坐标系• 世界坐标系• 视点坐标系• 设备坐标系• 屏幕坐标系

 

OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库。

gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库。

gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。

glut是基本的窗口界面,可以用MFC和Win32窗口等代替,但是glut是跨平台的,编出的程序是跨平台的, GLUT 不是 OpenGL 所必须的,但它会给我们的学习带来一定的方便。

 

世界坐标系是一个公共坐标系,是现实中物体或场景的统一参考系,计算机图形系统中涉及到的其他坐标系都是参照它进行定义的。每个物体(对象)都有它自己的局部中心和坐标系。建模坐标系独立于世界坐标系,来定义物体的几何特性。

人视觉系统的主要构成:• 眼睛(Eye)•信号接收• 视神经(Optic nerve)• 信号传递•视觉皮层(Visualcortex)• 信号处理

眼睛• 角膜(Cornea)•晶状体(Lens)• 瞳孔(Pupil)•虹膜(Iris)• 视网膜(Retina(由大量的感光细胞构成)

两类感光细胞:• 视杆细胞(Rods)•弱光情形下的检测 • 视锥细胞(Cones)•强光情形下的检测 • 三类视锥细胞 => 光的不同波长 => 颜色感知• S-cones(B)• M-cones(G)• L-cones(R) 计算三色响应值

旋转绕z轴

 

 

 

 

 

•L-cones和M-cones的敏感波段范围更广• 三类锥细胞的响应曲线有重叠

不能基于上述三类响应曲线完全恢复原始光谱

RGB颜色模型:•通过组合红、绿、蓝三元色得到不同颜色• 在显示器、电视机以及相机等设备中广泛使用• 设备相关的颜色模型• 所能表示的颜色有一定范围• 不适合描述主观感知• “紫色” = “红色” + “蓝色”• 颜色的“深浅”、“亮度”等

同色异谱(Metamerism)• 不同的入射光光谱对应相同的(L,M,S)•在不同设备中重现相同的颜色• 进行颜色匹配

,每一颜色对应三维空间内的一个 点,该三维空间称为颜色空间(color space)

• 颜色空间中由颜色构成的三维体称为色域(color gamut)

CIE-XYZ颜色空间:•使用“虚拟/想象”的三原色 • 无法生产对应的实际光源以再现所有可见光 • 对图像的编码和计算将变得低效且不实用.

不同颜色空间可以建立同CIE-XYZ的关系,从而CIE-XYZ颜色空间可以认为是一种设备无关的颜色空间(有别于RGB颜色空间),可支持不同颜色空间之间的转换。

• 二维图像定义• 二维值阵列•阵列中的元素称为像素(pixel:picture element)• 使用单一实数表示灰度• 使用三元组: (R,G,B)表示颜色•还可以包含额为信息,如深度等

 

对于图像中的任一像素,取其邻域内的像素,传入某一函数计算并输出一新的像素值

非常重要的图像操作 • 图像增强 • 去噪,光滑,增加对比度等 • 图像信息提取 • 纹理,边,特征点等 • 模式检测 • 模板匹配。。。。使图像变得平滑 (去除了尖锐的特征)

 

• 纹理映射只是改变表面属性而不改变形状

• 纹理映射使用图像存储表面属性,并建立图像和表面的映射关系

• 所使用的图像称为纹理图/纹理图像/纹理

纹理映射中的两大关键问题:

• 纹理坐标函数• 计算表面到纹理图像的对应关系

• 反走样• 缓减因图像采样而带来的走样问题• 反走样技术

纹理坐标函数•保障高质量纹理映射效果的关键• 对于一些表面,如平面或参数曲面,容易定义• 对于复杂表面,通常并不容易得到,需要仔细设计。设计考量因素:• 双射• 尺寸扭曲• 形状扭曲• 连续性


图像空间中的一个像素对应纹理空间中的多个像素•minification•Mipmap技术

图像空间中的多个像素对应纹理空间中的一个像素•magnification• 图像超采样

OpenGL中纹理映射主要步骤: • 读取纹理图像 • 申请纹理资源 • 绑定纹理资源 • 传入纹理图像 • 设置纹理参数 • 指定纹理坐标 • 设置纹理环境


缩放

不足:缺乏局部控制。多项式次数与控制顶点数目关联。

l=r/f

b=t/f

透视投影矩阵

 

视口

 

 

 

 

大于90CW小于CCW

物体表面反射的光由如下三部分叠加而成:• 环境光(Ambient) + 漫反射(Diffuse) + 镜面光(Specular)

只考虑光源直接照射,而没有考虑光在物体表面之间经过多次反射的间接光照,因而这类光照模型称为局部光照明模型

光线跟踪算法•核心操作:• 起始光线生成• 光线与物体的求交计算• 交点处的光照计算

辐射度算法• 基本思想:• 将场景划分为一些小的多边形块(patches)•每一个块的亮度或者辐射度为:• 在单位时间、单位面积上从该块辐射的光能

辐射度算法实现流程: 将场景划分为块->计算形状因子->求解辐射度方程 组-重复该过程以计算R,G,B各个通道->绘制场景



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值