计算机图形学笔记
本笔记主要以加州大学闫令琪博士的直播网课:B站链接(主要是理论知识部分没有具体应用,讲的非常好没有线性代数和微分几何基础也可以听)
计算机图形学第四版(Computer Graphics with OpenGL)Donald Hearn著
(以OpenGL为主体的计算机图形学讲解,比较全面,有点点代数基础就可以)
Qt图形视图框架(Qt在设计GUI,网络通信,io方面非常方便,而且OpenGL是直接封装好的)
吉林大学计算机图形学课程(笔者本科的学习课程,学院官网上好像有网课,讲的很基础基本也是纯理论很标准的大学课程授课模式需要掌握前置知识,好不好的不说不用看)
learnOpenGL非常好的OpenGL的教程而且有中文版和英文版两种,英文版中间插入的广告实在是太多了还有视频广告所以建议使用中文版必要时阅读英文版.
Fundamentals of Computer Graphics— Peter Shirley等 虎书计算机图形学非常经典的教材,电子版可以留言,仅供参考支持正版.
等整理而成,笔者才疏学浅若有纰漏之处请各位指摘
计算机图形学概述
关于计算机图形学具体是什么就不用赘述了,个人感觉学习计算机图形学的时候要找好侧重点,研究理论就不用在API上下太多功夫而要不断强化自己的数学和算法功底(尤其是数学这个太重要了),重视应用就要好好掌握一个API多实操了解物理引擎和建模的相关知识(如果只是单纯的想做点游戏特效什么的其实并不需要了解太多底层的知识).
OpenGL概述
概论
OpenGL是一种通用图形程序设计软件包,它提供了编程语言和硬件之间的软件接口,我们称之为computer graphics application programming interface(CG API),他在我们在编写程序时利用图形函数组织图形并显示在输出设备上.
大多数OpenGL的开发者都是各个显卡的生产商,所以很多时候OpenGL可能会与行业规范并不一致。
基本OpenGL语法
OpenGL中的函数名要以gl为前缀,并且每一个组成词的第一个字母要大写,比如:
glBegin glClear glCopyPixels
符号常量均以大写的GL为前缀开头,各个单词之间由_之间区分比如:
GL_2D GL_AMBIENT_AND_DIFFUSE
OpenGL也有自己专有的数据类型比如
GLint GLshort
使用这些数据类型的目的可以防止不同机器字长导致整数的描述范围不同,这样使用内置的数据类