Three-Dimensional Viewing × Hierarchical Modeling

Three-Dimensional Viewing × Hierarchical Modeling:建立观察坐标、投影和视体裁剪的完整合同,并用父子局部变换构造可编辑的层级模型,以公式、章专属交互和可重放故障证据独立重写。

学习目标

  • 能说明Three-Dimensional Viewing × Hierarchical Modeling中的“建立观察坐标、投影和视体裁剪的完整合同,并用父子局部变换构造可编辑的层级模型”,并指出公式中每个量的空间、单位或概率含义
  • 能比较正常基线与“在裁剪前执行透视除法,或混淆左右手坐标与深度范围;把世界矩阵写回局部矩阵,或图中出现未检测的循环依赖”反例,定位相机基、clip坐标、w符号、NDC范围和深度值、父子路径、局部矩阵、世界矩阵和共享实例身份中的首个差异
  • 能操作三个章专属实验,让3d viewing、view volume、hierarchical modeling、scene graph同时具备解释、视觉和练习证据
  • 能修改最小实现、固定输入重放,并判断“Three-Dimensional Viewing的输入、公式中间量、输出与恢复结果可用同一基线复算,且Hierarchical Modeling的输入、公式中间量、输出与恢复结果可用同一基线复算”是否重新成立

从一个会失败的图像实验开始

Three-Dimensional Viewing × Hierarchical Modeling要回答的不是“这个名词是什么”,而是:在固定输入下,如何验证“建立观察坐标、投影和视体裁剪的完整合同,并用父子局部变换构造可编辑的层级模型”,并让一个反例可重复地推翻错误实现?先写下预期像素、几何或估计量,再运行基线;只要相机基、clip坐标、w符号、NDC范围和深度值、父子路径、局部矩阵、世界矩阵和共享实例身份无法指出差异来自哪一步,图像看起来正确也不能通过。

本页的不变量是:Three-Dimensional Viewing的输入、公式中间量、输出与恢复结果可用同一基线复算,且Hierarchical Modeling的输入、公式中间量、输出与恢复结果可用同一基线复算。反例“在裁剪前执行透视除法,或混淆左右手坐标与深度范围;把世界矩阵写回局部矩阵,或图中出现未检测的循环依赖”只改变一个条件,因而正常、故障与恢复三次运行应能用同一输入直接比较。

原版、版次与事实来源

Three-Dimensional Viewing × Hierarchical Modeling只用Pearson第4版书目与22章目录确定原书单元;未取得正文,因此不宣称复现作者表述。以下机制、公式与代码按图形学定义独立编写,OpenGL 4.6 Core规范GLSL 4.60规范只核对现代API事实,不替代原书历史内容。

六个检查词

。这些词共同约束建立观察坐标、投影和视体裁剪的完整合同,并用父子局部变换构造可编辑的层级模型,每个词都必须落到公式、交互状态或可重放输出,不能只出现在术语表。

原书单元与独立机制解释

Three-Dimensional Viewing

3d viewing 把世界点转换到相机空间并投影,view volume 界定近远平面与侧面裁剪范围。透视除法前后的空间不可混用,近裁剪面也不能设为零。

本单元的正式坐标是3d viewing、view volume。验证Three-Dimensional Viewing时,先制造“在裁剪前执行透视除法,或混淆左右手坐标与深度范围”,再检查相机基、clip坐标、w符号、NDC范围和深度值能否把错误定位到建立观察坐标、投影和视体裁剪的完整合同的首个分叉。

pndc=PVpworldwclipp_{ndc}=\frac{P V p_{world}}{w_{clip}}

Hierarchical Modeling

hierarchical modeling 把复杂对象拆成局部部件,scene graph 通过父子关系传播变换与可见状态。修改父节点会影响整棵子树,但共享节点需要明确实例化和所有权。

本单元的正式坐标是hierarchical modeling、scene graph。验证Hierarchical Modeling时,先制造“把世界矩阵写回局部矩阵,或图中出现未检测的循环依赖”,再检查父子路径、局部矩阵、世界矩阵和共享实例身份能否把错误定位到用父子局部变换构造可编辑的层级模型的首个分叉。

Mworldchild=MworldparentMlocalchildM_{world}^{child}=M_{world}^{parent}M_{local}^{child}

先预测,再操作三个章专属实验

分步1 / 3

1. 概念与因果路径

在Three-Dimensional Viewing × Hierarchical Modeling中选择任一正式坐标,沿机制链查看它的输入、状态变化和可推翻探针。

图形管线坐标审计

Three-Dimensional Viewing × Hierarchical Modeling

把建立观察坐标、投影和视体裁剪的完整合同,并用父子局部变换构造可编辑的层级模型放进输入、变换、离散、外观与显示五个责任阶段。

正式概念

Three-Dimensional Viewing / 3d viewing

3d viewing 把世界点转换到相机空间并投影,view volume 界定近远平面与侧面裁剪范围。透视除法前后的空间不可混用,近裁剪面也不能设为零。

模型/输入

定义图元、属性、数据或交互事件

探针:相机基、clip坐标、w符号、NDC范围和深度值

当前公式坐标

p_{ndc}=\frac{P V p_{world}}{w_{clip}} ; M_{world}^{child}=M_{world}^{parent}M_{local}^{child}
原书边界:Donald Hearn、M. Pauline Baker、Warren Carithers《Computer Graphics with OpenGL》第4版。课程实验显式标注坐标和状态,不把现代API示例冒充原书正文。

最小可重现实验

vec4 clip = projection * view * model * vec4(position, 1);
if (!inside_clip_volume(clip)) discard_primitive();
vec3 ndc = clip.xyz / clip.w;
Depth z = map_depth(ndc.z);

运行Three-Dimensional Viewing × Hierarchical Modeling时固定随机种子、输入几何、坐标约定和数值精度;记录编译命令或算法版本、输出摘要与失败条件。实验输出若依赖隐藏全局状态,必须先消除该依赖再比较。

练习与答案

练习

问题 1:公式与边界。 怎样用一个数值样本证明 pndc=PVpworldwclipp_{ndc}=\frac{P V p_{world}}{w_{clip}} 中的量没有混用空间、单位或概率密度?

问题 2:正式坐标。 3d viewing、view volume、hierarchical modeling、scene graph如何进入可操作验证?

问题 3:故障恢复。 如何证明“在裁剪前执行透视除法,或混淆左右手坐标与深度范围;把世界矩阵写回局部矩阵,或图中出现未检测的循环依赖”已经真正修复?

本章回顾

掌握Three-Dimensional Viewing × Hierarchical Modeling意味着能将“建立观察坐标、投影和视体裁剪的完整合同,并用父子局部变换构造可编辑的层级模型”写成明确公式或算法,能操作正式坐标,能制造“在裁剪前执行透视除法,或混淆左右手坐标与深度范围;把世界矩阵写回局部矩阵,或图中出现未检测的循环依赖”,还能凭相机基、clip坐标、w符号、NDC范围和深度值、父子路径、局部矩阵、世界矩阵和共享实例身份恢复同输入结果,而不是把一段Vulkan生命周期模板换上本章标题。

名词解释

本章出现的专业名词,用大白话再讲一遍。

3d viewing

3d viewing在Three-Dimensional Viewing × Hierarchical Modeling中用于建立观察坐标、投影和视体裁剪的完整合同;应由相机基、clip坐标、w符号、NDC范围和深度值确认,而不是只凭术语出现。

view volume

view volume在Three-Dimensional Viewing × Hierarchical Modeling中用于建立观察坐标、投影和视体裁剪的完整合同;应由相机基、clip坐标、w符号、NDC范围和深度值确认,而不是只凭术语出现。

hierarchical modeling

hierarchical modeling在Three-Dimensional Viewing × Hierarchical Modeling中用于用父子局部变换构造可编辑的层级模型;应由父子路径、局部矩阵、世界矩阵和共享实例身份确认,而不是只凭术语出现。

scene graph

scene graph在Three-Dimensional Viewing × Hierarchical Modeling中用于用父子局部变换构造可编辑的层级模型;应由父子路径、局部矩阵、世界矩阵和共享实例身份确认,而不是只凭术语出现。

coordinate space

coordinate space:坐标空间声明数值当前属于模型、世界、观察、裁剪或设备阶段。

raster state

raster state:光栅状态决定覆盖、深度、混合和面剔除等离散规则。

阅读导航

← Three-Dimensional Geometric Transformations · Visible-Surface Detection Methods →

讨论

评论区加载中…