跳转至

目录


这是免费在线教科书《计算机图形学概论》的目录。


前言

第一章: 简介

第 2 章二维图形

  • 2.1 像素、坐标和颜色
    • 2.1.1 像素坐标
    • 2.1.2 实数坐标系
    • 2.1.3 纵横比
    • 2.1.4 颜色模型
  • 2.2 形状
    • 2.2.1 基本形状
    • 2.2.2 描边和填充
    • 2.2.3 多边形、曲线和路径
  • 2.3 变换
    • 2.3.1 查看和建模
    • 2.3.2 翻译
    • 2.3.3 旋转
    • 2.3.4 组合变换
    • 2.3.5 缩放
    • 2.3.6 剪切
    • 2.3.7 窗口到视口
    • 2.3.8 矩阵和向量
  • 2.4 层次建模
    • 2.4.1 构建复杂对象
    • 2.4.2 场景图
    • 2.4.3 变换堆栈
  • 2.5 Java Graphics2D
    • 2.5.1 二维图形
    • 2.5.2 形状
    • 2.5.3 描边和填充
    • 2.5.4 变换
    • 2.5.5 BufferedImage 和像素
  • 第 2.6 节 HTML Canvas 图形
    • 2.6.1 2D 图形上下文
    • 2.6.2 形状
    • 2.6.3 描边和填充
    • 2.6.4 变换
    • 2.6.5 辅助画布
    • 2.6.6 像素操作
    • 2.6.7 图片
  • 2.7 SVG场景描述语言
    • 2.7.1 SVG 文档结构
    • 2.7.2 形状、样式和变换
    • 2.7.3 多边形和路径
    • 2.7.4 层次模型
    • 2.7.5 动画

第 3 章: OpenGL 1.1:几何

第 4 章: OpenGL 1.1:灯光和材质

  • 4.1 照明简介
    • 4.1.1 光与材料
    • 4.1.2 光属性
    • 4.1.3 法向量
    • 4.1.4 OpenGL 1.1 光照方程
  • 4.2 OpenGL 1.1 中的光和材质
    • 4.2.1 使用材料
    • 4.2.2 定义法向量
    • 4.2.3 使用灯光
    • 4.2.4 全局光照属性
  • 4.3 图像纹理
    • 4.3.1 纹理坐标
    • 4.3.2 MipMap 和过滤
    • 4.3.3 纹理目标和纹理参数
    • 4.3.4 纹理变换
    • 4.3.5 从内存加载纹理
    • 4.3.6 来自颜色缓冲区的纹理
    • 4.3.7 纹理对象
    • 4.3.8 在 C 中加载纹理
    • 4.3.9 通过 JOGL 使用纹理
  • 4.4 灯光、相机、动作
    • 4.4.1 属性栈
    • 4.4.2 移动相机
    • 4.4.3 移动光

第 5 章: Three.js:3D 场景图 API

  • 5.1 Three.js 基础知识
    • 5.1.1 关于 JavaScript 模块
    • 5.1.2 场景、渲染器、相机
    • 5.1.3 三.Object3D
    • 5.1.4 物体、几何形状、材料
    • 5.1.5 灯光
    • 5.1.6 建模示例
  • 5.2 构建对象
    • 5.2.1 多边形网格和 IFS
    • 5.2.2 曲线和曲面
    • 5.2.3 纹理
    • 5.2.4 变换
    • 5.2.5 加载模型
  • 5.3 其他功能
    • 5.3.1 实例化网格
    • 5.3.2 用户输入
    • 5.3.3 阴影
    • 5.3.4 立方体贴图纹理和天空盒
    • 5.3.5 反射和折射

第 6 章: WebGL 简介

  • 6.1 可编程流水线
    • 6.1.1 WebGL 图形上下文
    • 6.1.2 着色器程序
    • 6.1.3 管道中的数据流
    • 6.1.4 统一变量的值
    • 6.1.5 属性值
    • 6.1.6 绘制基元
    • 6.1.7 WebGL 2.0:顶点数组对象
    • 6.1.8 WebGL 2.0:实例化绘图
  • 6.2 第一个例子
    • 6.2.1 WebGL 上下文选项
    • 6.2.2 GLSL 简介
    • 6.2.3 WebGL 中的 RGB 三角形
    • 6.2.4 形状压模
    • 6.2.5 POINTS原语
    • 6.2.6 WebGL 错误处理
  • 6.3 GLSL
    • 6.3.1 基本类型
    • 6.3.2 数据结构
    • 6.3.3 预选赛
    • 6.3.4 表达式
    • 6.3.5 函数定义
    • 6.3.6 控制结构
    • 6.3.7 限制
  • 6.4 图像纹理
    • 6.4.1 纹理单元和纹理对象
    • 6.4.2 处理图像
    • 6.4.3 更多制作纹理的方法
    • 6.4.4 立方体贴图纹理
    • 6.4.5 计算示例
    • 6.4.6 WebGL 2.0 中的纹理
  • 6.5 实现 2D 变换
    • 6.5.1 GLSL 中的转换
    • 6.5.2 JavaScript 中的转换

第 7 章: 使用 WebGL 进行 3D 图形

  • 7.1 3D变换
    • 7.1.1 关于着色器脚本
    • 7.1.2 介绍glMatrix
    • 7.1.3 变换坐标
    • 7.1.4 变换法线
    • 7.1.5 鼠标旋转
  • 7.2 照明和材料
    • 7.2.1 最小照明
    • 7.2.2 镜面反射和 Phong 着色
    • 7.2.3 增加复杂性
    • 7.2.4 两侧照明
    • 7.2.5 摇头灯
    • 7.2.6 聚光灯
    • 7.2.7 光衰减
    • 7.2.8 磁盘世界2
  • 7.3 纹理
    • 7.3.1 使用 glMatrix 进行纹理变换
    • 7.3.2 生成的纹理坐标
    • 7.3.3 程序纹理
    • 7.3.4 凹凸贴图
    • 7.3.5 环境映射
  • 7.4 帧缓冲区
    • 7.4.1 帧缓冲区操作
    • 7.4.2 渲染到纹理
    • 7.4.3 渲染缓冲区
    • 7.4.4 动态立方体贴图纹理
  • 7.5 WebGL 扩展
    • 7.5.1 各向异性过滤
    • 7.5.2 浮点颜色
    • 7.5.3 WebGL 1.0 中的实例化绘图
    • 7.5.4 延迟着色
    • 7.5.5 WebGL 2.0 中的多个绘制缓冲区

第 8 章: 超越基本 3D 图形

  • 8.1 光线追踪
    • 8.1.1 光线投射
    • 8.1.2 递归光线追踪
    • 8.1.3 光线追踪的局限性
  • 8.2 路径追踪
    • 8.2.1 BSDF
    • 8.2.2 路径追踪算法

第 9 章: WebGPU 简介

  • 9.1 WebGPU 基础知识
    • 9.1.1 适配器、设备和画布
    • 9.1.2 着色器模块
    • 9.1.3 渲染管线
    • 9.1.4 缓冲区
    • 9.1.5 绘图
    • 9.1.6 多个顶点输入
    • 9.1.7 自动绑定组布局
  • 9.2 实例和索引
    • 9.2.1 实例绘图
    • 9.2.2 索引绘图
    • 9.2.3 绘制多个基元
    • 9.2.4 在着色器中使用索引
    • 9.2.5 多重采样
  • 9.3 WGSL
    • 9.3.1 地址空间和对齐
    • 9.3.2 数据类型
    • 9.3.3 声明和注释
    • 9.3.4 表达式和内置函数
    • 9.3.5 语句和控制
    • 9.3.6 函数定义
  • 9.4 使用 WebGPU 的 3D 图形
    • 9.4.1 深度测试
    • 9.4.2 坐标系
    • 9.4.3 进入 3D
    • 9.4.4 wgpu 矩阵
    • 9.4.5 再次磁盘世界
  • 9.5 纹理
    • 9.5.1 纹理坐标
    • 9.5.2 纹理和采样器
    • 9.5.3 Mipmap
    • 9.5.4 立方体贴图纹理
    • 9.5.5 纹理格式
  • 9.6 计算着色器
    • 9.6.1 工作组和调度
    • 9.6.2 计算着色器
    • 9.6.3 模拟
    • 9.6.4 检索输出
  • 9.7 一些细节
    • 9.7.1 丢失设备
    • 9.7.2 错误处理
    • 9.7.3 限制和特征
    • 9.7.4 渲染通道选项
    • 9.7.5 渲染管线选项

附录 A: 编程语言

附录 B: Blender:3D 建模程序

  • B.1 节 Blender 基础知识
    • B.1.1 3D 视图
    • B.1.2 将对象添加到场景中
    • B.1.3 编辑模式
    • B.1.4 光、材质和纹理
    • B.1.5 保存您的工作
    • B.1.6 更多功能
  • B.2 节 Blender 建模
    • B.2.1 文本
    • B.2.2 曲线
    • B.2.3 比例编辑
    • B.2.4 拉伸网格
    • B.2.5 网格修改器
  • B.3 节 Blender 动画
    • B.3.1 关键帧动画和函数曲线
    • B.3.2 追踪
    • B.3.3 路径动画
    • B.3.4 渲染动画
  • B.4 节 有关光和材料的更多信息
    • B.4.1 照明
    • B.4.2 Eevee 与 Cycles
    • B.4.3 着色器编辑器

附录 C: 用于 2D 图形的 Gimp 和 Inkscape

附录 D: 示例程序的源代码

附录 E: 术语表