图形学笔记一
来源:互联网 发布:新浪微博绑定淘宝 编辑:程序博客网 时间:2024/06/01 19:36
一、概述
学习的课本是电子工业出版社的《计算机图形学第四版》。这里记录一下学习本书过程中遇到的重点内容。前两章都是对图形学和硬件的科普性质的综述,我们从第三章开始mark。
二、第三章 计算机图形软件
本书使用的是openGL图形库,所以这一章就简要介绍了一下openGL。
(1)openGL渲染管线中的坐标转换(P27)
局部/建模/主坐标系->世界坐标系->观察和投影坐标系->屏幕坐标系
(local/model->world->view projection->screen)
(2)glut(P30)
glut(OpenGL Utility Toolkit),openGL实用工具包,提供了与任意屏幕窗口系统进行交互的函数库,使我们的程序与设备无关。
三、第四章 输出图元
(1)凸多边形和凹多边形(P44)
1.定义:所有内角均小于180°的就是凸多边形。其他则为凹多边形。
2.识别凹多边形:按逆时针方向,通过连续两边向量的叉乘来识别凹多边形。只要有一个结果为负,则这个多边形就是凹多边形。
3.分割凹多边形:向量法和旋转法(本质上是同一种方法)。
(2)二维边界的内外测试(P46)
1.奇偶规则:从任意点P发射一条足够远的射线(不经过图元的顶点),与图元相交的边数为奇数,则为内部点。偶数则为外部点。
2.非零环绕数规则:依次连接图元的顶点。从任意点P发射一条足够远的射线(不经过图元的顶点),与从左到右的边相交边数减1,与从右到左的边相交边数加1。最终边数非0则为内部点,反之则为外部点。
3.上述两条规则并不等价,存在图元,使用两种规则得到的内部和外部区域不同的情况。
(3)平面方程(P49)
1.Cramer规则:假设平面方程为Ax+By+Cz+D=0,给定任意三点(x1,y1)(x2,y2)(x3,y3),通过行列式可计算出A,B,C,D的值,进而得到平面方程。
2.三维边界的内外检测:Ax+By+Cz+D>0,则点在平面外部,反之则在平面内部。
3.平面的法向量:逆时针方向连续两边的向量叉乘即为平面的法向量。假设法向量为N,则N·(x-x1,y-y1,z-z1)=0是平面方程的向量形式。
(4)openGL顶点数组(P56)
使用顶点数组可以提高效率。
(5)openGL像素阵列函数(P58)
1.glBitmap、glDrawPixels、glDrawBuffer等,将像素阵列写入到指定缓存中,比如颜色缓存、深度缓存等。(TODO)
2.DoubleBuffer(双缓冲技术):正常情况刷新帧时,需要先用背景色填充画布再绘制新的图像,就可能会出现闪烁现象。双缓冲就是现在缓冲区绘图,当需要更新帧画面时,直接将缓冲区的值拷贝到画布上,避免了闪烁的情况。
(6)openGL光栅操作(P60)
glReadPixels,glReadBuffer,glCopyPixels,glDrawBuffer等。(TODO)
(7)字符图元(P62)
1.保存字符主要有两种方式:位图字体/光栅字体,即使用位图来保存某个字的矩形网格图案;轮廓字体/笔画字体,即使用直线和曲线来描述字符形状。
前者的好处是简单,需要显示时直接将网格位图赋值到帧缓存的指定位置即可,缺点是占用的空间过多,且改变大小会增加粗糙程度。
后者的好处是增加大小字符不会变形,需要的空间较少,但缺点是在赋值到帧缓存之前需要对轮廓字体进行处理。
(8)openGL显示表(64)
glGenLists,glNewList,glEndList,glCallList,glDeleteList等。
四、第五章 图元的属性
(这一章介绍的是openGL中的一些细节,后面有空再看~)
五、第六章 实现图元及属性的算法
- 图形学笔记一
- 计算机图形学学习笔记一
- 计算机图形学笔记(一),色彩讲义
- 《计算机图形学》学习笔记(一)
- 计算机图形学笔记---Cg语言(一)
- 三维游戏图形学学习笔记(一)基本光照模型
- 计算机图形学(一)
- 计算机图形学(一)
- 计算机图形学 学习笔记(一):光栅图形学算法:直线扫描算法(DDA,中点画线算法,Bresenham算法)
- 实时图形学学习笔记
- 计算机图形学---学习笔记
- 计算机图形学笔记
- 计算机图形学 复习笔记
- 【图形学】第一章 向量 笔记
- 计算机图形学学习笔记
- 图形学个人笔记
- 图形学笔记:概述
- 图形学笔记:光线追踪
- 设计模式之代理模式
- OpenStack镜像的制作
- LiteIde 编译golang程序提示缺少-i
- 小型的员工管理系统-SSM-01
- Codeforces Round #411 (Div. 2) B. 3-palindrome(思维题)
- 图形学笔记一
- Java生成随机验证码
- Android:如何在当前Activity关闭其他Activity
- XMind中简单自由的流程图制作工具
- 算法 时间复杂度 logN 底数
- 补做-第六次实验-项目三
- VPS常用配置:lnmp、vpn、Shadowsocks、ftp、jdk、tomcat安装
- 剑指Offer——(18)二叉树的镜像
- SecureCRT hive 退格键不能用