计算机图形学 姜明 北京大学数学科学学院 更新时间2019年4月25日星期四8时14分39秒
[EA] 为教材和参考文献索引,以下同此。 [EA] Edward Angel: Interactive Computer Graphics, A Top-Down Approach with Open GL, Addison-Wesley, 5/6th Edition. [EA] 为教材和参考文献索引,以下同此。
参考书 [F1] J. D. Foley, A. van Dam: Introduction to Computer Graphics,机械工业出版社,2004年影印版。 [F2] J. D. Foley, A. van Dam, S. K. Feiner and J. F. Hughes, Computer Graphics, principles and practice.机械工业出版社,2002年影印版。 [HB] D. Hearn, M. P. Baker: Computer Graphics, 清华大学出版社,1997年影印版。 [SY] 孙家广,杨长贵编著: 计算机图形学,清华大学出版社,1998年第三版。 [LL] 罗振东,廖关裕编著:计算机图示学原理和方法,复旦大学出版社,1993年。 [DS] D. Shreiner, OpenGL编程指南(原书第6版), 译者:徐波,机械工业出版社, 2008。(红宝书)
课程介绍 计算机图形学:用计算机构造和显示图形。计算机图形学研究利用计算机产生图形和显示图形,它包括对要产生图形的物体的描述(建模或几何描述),对图形数据的管理和操作(数据结构和图形变换),图形的生成,显示和输出。在交互式的图形系统中,还包括研究图形的输入和图形操作的人机接口。 [HB]
先修课程和知识:计算概论,数据结构,线性代数,数学分析,解析几何。 课程要求:平时作业为40分,期末考试成绩为30分,学期项目成绩为30分。平时成绩一般每题为10分(视难度加分),总成绩累计后以总分40分按比例折合。 平时作业和上机作业每次未能按时完成并交给助教的以零分记。 抄袭情况一经发现,抄袭者和提供抄袭者双方该次作业以负分计算。
编程技能:C,或C++语言,或其它语言。以C语言为主。 本课程将使用OpenGL图形库,同学可使用任何语言来调用OpenGL的函数完成作业。例子均采用glut,将讲解如何使用glut来编写OpenGL的程序以及在Windows环境下如何编译程序。
课程内容介绍 1 Graphics Systems and Models Overview of the field Image formation as cameras Modeling-Rendering Paradigm 2 Graphics Programming Introduction to programming with OpenGL
3 Input and Interaction Interactive computer graphics Client-server (Graphic server) Programming event-driven input 4 Geometric Objects and Transformations Define and manipulate primitives/objects Coordinate systems and transformations OpenGL transformation matrices
5 Viewing Camera model Viewing and projections Hidden-surface removal OpenGL projections 6 Shading Light-material interaction Reflection models OpenGL Light and material functions
7 Implementation of a Renderer Bottom of computer graphics Algorithms for primitives, transformations, etc. Scan conversions. 8 Curves and Surfaces Modeling curves and surfaces Splines Curves and surfaces in OpenGL
10 Scientific Visualization 9 Procedural Methods Limitation of polygon-model. Physically based models Recursive methods and fractals This chapter is pending. 10 Scientific Visualization Visualizing large multi-dimensional data sets in scientific and medical applications Data to geometric primitives There are multiple ways There are no good ways
课程资源介绍 课程主页 习题和其它的通知均在此发布。 请随时访问。 OpenGL的标准及有关手册 glut的标准及有关手册 Mesa http://www.math.pku.edu.cn/teachers/jiangm/courses/CG/ 请随时访问。 习题和其它的通知均在此发布。 OpenGL的标准及有关手册 http://www.math.pku.edu.cn/teachers/jiangm/courses/CG/Resources/openGL/ glut的标准及有关手册 http://www.math.pku.edu.cn/teachers/jiangm/courses/CG/Resources/glut/ Mesa http://www.math.pku.edu.cn/teachers/jiangm/courses/CG/Resources/Mesa/
网络资源 OpenGL组织 教材作者主页 搜索引擎 http://www.opengl.org/ http://www.cs.unm.edu/~angel/ 搜索引擎 http://www.....com/
如何查找资料 北大图书馆数据库 IEEE Web of Science ACM
必须保证Visual C/C++安装正确。 Windows系统编译和安装glut 阅读glut/Readme.win 对glut/glutwin32.mak作必要修改 运行glut/glutmake.bat 检查编译结果 运行例子程序 必须保证Visual C/C++安装正确。
macOS系统编译glut程序 Install Xcode from App Store: the compile environment, which should install glut. Change head file locations Header Description Mac OS X The Rest of the World GL - OpenGL Base #include <OpenGL/gl.h> #include <GL/gl.h> GLU - OpenGL Utility #include <OpenGL/glu.h> #include <GL/glu.h> GLUT - OpenGL Utility Toolkit #include <GLUT/glut.h> #include <GL/glut.h> Compiling with the command: clang -framework GLUT -framework OpenGL -framework Cocoa foo.c -o foo.x4. check its depends otool -L foo.x Install XQuartz from https://www.xquartz.org open an xterm from XQuartz and run ./foo.x References [1] http://alumni.cs.ucsb.edu/~wombatty/tutorials/opengl_mac_osx.html [2] https://pleiades.ucsc.edu/hyades/OpenGL_on_OS_X [3] GLUT under Mac OS X, http://iihm.imag.fr/blanch/software/glut-macosx/
Linux系统与WebGL Linux系统 WebGL示例 gcc -o foo foo.c -lGL -lGLU –lglut http://myweb.wit.edu/wernerm/compilingOpenGl.html WebGL示例