附录 A:风格参数表、量化规则与数据集索引
《游戏美术与技术美术》卷三《风格与品类美术实战》附录:全卷风格参数与公式索引、st<章号>_ 工具链命名约定、六层可运行性口径与逐层复现命令,并给出可跑的 S 层清点脚本与 P 层索引校验内核,两者对同一份工作区算出的清单与摘要逐位一致,并附一键复现与排错顺序。
category
《游戏美术与技术美术》卷三《风格与品类美术实战》附录:全卷风格参数与公式索引、st<章号>_ 工具链命名约定、六层可运行性口径与逐层复现命令,并给出可跑的 S 层清点脚本与 P 层索引校验内核,两者对同一份工作区算出的清单与摘要逐位一致,并附一键复现与排错顺序。
等距资产不能随便画尺寸:底菱要落在半行网格上、宽度要偶数才能整数居中、锚点必须是底菱中心、单件还得装进图集格。本节把 C1–C6 这 6 条约束写成整数判据,对《星屑旅店》的 6 件等距资产逐件过账,让灯具半行不对齐、雨棚超格超宽这三条真实违例当场现形。
等距板只要有两格以上高度,就会出现遮挡。本节把绘制顺序与遮挡深度都写成整数规则:按 (tx+ty, tx) 升序落笔,深度数同屏幕列 (tx-ty) 上位于本格前方、blockHeight ≥ 1 的地块数,超过 cap 判越界;再用单文件 HTML 看板并排画两套主题,Playwright 断言整数账与 Python 逐位一致。
等距(2.5D)是一套跨主题的投影,不是主题包:tile 宽高定死之后,cozy-clean 与 voxel 的屏幕坐标逐位相同。本节用与卷一 [16.2 双案例回放:《星屑旅店》6 主题的规范装配] 同源的整数变换,算《星屑旅店》8×8 地板的正变换、逆变换回程、包围盒与菱形填充率,并证明投影与主题正交。
引擎不吃体素,吃三角网格,所以体素美术的最后一关是「体素 → 网格」的转换账。本节用《星屑旅店》的体素灯具算两种路线:朴素路线每个暴露面出 1 个四边形(476 三角),贪心合并把同朝向同色共面的相邻面并成矩形(60 三角),合并率 873 千分比;再与三角预算和材质槽预算对账。
体素美术通常不做实时求值光照,而是把每个面朝向的亮度烘成固定档位。于是最终颜色数 = 基础色数 × 档位数——这条乘法就是调色板上限的账。本节用《星屑旅店》的体素灯具算这笔账:6 个面朝向直接着色会得到 18 色、越过 16 色上限,折叠成 4 个档位后回到 12 色,并让 Python 与 TypeScript 各自独立复算、逐位对齐。
体素风格看起来只是「把东西做成方块」,落到规范上却是一笔干净的整数账:格子里有多少体素、包围盒多大、多少个面被相邻体素挡掉、多少格完全埋在内部。本节把《星屑旅店》的体素灯具用 8 个轴对齐盒描述,光栅化成网格,算体素数、包围盒、暴露面与剔除面,并让 Python 与 TypeScript 各自独立复算、逐位对齐。
前两节把厚涂里能写成数据的部分写完了:笔刷参数、色域、分层与复用。剩下的那一半——笔触质量——本机根本做不了。本节整节标 X,逐条说明它为什么不可复现,并把「不许给不可复现的东西编一个数字」写成一条会失败的门禁:声明表里只要出现一个测量值字段,测试立刻报错。
厚涂最贵的不是笔刷,是「每个资产都从头画一遍」。本节把手绘贴图拆成图层角色与贴图页,落成一份 D 层清单与一段可跑的 TypeScript 校验器:图层角色序列必须与模板逐位一致,每个资产用到的贴图页数有上限,两级复用率是整数千分比——地板除,跨语言逐位一致。
风格化厚涂既没有可导出的模型,也没有可渲染的着色器,能写进规范的只有两样:笔刷参数与色域。本节把两者落成一份 D 层 JSON 规范与一段可跑的 TypeScript 校验器——笔刷的尺寸、间距与图层不透明度带,色域的饱和度上限、明度下限与色相带,全部是整数,并说清为什么这一章只走 D+P+X 而不硬凑一个 S 层。
前两节把贴图和材质都算成了字节,本节把「写实」相对扁平着色的代价算成一张整数账:常驻贴图数、显存字节、每像素采样数、着色器变体数、材质槽数五条可数轴,各算写实/基线的整数比值再加权成代价指数,并给出从朴素写实到逐项缓解的阶梯。真实帧时间与 GPU 占用属 X,命令行不可复现,本节只划界不伪造。
上一节把五张贴图压成三张,本节解决另一半问题:一个道具组到底该切几张材质。把「物理材质分区 × 细节层级」写成 D 层规格,再按每 slot 的分辨率与贴图集算出整链字节,逐位对账:细节密度均值、高细节层字节集中度、按分区合并后的槽位与字节降幅,并让超预算的槽位在账上直接报 OVER。
写实 PBR 一个材质动辄五张贴图,通道打包是把它压回来的第一招。本节把「三张单通道贴图塞进一张 ORM」算成整数字节账,结论反直觉:未压缩时打包反而更大,压缩后打包省到三分之一;再用 PIL 真生成一张通道打包示意 PNG 并回读验证三通道与原图逐点相等。
本章前两节算的都是参数与整数账,但 NPR 里有一整块本机算不了:真渲染一帧。本节专门做划界——把 NPR 相关主题分成「本书讲参数与账」「站内别处讲原理(外链)」「本机根本做不了(X)」三类,写成一张可校验的归属表,并把真渲染、真调参逐处标 X 与显式注明「需真实环境,命令行不可复现」。
上一节把光照量化成色阶带,本节把光照拆成一层层:基础色、阴影、主光、边缘光、高光。每层一个整数参数,档位越高层越多。光照模型与后处理实现外链站内渲染原理专题,本节只做参数表与整数账——每层着色结果怎么算、为什么「阴影最暗、高光最亮」必须写成一条会失败的判据。真实渲染观感标 X。
NPR 卡通渲染把连续光照量化成几段色阶带、把轮廓画成一条描边。本节只做这两个参数的规范与整数账:四组色阶带变体的边界怎么定、为什么四组宽度都恰好和为 1000,描边宽度的千分比在四个高度下如何用整数上取整算出像素数,并用 PIL 依同一份参数真生成色阶带样本图。真实渲染观感标 X。
低多边形要进引擎,先过三道约束:顶点属性步长、材质槽数与顶点色。本节把《星屑旅店》一屏 12 件家具的四种顶点布局算成字节账,用顶点色把材质槽从 19 降到 12、清掉 counter 与 bed 两个超槽资产,并给出每顶点 4 字节的代价与跨语言 digest。
平面着色给每个面一个平色,色块划分就是决定这个面该归哪一档亮度。本节把一块 12 面 lowpoly 宝石按整数 shadeLevel 分成 4 个色块,算出每档面数与最大色块占比 416‰,用 PIL 按同一份 palette 真生成平面色样本 PNG,并给出跨语言 digest 与色块超预算的负例。
低多边形的面数预算好算,顶点预算却常被算错:平面着色要求每个面独立顶点,上传顶点数不是共享顶点数,而是面数的 3 倍。本节把《星屑旅店》lowpoly 主题的一屏 12 件家具算成两套账——面数 1200 过线、平面着色顶点 3600 爆线、索引共享 633 过线,并给出字节倍数与跨语言 digest。
「画得好不好」没有可跑的数字,硬凑一个笔触指标比不写更危险。本节整节标 X:把 2D 手绘的画质与笔触显式划出可命令行复现的范围,只保留能静态校验的东西——笔刷参数声明表的结构、范围与诚实性。真实笔触质量需真实画师与真实环境,命令行不可复现;本节给出的是「不许过度承诺」的门禁,不是画质评分。