计算机图形学 · D02 已验证输出版 · 第一章 / 第二章
离线单文件 · Canvas 教学模拟
多模型绘制流水线:每一步看见结果
用一个含多个模型的场景,顺着流水线看:相机在哪里、模型怎样互相遮挡、教学裁剪窗口如何保留或舍弃几何、像素最终怎样留下。
① 选择阶段:连续比较输入与输出
降低数值,可模拟屏幕上先已有更近的片元;与模型间遮挡一起观察深度测试。
输入 Input
输出 Output · 本阶段真正产生什么
数据类型与执行位置
课堂观察与提问
任意阶段可调整模型与相机,再观察输入、输出和下方坐标数值怎样同步改变。
② 每一阶段:输入画面 → 输出画面
立方体棱锥三角面板当前追踪模型 / 三角形候选片元
演示视口 56 × 34 个教学像素。两幅图的“场景观察视角”和“流水线相机视角”有时不同,以图内标题为准;严禁将前者误认作变换产生的渲染结果。
③ 查数据:选定同一个顶点,追踪坐标变化
默认追踪所选模型的顶点 V0;右侧可在片元阶段单击任意网格,查看该像素的候选片元与深度比较。
模型坐标 → 世界坐标 → 相机坐标 → 裁剪坐标
当前阶段的矩阵 / 图元 / 片元细节
准确性说明:为便于初学者学习,本 Demo
将典型顶点着色器内部的模型、观察、投影数学运算分成三个观察页。所有计算、几何裁剪、网格化与深度比较均由浏览器
JavaScript / Canvas 2D 模拟;并非获取真实 WebGL 驱动或 GPU
的中间执行数据。关闭裁剪或光栅化是教学对照,不代表 WebGL
中有同名的可关闭开关。观察用的辅助相机不会进入模型的渲染流水线。
教学使用:第一章关注「不同坐标空间如何产生不同几何结果」与流水线整体;第二章进一步分析矩阵、齐次裁剪、顶点数据、片元生成;其他章节可复用模型旋转、相机与深度测试。