# 梦境罩染（手绘的梦）· `dreamGlazeKit.ts` + `dreamGlaze.ts`

**媒介，从物理上说。** 用树脂稀释的油彩，用一支很小的软笔在光滑的白底上薄薄地一层层罩染。表面像珐琅一样平：没有鬃痕，没有颜料脊，看不见笔触。这是「手绘的梦境照片」的手笔：把一个不可能的场景画得像静物一样细致。

**笔触。** 看不出任何笔触。形体靠细到看不见的明度阶梯转出体积，所以单位是单个像素，每个像素都被同一个太阳照亮。每个立着的东西都是一个高度场（`Obj.at` 返回它的边缘距离、朝向眼睛的高度、两个表面坐标和一种材质）；工具包从高度求出法线，交给你的绘制函数，绘制函数问 `sunAt` 太阳能不能照到那个点（它朝太阳方向在高度场上步进），并调用 `light` 混合温暖的阳光、冷的天光和来自地面的暖色反光。没有任何东西是笔触、渐变填充或模糊。

**边缘。** 硬，近处远处都一样。纵深靠雾霭和尺度，永远不靠柔化。一英里外的东西和一臂之遥的东西一样锐利，只是更小、更淡。

**顺序。** 一块白色打底的画板；用稀薄的赭褐色（umber）起稿；天空铺两遍（先一层薄罩染，再一层完整的），从顶部一行一行铺下来；平原也一样；每个形体，最远的先画，用它的阴影色调铺出；投影；小的点缀（手写字、睫毛、星星）；主形体由暗到亮地深入刻画，最后画、画得最慢；签名。

**空间与光。** 一台针孔相机俯对一片无尽的平原，地平线很低。一个低低的太阳，在左前方：每个形体都由它照亮，每道影子都斜斜地拉向右方和远处，在地面上用绘制该物体的同一份 alpha 计算出来。小人物和重复的物体给出尺度。

**调色板与底子。** 群青经过绿松石色渐变到地平线处的柠檬黄；赭石和赭褐色的平原；蜡质的肤色；紫褐色的阴影；一种饱和的橙色，只留给一个点缀。一层 4% 的细亚麻织纹和 5% 的核心 `paper` 贴图；四角略微沉暗，就像旧光油那样。

**不是它的邻居。** `paintedOil` 露出鬃痕，让边缘消失在阴影里，湿画湿地画。梦境罩染藏起笔，保住每一条边；它的戏剧性在于构思和光，永远不在颜料上。

**工具包与样张。** `dreamGlazeKit.ts` 是手笔，仅此而已：噪声和颜色、`sunlight()`、`Obj` 高度场、`raise()` 和 `paintForms()`、`surface()`，以及两组影片手势 `rows()` / `laid()` 和 `workPlan()` / `workUp()`。它不含任何脸、物体或道具。`dreamGlaze.ts` 是用它画出来的一幅画。在工具包上画新的画：写你自己的 `Obj`、你自己的绘制函数和你自己的地面。不要从样张导入。它的面具、问号、卷轴、火花和远处的重复物属于那一幅画，不是这种画风的词汇；第二幅画如果复用它们，就是把同一幅画又画了一遍。

**题材规则。** 手笔只是一半。画面需要本该坚硬的柔软之物、本该落下却被托住的东西、一个一直重复到地平线的物体，以及一幅藏着第二层意思的图像。为你自己的题材发明你自己的道具；永远不要重新搬演一幅已知的名画。

**运动语法。** 笔触到来；什么都不淡出。底子用之字往返（boustrophedon）的行铺开，行的下沿微微摆动（`rows`、`laid`）。形体先用阴影色调铺出，再深入刻画：一个亮度上限在形体上逐渐升高，所以阴影最先完成，高光最后（`workPlan`、`workUp`）。手写字沿它的行一路写出去。最后几帧就是静帧，逐像素一致。
