Computer Graphics · Lecture 0

计算机图形学

第〇章 · 课程概述

Theory
+
WebGL 2.0
+
Experiments
+
Course Project

课程定位 · 学习资源 · 学习要求 · 评价方式 · 教学内容

Course overview

这是一门什么样的课?

FOUNDATION

图形学基本概念与应用

理解计算机如何描述、变换、观察并绘制二维与三维对象。

PROGRAMMABLE GPU

可编程着色器

以现代可编程流水线为核心,理解 Vertex Shader 与 Fragment Shader。

WEB GRAPHICS

WebGL 2.0

使用现代 Web 技术完成交互式图形程序设计与实验。

课程不是学习一个“绘图软件”,而是学习图像生成背后的模型、算法、系统与程序设计方法

Learning objectives

课程目标:理解、实现、解决问题

01理解理论掌握计算机图形学的基础理论、基本概念与核心术语
02完成实现掌握基于着色器的 WebGL 图形应用程序开发设计方法
03深化理解通过实验把数学、算法、API 与实际图像效果联系起来
04解决问题提升图形问题的分析、建模、调试与综合实现能力
Class interaction

课程第一问:你希望“让计算机画出什么”?

游戏 / 动画

角色、场景、实时光照与交互

科学 / 医学可视化

把复杂数据转化为可理解的图像

设计 / 仿真

建模、观察、验证和虚拟实验

其他

写下你最想实现的一种图形效果

课堂交流2 min

说出一个你知道的图形应用

Textbook & resources

主教材:以“自顶向下”方式学习现代图形学

ENGLISH · 8TH EDITION

Interactive Computer Graphics:
A Top-Down Approach with WebGL

Edward Angel & Dave Shreiner · Pearson · 2020

教材页面 ↗

中文第八版

交互式计算机图形学
基于 WebGL 的自顶向下方法

张荣华、赵阳等译 · 电子工业出版社 · 2024

中文教材页面 ↗

Reference books · 1/2

参考教材:OpenGL 与图形学基础

Reference books · 2/2

参考教材:WebGL 与现代图形程序设计

Online resources · 1/2

网络资源:官方与基础教程

Online resources · 2/2

网络资源:深入学习与问题求解

LearnOpenGL

适合继续学习现代 OpenGL。

learnopengl.com ↗

Scratchapixel

适合深入理解光线、相机、渲染与数学。

scratchapixel.com ↗

搜索 / AI 工具

搜索引擎、百科类网站,以及各类大语言模型工具。

LLM models ↗

Prerequisites

课程前置要求:四类基础

01

程序设计

学过程序设计基础,能够编写结构清晰、可调试的代码。

02

数据结构与算法

了解数组、链表、树等常见数据结构与基本算法思想。

03

几何基础

具备平面几何和立体几何的基本空间理解能力。

04

线性代数

能够理解向量、矩阵及其基本计算。

Course requirements

这门课如何学?

THEORY掌握基础概念与理论课堂理解 + 教材阅读 + 课后复习
LAB独立完成课程实验总计约 7–8 次实验,重视代码与结果分析
PROJECT合作完成课程设计把多个图形学知识点整合成完整程序
REFLECT理解而不是照抄能够解释代码、参数与视觉效果之间的关系
Web foundations

没有学过 Web 开发怎么办?

HTML

页面结构、Canvas 元素与脚本加载。

JavaScript

变量、函数、数组、对象、事件与模块化基础。

CSS

只需理解基础样式;不是本课程重点。

Assessment

总评成绩:理论、实验与项目共同评价

40%期末卷面成绩
30%课程实验
25%课程设计
5%平时成绩

平时成绩包括:签到、问答、交流沟通等。

Final exam

期末考试

开卷

一张纸开卷

可携带一张纸作为考试资料。

理解

认真复习

开卷并不意味着不需要掌握概念、计算过程和程序逻辑。

Laboratory

课程实验:把每一个图形概念“做出来”

实验说明

实验要求、步骤与提交方式见课程配套实验说明。

查看实验任务 ↗

核心原则

实验不仅要得到图像,还要能够解释:代码改了什么,图像为什么变化

Course project

课程设计:从单个知识点走向完整图形应用

团队合作

合作完成一个较完整的图形学课程设计。

课程设计说明

具体要求、评价与提交方式见课程设计文档。

查看课程设计 ↗

Course platforms

课件、实验与课程信息在哪里?

COURSE WEBSITE

课程网站

课件与实验资料。

liyi1003zcmu.github.io ↗

LEARNING PLATFORM

课程配套网站

《计算机图形学(WebGL版)》课程资源。

打开课程平台 ↗

Course content · Pipeline Roadmap

课程教学内容:从图形系统到三维场景

01重点 概述与图形系统 第1章 · 成像模型、GPU与流水线
02重点 图形编程与交互 第2、3章 · WebGL、Shader与动画
03重点 变换与观察 第4、5章 · 仿射变换、投影与视体
04重点 光照着色与纹理 第6、7章 · Phong模型、片元与纹理
05重点 从几何到像素 第12章 · 裁剪、光栅化、Z-Buffer
06介绍 使用帧缓存 第8章 · 混合、FBO离屏与图像处理
07介绍 层级建模方法 第9章 · 实例变换、树结构与场景图
TEXTBOOK规划 教学重点规划 1–7及12章重点 · 8、9章为介绍
★ 重点内容(第1–7章、第12章):核心理论、算法推导与 WebGL 编程实现(实验与考核重点)
☆ 介绍性内容(第8章、第9章):帧缓存高级特性与复杂场景层级建模(拓展视野与大作业支撑)
Course content · Classification

课程内容规划:重点内容与介绍性内容

CORE MODULES · 重点内容

一至七章 及 第十二章

课程核心与考核重点:深入理解图形学数学模型、渲染管线底层原理与着色器编程实现。

  • 第1章 图形系统和模型:软硬件体系、虚拟照相机、可编程流水线架构
  • 第2章 图形学编程:Sierpinski镂垫、WebGL API、着色器程序与图元属性
  • 第3章 交互和动画:事件驱动输入、交互设计、动画渲染循环与对象拾取
  • 第4章 几何对象和变换:坐标系标架、仿射变换、齐次坐标、变换级联与四元数
  • 第5章 观察:相机定位、观察矩阵、平行/透视投影变换与规范化视见体
  • 第6章 光照和着色:Phong光照模型、材质与光源、法向量计算、片元着色
  • 第7章 纹理映射:二维纹理坐标、采样与滤波、环境映射与凹凸贴图
  • 第12章 从几何到像素:绘制流水线底层、图元裁剪、多边形光栅化、Z-Buffer与反走样
EXTENDED MODULES · 介绍性内容

第八章 及 第九章

拓宽视野与综合设计:了解现代图形系统高阶特性与复杂三维场景组织管理方法。

  • 第8章 使用帧缓存:颜色与深度缓存、Alpha混合技术、帧缓存对象(FBO)离屏渲染、多重绘制、图像后处理滤波与拾取
  • 第9章 层级建模方法:符号与实例变换、机器人手臂模型、树结构与递归遍历、场景图(Scene Graph)构建与运动控制
教学指引

重点章节要求“深入原理、独立编程、调试分析”;介绍性章节重在“理解思想、了解系统能力、善于查阅与应用”。

Before we start

开课前,请确认三件事

01

准备环境

浏览器、代码编辑器以及课程所需 WebGL 项目环境。

02

补齐基础

矩阵与向量、JavaScript / HTML 基础不足的同学尽快补充。

03

知道去哪找资料

教材、课程网站、课程平台与实验说明。

Questions

Any Questions?

课程结束配图

下一步,我们正式进入:

第一章 · 从虚拟世界到屏幕像素

先回答最基本的问题:计算机图形学到底在解决什么?