# 2026秋《计算机图形学》课程设计指南

## 一、选题与作品形式

围绕**“纪念”**主题，设计并实现一个具有三维场景的交互式应用。纪念的对象与叙事方式由小组自主确定；应说明作品希望纪念什么、三维表达如何服务于这一主题，以及用户怎样参与交互。

作品可在主流浏览器中运行，也可作为本地单机应用运行；可以采用适合本组选题与能力的交互设备。题目规模应与项目周期、成员能力相匹配，做到量力而行、实事求是。

## 二、组队与分工

1. **每组 3～4 人，要求男女搭配。**小组确定后，指定一名组长负责联络和汇总提交，但组长不能代替其他成员完成个人过程记录。
2. 在第七周初步设计报告中明确每名成员的任务、预期产出、协作接口与时间安排；第十三周根据实际进展更新分工；结题时说明每人**实际完成**的工作。
3. 设计、编码、建模、测试、文档和展示等任务可以协作完成；共同工作需说明参与者及各自贡献，避免只写笼统的“全组共同完成”。
4. **每名成员均须单独提交本人项目相关的 AI 提示词记录文件。**未使用 AI 的成员也需提交“未使用 AI 声明”，并保留本人实际工作证据。具体见配套《AI 提示词与人机协作记录提交规范》。

## 三、实现工具与 AI 使用

### 3.1 可选择的工具

- 实现语言不限，可根据需要使用 C++、C#、Python、JavaScript、Java 等，以及 Three.js、Unity、Unreal 或其他图形库、游戏引擎；**推荐 Three.js**，但不作强制要求。
- 可以使用 3ds Max、Maya、Blender 等软件制作三维模型和素材，**不接受仅提交这些软件直接渲染出的动画或静态场景代替编程实现的作品**；模型须用于自己编写或整合的程序进行渲染与交互。
- 使用现成引擎、组件或模板时，应说明其来源、用途以及小组自行完成的核心代码与功能；采用引擎仍须有实质性的编程工作，不能仅靠编辑器拖拽搭建。
- **允许使用 Vibe Coding（以自然语言描述需求，借助 AI 生成、修改和调试程序）及其他 AI 辅助开发方式。**允许不代表可以省略理解、测试与成果责任。

### 3.2 必须说明的工具与环境

从第七周开始建立、以后各阶段持续更新《开发环境与 AI 工具清单》，至少包括：

| 项目        | 填写要求                                                                        |
| ----------- | ------------------------------------------------------------------------------- |
| 开发环境    | 操作系统、IDE/编辑器、运行方式，以及能够复现运行的关键版本或配置                |
| 图形技术    | 编程语言、引擎/框架、主要图形库及版本（如已知）                                 |
| AI 对话工具 | 所用产品或工具名称、模型名称/版本（如界面可查）、用途；没有使用则明确写“未使用” |
| AI 编程工具 | 如 IDE 智能编程助手、命令行 Agent、Vibe Coding 平台，写明名称及使用方式         |
| 依赖与运行  | 必需的第三方依赖、安装/启动步骤及运行条件                                       |

**无论是否采用 Vibe Coding，凡使用 AI 参与本项目的成员，都必须按统一格式提交全部与项目有关、可见且由本人实际发出的提示词，包含失败、纠错、追问及最终未采纳的尝试。**不可只挑选成功对话，也不可只贴几张聊天截图。自动运行而不可见的模型内部提示词无须编造；应记录自己实际输入的指令和可获得的运行日志。完整要求及模板见配套规范。

## 四、作品必须具备的基本功能

以下六项沿用原课程设计的基本要求：

1. **用户界面：**具有完整界面，能够响应用户输入并实时输出结果。
2. **场景管理：**能够建立或读取场景描述文件，可定义相机、光源、几何体、材质等属性；场景包含**不少于三个物体**。
3. **相机管理：**根据相机参数建立并控制相机模型。
4. **光源与光照：**支持一个或多个点光源，完成基本的 **Phong 局部光照模型**并正确实现阴影效果；光线追踪、镜面反射等作为选做拓展。
5. **纹理映射：**支持场景对象的纹理映射；凹凸映射、天空盒等作为选做拓展。
6. **图像输出：**能够将渲染场景保存为 PNG、JPG 等常见图像格式。

选题应将上述功能融入“纪念”主题，而非只做无关功能的拼接。采用引擎或现成库实现时，须在报告中指出每项功能的代码位置、运行方式及验证证据；选做内容不得替代基本功能。

## 五、提交渠道与文件格式

**正式提交渠道：课程平台中对应阶段的课程设计作业或目录。**每组由一名指定成员负责上传全组材料，其他成员应共同核对材料是否齐全。可以另在某位成员的个人网站展示作品，但网站链接只是展示方式，**不能替代课程平台提交**。

为方便归档，建议每个阶段将全部材料打包成一个真正的 `.zip` 文件后上传；如课程平台该作业明确要求逐项上传，以平台要求为准。建议命名：

- 第七周：`课程设计_S1_第X组.zip`
- 第十三周：`课程设计_S2_第X组.zip`
- 最后一周：`课程设计_S3_第X组.zip`

`X` 为课程平台使用的小组编号，三个阶段保持一致。不接受将 `.rar`、`.7z` 简单改扩展名冒充 ZIP；上传前须解压检查。

**不同类型材料的格式分别规定如下：**

| 材料                     | 格式与要求                                                                                              |
| ------------------------ | ------------------------------------------------------------------------------------------------------- |
| 各阶段设计报告、结题报告 | **PDF**；沿用原课程设计的文档要求                                                                       |
| 源代码及必要资源         | **ZIP**；应包含可运行项目、运行说明和依赖说明；WebGL 网页项目参照本学期实验的 ZIP 目录规范              |
| 展示汇报材料             | 幻灯片导出为 **PDF**；演示视频/图片可另附                                                               |
| AI 提示词与协作记录      | **`.md` 或 `.docx` 的可复制纯文本内容**，不得仅以 PDF、截图或聊天分享链接代替；详细命名及字段见配套规范 |
| 环境与工具清单、过程证据 | 清单使用 `.md`/`.docx`；源代码、测试记录、必要截图等按其原始适用格式提交                                |

文档可以使用 Markdown、HTML、TeX、Word 等工具编写，但设计报告及汇报幻灯片的**最终交付格式**仍为 PDF。提示词记录是明确的例外：为了后续文本分析，必须保留可提取的文字。

## 六、提交时间与阶段任务

三个节点分别为**第七周、第十三周、最后一周**。这里规定的是提交周次，**不擅自推定该周具体星期几或零点截止**；请以课程平台各阶段作业的明确截止时间为准，并提前提交。

| 阶段                   | 时间节点     | 主要目标                                 | 必交材料                                                                                                                                                 |
| ---------------------- | ------------ | ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| S1：选题与初步设计     | **第七周**   | 明确主题、形式、功能、人员和计划         | 初步设计报告 PDF；初版环境与 AI 工具清单；每名成员的 S1 提示词文件（含必要的任务闭环及阶段反思）或未使用声明                                             |
| S2：详细设计与阶段成果 | **第十三周** | 完成系统设计，展示已完成的功能和实际进度 | 详细设计报告 PDF；阶段性代码 ZIP / 可运行成果；更新后的环境与 AI 工具清单；每名成员的 S2 提示词文件（含任务闭环及阶段反思）或未使用声明                  |
| S3：结题与展示         | **最后一周** | 完成、测试、展示与复盘                   | 最终报告 PDF；完整源码 ZIP；展示幻灯片 PDF 与必要的视频/图片；最终环境与 AI 工具清单；**所有成员 S1～S3 的原始提示词、任务闭环、阶段反思文件及汇总索引** |

### 6.1 第七周：选题与初步设计

初步设计报告至少写明：（1）选题、纪念对象、实现形式；（2）成员名单及各自分工；（3）主要功能与三维场景构想；（4）进度安排。附上已经选定的技术路线、开发环境和 AI 工具，以及该阶段的完整提示词、已开展关键任务的闭环与阶段反思。

### 6.2 第十三周：详细设计

详细设计报告至少写明：（1）完整功能描述；（2）模块结构、流程、关键函数和变量；（3）实际采用的开发工具、环境、图形库及 AI 工具；（4）已完成的功能与未完成事项、存在的问题和后续计划。提交能反映进度的阶段代码、本阶段全部原始提示词、关键任务闭环与反思；对实际分工变化作出说明。

### 6.3 最后一周：最终设计与展示

最终报告至少写明：（1）各功能的最终实现情况；（2）核心源文件清单及关键代码说明；（3）运行截图、视频或其他功能证据；（4）成员**实际贡献**及个人自评；（5）使用 AI 的工作内容、人工修改、测试核验、未采纳建议与遗留问题。另交完整源码、展示材料及所有阶段的 AI 原始提示词、关键任务闭环、反思记录与索引。

网页项目应提供可直接访问的首页或清晰的本地启动步骤；Unity、Unreal、桌面程序等非纯网页项目应提供工程、依赖与运行/构建说明。提交前在另一目录解压，检查资源路径、入口和关键功能。

## 七、AI 提示词、人机协作与人工智能素养证据

学生提交分成“**全部原始输入 + 关键任务闭环 + 阶段简短反思**”三层：

1. **全部原始输入：**按真实顺序逐条保存项目相关、本人可见且实际发出的提示词，包含失败、比较、追问、调试、未采纳和 Vibe Coding/Agent 指令，不能只交成功案例。保持原文，单条唯一 ID，并关联实际 AI 反馈与处理决定。
2. **关键任务闭环：**针对本人开展的重要功能或技术决策，将多个提示词 ID 关联到同一任务，说明目标与验收标准、开始时的判断、**人机分工与能力边界**、方案选择理由、个人修改、**核验方法和观察结果**、局限/风险及具体源文件、版本、测试证据。没有实际比较、测试或创新不要求编造。
3. **阶段简短反思：**分别结合实际事件说明主动尝试与持续改进、工具选择、人工判断、结果核验、应用成果及诚信安全；自述只是线索，不能替代对话、代码、运行和答辩。
4. **原始文本可提取：**每人每阶段一份 MD 或含可复制文字的 DOCX，保留统一分隔符和字段；关键 AI 输出与可见 Agent 操作日志作为补充。不能用截图/超链接/PDF 冒充全部提示词。
5. **不按提示词数量打分：**后续重点观察与人机协同、批判与创新思维相关的行为，兼顾工具技能、数据建模、应用、持续改进与规范责任；最终与源码、测试、报告及答辩核对。未使用 AI 的学生如实声明并提交等效工作证据，不虚构对话，也不因没有提示词自动扣分。

具体字段、索引、目录、脱敏、关键任务记录请看 **[《AI 提示词与人机协作过程记录规范》](./ai-collaboration-rules.html)**。学生使用 **[《个人 AI 提示词与协作过程记录模板》](./ai-prompt-template.html)**。

## 八、提交前核对

- [ ] 作品围绕“纪念”主题；小组为 3～4 人并符合组队要求。
- [ ] 六项基本功能已实现，或者在阶段报告中如实写明当前进度；关键功能可现场验证。
- [ ] 开发环境、图形技术、AI 对话/编程工具均已填写；没有使用的明确注明。
- [ ] 报告和汇报材料为 PDF，源代码为真正 ZIP；提示词文件为可复制文字的 MD/DOCX。
- [ ] 所有成员均有对应阶段的独立提示词文件或未使用声明，结题包包含全部阶段记录。
- [ ] 提示词原文、反馈、人工决策、关键任务闭环、阶段反思与代码/测试证据能够互相对应；未泄露密钥或个人隐私。
- [ ] 已在课程平台**相应阶段**完成上传，并确认文件可打开、解压及运行。

> **关键提醒：**允许 AI 辅助甚至 Vibe Coding，但不接受只展示 AI 产物而无法说明本人工作过程。最终评价应结合可运行作品、代码、报告、提示词记录和现场答辩综合进行。
