# 玩具积木 · `toyBrick.ts`

**媒介的物理形态。** 注塑成型的 ABS 玩具积木，用正交视图渲染（方位角 45，仰角 30）。零手绘痕迹。用真实单位（`toyBrickKit.ts`）：1 个凸点间距 = 20 LDU，砖块高 24，薄板高 8，凸点宽 12、高 4，所以 5:6 的砖块比例从构造上就是对的。任何地方都绝不要写出商标名。

**笔触。** 零件本身。用真实的玩具积木颜色平涂塑料面（固定色表，spec 13 第 9 条），按立方体规则每个面一个色调（顶面 +0.10，受光的 +Z 侧面 0，远处的 +X 侧面 -0.22），在顶面和可见侧面交界的地方、以及每一条可见的竖直棱角上画倒角高光，在一个零件和下一个零件相接的地方画一条发丝细的深色接缝，凸点是真正的圆柱（在它所立的那个顶面上有新月形阴影，侧面色带左亮右暗，顶部椭圆，朝光的一侧有新月形高光）。

**边缘。** 利落的塑料边缘，只由倒角条带稍作柔化。样张里唯一的模糊是地面阴影：把每个零件的包围盒顺着光线方向扫到底板上，以 1/5 尺寸填充，再放大画回来。

**顺序。** 拼装说明书的语法：空的背景，底板落进来，然后一步一步来（每一步都从一拍开始，零件最多分四个 5 帧时段就位），在同一层之内由下往上、由后往前；零件沿着插入轴笔直落下，用缓出（ease-out），移动时从 35% alpha 开始以半透明虚影显示，就位时有一帧 0.5 LDU 的压入。当前这一步的零件带着说明书那种黄色描边，直到下一步开始。一个短暂的落定（整个模型压到底，1 LDU），然后定格。

**画家算法的绘制顺序。** 不用 z 缓冲：每一帧，零件按它们包围盒之间两两的分离轴排序（先 X，再 Z，再 Y），只对屏幕包围盒互相重叠的零件对排序（Kahn 拓扑排序）。已就位的零件缓存成一个图层，以已就位 id 的精确集合作为键；任何正在移动的东西画在这个图层之上，接着再画所有站在它前面的已就位零件。

**调色板与背景。** 蓝色（Blue）水面底板，浅蓝灰 / 深蓝灰（Light/Dark Bluish Grey）码头，红色（Red）+ 黑色（Black）船身，红棕色（Reddish Brown）甲板，白色（White）上层建筑，中天蓝（Medium Azure）玻璃，黄色（Yellow）烟囱，橙色 / 红棕色（Orange/Reddish Brown）板条箱。一种平涂的影棚背景色。

**和近邻不同。** `fox`（剪纸拼贴）是撕开的纸，每一片都有翘起的影子，每一条边后面都有一只手；这里的样子是工业制造出来的，过程是组装，不是绘画。

**运动语法。** 刚性：不挤压，不拉伸，不弹跳。拆解就是把搭建过程逐帧倒放。
