Two-Dimensional Viewing
Two-Dimensional Viewing:把世界窗口稳定映射到设备视口并执行裁剪,以公式、章专属交互和可重放故障证据独立重写。
学习目标
- 能说明Two-Dimensional Viewing中的“把世界窗口稳定映射到设备视口并执行裁剪”,并指出公式中每个量的空间、单位或概率含义
- 能比较正常基线与“窗口宽度为零、y轴方向约定不一致,或先取整再裁剪”反例,定位窗口角点、视口角点、裁剪参数和边界像素中的首个差异
- 能操作三个章专属实验,让2d viewing、window viewport同时具备解释、视觉和练习证据
- 能修改最小实现、固定输入重放,并判断“Two-Dimensional Viewing的输入、公式中间量、输出与恢复结果可用同一基线复算”是否重新成立
从一个会失败的图像实验开始
Two-Dimensional Viewing要回答的不是“这个名词是什么”,而是:在固定输入下,如何验证“把世界窗口稳定映射到设备视口并执行裁剪”,并让一个反例可重复地推翻错误实现?先写下预期像素、几何或估计量,再运行基线;只要窗口角点、视口角点、裁剪参数和边界像素无法指出差异来自哪一步,图像看起来正确也不能通过。
本页的不变量是:Two-Dimensional Viewing的输入、公式中间量、输出与恢复结果可用同一基线复算。反例“窗口宽度为零、y轴方向约定不一致,或先取整再裁剪”只改变一个条件,因而正常、故障与恢复三次运行应能用同一输入直接比较。
原版、版次与事实来源
Two-Dimensional Viewing只用Pearson第4版书目与22章目录确定原书单元;未取得正文,因此不宣称复现作者表述。以下机制、公式与代码按图形学定义独立编写,OpenGL 4.6 Core规范与GLSL 4.60规范只核对现代API事实,不替代原书历史内容。
六个检查词
↡2d viewing在Two-Dimensional Viewing中用于把世界窗口稳定映射到设备视口并执行裁剪;应由窗口角点、视口角点、裁剪参数和边界像素确认,而不是只凭术语出现。、↡window viewport在Two-Dimensional Viewing中用于把世界窗口稳定映射到设备视口并执行裁剪;应由窗口角点、视口角点、裁剪参数和边界像素确认,而不是只凭术语出现。、↡coordinate space:坐标空间声明数值当前属于模型、世界、观察、裁剪或设备阶段。、↡raster state:光栅状态决定覆盖、深度、混合和面剔除等离散规则。、↡reference image:参考图用固定输入和高质量设置提供误差比较基线。。这些词共同约束把世界窗口稳定映射到设备视口并执行裁剪,每个词都必须落到公式、交互状态或可重放输出,不能只出现在术语表。
原书单元与独立机制解释
Two-Dimensional Viewing
2d viewing 先在世界空间选择可见window,再映射到设备viewport;window viewport 变换同时包含平移与比例。裁剪应先于设备量化,以避免窗口外几何污染边界像素。
本单元的正式坐标是2d viewing、window viewport。验证Two-Dimensional Viewing时,先制造“窗口宽度为零、y轴方向约定不一致,或先取整再裁剪”,再检查窗口角点、视口角点、裁剪参数和边界像素能否把错误定位到把世界窗口稳定映射到设备视口并执行裁剪的首个分叉。
先预测,再操作三个章专属实验
1. 概念与因果路径
在Two-Dimensional Viewing中选择任一正式坐标,沿机制链查看它的输入、状态变化和可推翻探针。
图形管线坐标审计
Two-Dimensional Viewing
把把世界窗口稳定映射到设备视口并执行裁剪放进输入、变换、离散、外观与显示五个责任阶段。
正式概念
Two-Dimensional Viewing / 2d viewing
2d viewing 先在世界空间选择可见window,再映射到设备viewport;window viewport 变换同时包含平移与比例。裁剪应先于设备量化,以避免窗口外几何污染边界像素。
模型/输入
定义图元、属性、数据或交互事件
探针:窗口角点、视口角点、裁剪参数和边界像素
当前公式坐标
x_v=x_{v0}+(x_w-x_{w0})\frac{x_{v1}-x_{v0}}{x_{w1}-x_{w0}}最小可重现实验
double sx = (viewport.maxX-viewport.minX)/(window.maxX-window.minX);
double sy = (viewport.maxY-viewport.minY)/(window.maxY-window.minY);
Point device{viewport.minX + (p.x-window.minX)*sx,
viewport.minY + (p.y-window.minY)*sy};运行Two-Dimensional Viewing时固定随机种子、输入几何、坐标约定和数值精度;记录编译命令或算法版本、输出摘要与失败条件。实验输出若依赖隐藏全局状态,必须先消除该依赖再比较。
练习与答案
练习
问题 1:公式与边界。 怎样用一个数值样本证明 中的量没有混用空间、单位或概率密度?
问题 2:正式坐标。 2d viewing、window viewport如何进入可操作验证?
问题 3:故障恢复。 如何证明“窗口宽度为零、y轴方向约定不一致,或先取整再裁剪”已经真正修复?
本章回顾
掌握Two-Dimensional Viewing意味着能将“把世界窗口稳定映射到设备视口并执行裁剪”写成明确公式或算法,能操作正式坐标,能制造“窗口宽度为零、y轴方向约定不一致,或先取整再裁剪”,还能凭窗口角点、视口角点、裁剪参数和边界像素恢复同输入结果,而不是把一段Vulkan生命周期模板换上本章标题。
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 2d viewing
2d viewing在Two-Dimensional Viewing中用于把世界窗口稳定映射到设备视口并执行裁剪;应由窗口角点、视口角点、裁剪参数和边界像素确认,而不是只凭术语出现。
- window viewport
window viewport在Two-Dimensional Viewing中用于把世界窗口稳定映射到设备视口并执行裁剪;应由窗口角点、视口角点、裁剪参数和边界像素确认,而不是只凭术语出现。
- coordinate space
coordinate space:坐标空间声明数值当前属于模型、世界、观察、裁剪或设备阶段。
- raster state
raster state:光栅状态决定覆盖、深度、混合和面剔除等离散规则。
- reference image
reference image:参考图用固定输入和高质量设置提供误差比较基线。
阅读导航
← Two-Dimensional Geometric Transformations · Three-Dimensional Geometric Transformations →