这是《游戏美术与技术美术》三卷本的第一卷。它回答的问题是:美术做出来的东西,凭什么说它「对」。既不是「怎么把画面做漂亮」(那是画师的手艺,本卷不教,也教不了),也不是「渲染器怎么写」(站内
graphics/专题与《游戏引擎实现原理》已经把原理讲透)。它讲的是中间那一段:把「治愈」「硬核」这类形容词变成可测参数,把色卡变成可引用的 token,把「这个模型面数有点高」变成可判定的预算账,把「这批外包不行」变成可归因的验收表。
卷一的 16 章分成四块:分工、目标与规范底座(第 1–4 章),资产规范与预算(第 5–8 章),分项美术规范(第 9–12 章),外包、评审、协作与装配(第 13–16 章)。贯穿全书的仍是虚构的等距经营游戏 《星屑旅店》(stardust-inn:等距经营 × 装扮的治愈系休闲游戏)与工具链 prism(config/ + sim/ Python + core/ TypeScript + web/ 单文件 HTML)。
这套书与站内既有内容的分工
站内已经有大量相邻内容,写清楚分工比重复写一遍更有价值。下面七处边界是本卷最容易混淆的,务必分清:
- 游戏美术风格规范:Style Bible 怎么写才真的有用 是本卷最直接的撞车源。它是口号式提纲:风格该包含哪些维度、怎么写才不至于空泛。本卷做的是把那些维度变成可算的量:第 2 章把形容词翻成风格向量,第 3、4 章把色彩翻成 token 与对比度,第 16 章把这些收成一本能被门禁校验的 Art Bible。本卷多处首段外链它并写明分工,不重写它的清单。
- 移动端与 PC 性能预算管理 与 性能优化生产指南 讲的是工程侧怎么把帧率做稳。本卷只做美术侧的账:面数、骨骼、材质槽、贴图字节、整包分类预算——这些数字是工程预算的输入,不是替代。
graphics/渲染原理专题(45 篇)是原理的家:色彩管理与 HDR 管线、纹理内存与压缩、glTF 资产管线、着色器编译、骨骼动画数学、后处理、GPU 粒子、移动端渲染优化、GPU Driven 与 LOD。本卷一律不重推原理,只外链,并在 1.3 节把它编码成一张可断言的ART_SCOPE分工路由表。- 《游戏引擎实现原理》卷二《渲染引擎》 是引擎实现的家(56 篇)。它的 1.3 节已经把「算法不重推」写成可断言的路由表,本卷照此写美术侧的对应表;引擎如何把资产喂给导入器、如何调度打包,属于实现,外链。
- 独立游戏像素美术与视觉风格设计实战 是站内唯一现成的「同题」长文(约 740 行),讲的是Aseprite 技法、素材资源与外包需求书模板。本卷不在卷一处理像素(那是卷三第 2 章),且只做可跑的量:调色板上限、像素 tile 预算、量化误差。
- 可视化可访问性与配色 与 可视化视觉编码与感知 讲的是图表口径的色彩无障碍与感知。本卷第 3、4 章取的是游戏美术调色板视角,只在 WCAG 对比度与色盲模拟这两处与它们同源,且明确写出「同一套公式、不同的约束」。
- 《游戏引擎实现原理》1.3 与 graphics 专题的分工表
是渲染侧那张表的原件。本卷 1.3 节的
ART_SCOPE是它在美术侧的镜像:谁定规范、谁消费规范、谁不该被本卷重复。
一句话:本卷做的是「美术侧的规范与账」,不是「怎么画」,也不是「渲染器怎么写」。
明确不在本卷范围内
为了让边界清楚,下面这些这一卷不讲:
- 绘画、建模、雕刻、贴图绘制的手艺本身(笔触、造型能力、审美判断)。
- 渲染原理与着色器(色彩管理、光照、后处理、粒子)——站内 graphics 专题 与《渲染引擎》卷 已覆盖。
- 引擎侧的资产管线实现(导入器、打包器、RHI、剔除)——那是卷二《技术美术与管线工程》 要做的事。
- 具体引擎的 API 教程(Cocos / Defold / Unity 各有专书)。
- 真实 DCC 操作(Blender / Maya / 3ds Max / Substance / ZBrush):本机一个都没有,也不打算安装,一律标 X 并逐处注明「需真实环境,命令行不可复现」。
- 真实外包报价、真实供应商交付质量、真画师审美评审结论(X,需真实业务环境)。
- 法律、税务与商务条款意见(第 13 章只给可核对的规格表与验收项,不代替商务谈判)。
可运行性口径
本卷每节的代码块头部注释里都写着它属于哪一档。所有代码块都在本机实跑过,正文数字等于实跑输出;但「整卷项目复现」(把全部配置与共享模块组装起来一次性跑通)尚未完成,故本页不声称整卷可复现。
| 层 | 含义 | 怎么验证 |
|---|---|---|
| S 仿真层 | Python 数值仿真:对比度与 OKLab 距离、sRGB 往返误差、色盲模拟、面数/骨骼/材质槽/贴图字节/显存账、mip 链字节、装箱率、等距整数变换、人天与返工率 | /opt/homebrew/bin/python3 sim/sp<章号>_*.py,产出 JSON + CSV + SVG + PNG(PIL) |
| P 内核层 | TypeScript 配置驱动校验器:命名 lint、目录分类、保留字、token 引用完整性、依赖图环检测、预算断言、跨语言摘要对照 | node --test 'core/test/sp<章号>_*.test.ts'(必须写全 glob;node --test <目录> 不发现 .ts) |
| W 网页层 | 单文件 HTML 原型:调色板看板与对比度、色盲模拟画布、九宫格拉伸验证 | node web/build_sp09_nineslice.mjs 产出 HTML,再用 NODE_PATH=/opt/homebrew/lib/node_modules node web/verify_sp09_nineslice.mjs 无头断言 |
| D 静态层 | 命名规则、资产清单 schema、预算表、验收清单、评审走查表、Art Bible 模板、交付物清单 | 仅 schema / lint 校验,且必须能被 sim/ 与 core/ 同时读入 |
| X 不可复现 | 真 DCC 打开导出、真 3D 渲染、真外包交付验收、真画师审美 | 正文每处显式标注「需真实环境,命令行不可复现」 |
| B 基准 | 跨语言色彩容差、调色板对比度敏感度、预算随主题漂移 | 产出 JSON,软告警不硬失败,数字来自本机实跑 |
本卷的核心主张是**「一份视觉规范,三处消费、一处生成」:同一份 config/visual_spec.json(色彩 token + 命名规则 + 资产预算 + 风格参数 + 主题包)被 ① S 层 Python 仿真、② P 层 TS 校验器、③ W 层浏览器看板三处消费;并由 ④ PIL 依同一份规范真生成资产**(色卡 / 图集 / 九宫格 / 像素 tile / 等距网格 / 色盲对照图)。规范既是生成器,又是闸门——这是本卷相对站内既有书稿的净增量:既有书稿的 config 只产出数字,本卷的 spec 产出文件。
三条跨语言纪律(与既有书稿的「整数逐位一致」并列):
- 预算与阈值一律整数:字节、面数、骨骼数、材质槽、像素数、人天×100、对比度×10、ΔE×10、细节密度千分比。除法整数地板除,禁浮点 → 逐位一致。
- 色彩真源 = sRGB 8-bit 整数三元组(
[r,g,b]0–255,hex 只是显示形态)。感知量(linear / OKLab / ΔE / WCAG / 色盲 RGB)是派生量,跨语言按声明容差断言。正文一律不写「三处颜色完全相同」,只写「容差内一致,实测最大偏差 N」。 - 转换常数两语言同源:sRGB 阈值
0.04045 / 12.92、指数2.4 / 1.055 / 0.055;OKLab 用 Ottosson 同一组矩阵常数;色盲用同一组 Brettel / Viénot 矩阵。禁一侧用库、一侧手写(本机也没有colour库,天然只能同源手写)。
同样适用两条纪律:不编造真实美术生产数字——所有真实 DCC、真实外包、真实评审结论一律标 X,正文只写「公开可观察机制」;仿真数字只作同机相对量级,S 层应记录环境与输入后复现,禁止写成「提升 N 倍」这类断言。
卷一结构总览(16 章)
| 章 | 主题 | 可运行性层级 |
|---|---|---|
| 1 | 美术生产分工与技术美术的位置 | D + S + P |
| 2 | 视觉目标与风格定位 | S + P + D |
| 3 | 色彩规范与调色板 token 系统 | S + P + D + B |
| 4 | 色彩空间与感知一致性 | S + P + D |
| 5 | 资产命名与目录规范 | S + P + D |
| 6 | 资产元数据与清单 schema | S + P + D |
| 7 | 美术资产预算(面数 / 骨骼 / 材质槽) | S + P + D |
| 8 | 显存与纹理预算 | S + P + D |
| 9 | UI 视觉规范与九宫格 | S + P + D + W |
| 10 | 图标与图集规范 | S + P + D |
| 11 | 角色与场景规范 | S + P |
| 12 | 特效与动画规范 | S + P + D |
| 13 | 外包资产规格与验收清单 | S + P + D + X |
| 14 | 美术评审与走查流程 | S + P + D + X |
| 15 | 美术版本管理与协作工具 | S + P + D + X |
| 16 | 装配:一份可校验的视觉规范 | S + P + D + X |
全书目录
前置
| 篇目 | 核心内容 |
|---|---|
| 目录 | 本页:定位、七处分工、可运行性口径与全书结构 |
| 附录 A:视觉规范公式、参数与数据集索引 | prism/ 全部文件索引、sp<章号>_ 命名约定与六层复现命令 |
第一部分:分工、目标与规范底座(第 1–4 章)
第 1 章 美术生产分工与技术美术的位置——先把「谁做什么」和「什么不归本卷」画清楚
- 1.1 美术生产链路:概念 → 制作 → 接入 → 验收 :美术生产链路(S+P+D)
- 1.2 角色分工与职责矩阵 :角色分工与职责矩阵(P+D)
- 1.3 技术美术的位置:桥接美术与程序(含 ART_SCOPE 分工表) :技术美术的位置(P)
第 2 章 视觉目标与风格定位——把「治愈」「硬核」变成可测参数
- 2.1 从「治愈」「硬核」到可测参数 :形容词转可测参数(S+P+D)
- 2.2 风格向量与风格距离 :风格向量与风格距离(S+P)
- 2.3 参考板与视觉调研的结构化 :参考板与视觉调研(S+D)
第 3 章 色彩规范与调色板 token 系统——本卷第一条主线
- 3.1 主色/辅色/强调色与明度梯度 :主色/辅色/强调色与明度梯度(S+P+D)
- 3.2 色彩 token 化:从色卡到可引用变量 :色彩 token 化(S+P+D)
- 3.3 跨场景色彩一致性 :跨场景色彩一致性(S+P+D+B)
第 4 章 色彩空间与感知一致性——让色彩在感知上说得通
- 4.1 sRGB 与线性空间:美术为什么要在意 :sRGB 与线性空间(S+P+D)
- 4.2 OKLab/OKLCH:感知均匀的色彩距离 :OKLab / OKLCH(S+P+D)
- 4.3 色盲安全与对比度下限 :色盲安全与对比度下限(S+P+D)
第二部分:资产规范与预算(第 5–8 章)
第 5 章 资产命名与目录规范——让机器也能读懂资产的名字
- 5.1 命名规则:前缀/类型/变体/版本 :命名规则(S+P+D)
- 5.2 目录层级与引擎内引用约束 :目录层级与引用约束(S+P+D)
- 5.3 保留字与命名反模式 :保留字与命名反模式(S+P+D)
第 6 章 资产元数据与清单 schema——清单是资产的真源
- 6.1 资产清单的字段设计 :资产清单的字段设计(S+P+D)
- 6.2 引用关系与依赖声明 :引用关系与依赖声明(S+P)
- 6.3 清单与目录的双向一致 :清单与目录的双向一致(S+P+D)
第 7 章 美术资产预算(面数 / 骨骼 / 材质槽)——预算超了要能说清是哪一项
- 7.1 按角色分级的面数与骨骼预算 :按角色分级的面数与骨骼预算(S+P+D)
- 7.2 材质槽与 Draw Call 预算 :材质槽与 Draw Call 预算(S+P+D)
- 7.3 预算超支的归因与裁剪顺序 :预算超支的归因与裁剪顺序(S+P+D)
第 8 章 显存与纹理预算——一张贴图到底吃多少字节
- 8.1 纹理分辨率与 mip 链字节账 :纹理分辨率与 mip 链字节账(S+P+D)
- 8.2 压缩格式的显存差异 :压缩格式的显存差异(S+D)
- 8.3 整包资源预算表 :整包资源预算表(S+P+D)
第三部分:分项美术规范(第 9–12 章)
第 9 章 UI 视觉规范与九宫格——UI 是玩家摸得最多的一层
- 9.1 栅格、间距与安全区 :栅格、间距与安全区(S+P+D)
- 9.2 九宫格与可拉伸资源 :九宫格与可拉伸资源(S+P+W)
- 9.3 UI 状态与交互反馈规范 :UI 状态与交互反馈规范(S+P+D)
第 10 章 图标与图集规范——省的是批次,不只是面积
- 10.1 图标网格与描边规则 :图标网格与描边规则(S+P+D)
- 10.2 图集打包与装箱率 :图集打包与装箱率(S+P+D)
- 10.3 图集与批次的耦合 :图集与批次的耦合(S+P+D)
第 11 章 角色与场景规范——「看得清」是可以算的
- 11.1 剪影与可读性度量 :剪影与可读性度量(S+P)
- 11.2 细节密度与视觉噪声 :细节密度与视觉噪声(S+P)
- 11.3 场景构图与模块化 kit :场景构图与模块化 kit(S+P)
第 12 章 特效与动画规范——炫是有代价的
- 12.1 特效强度、时长与屏占比预算 :特效强度、时长与屏占比预算(S+P+D)
- 12.2 动画帧率与状态规范 :动画帧率与状态规范(S+P+D)
- 12.3 反馈层级的视觉表达 :反馈层级的视觉表达(S+P+D)
第四部分:外包、评审、协作与装配(第 13–16 章)
第 13 章 外包资产规格与验收清单——把口头需求变成可验收的表
- 13.1 美术需求书(Brief)的结构化写法 :美术需求书的结构化写法(S+P+D+X)
- 13.2 技术规格与交付物清单 :技术规格与交付物清单(S+P+D+X)
- 13.3 验收标准与返工归因 :验收标准与返工归因(S+P+D+X)
第 14 章 美术评审与走查流程——什么时候看、谁看、看什么
- 14.1 评审的时机与参与角色 :评审的时机与参与角色(S+P+D+X)
- 14.2 评审评分卡与通过/打回标准 :评审评分卡与通过/打回标准(S+P+D+X)
- 14.3 走查记录与决策留痕 :走查记录与决策留痕(S+P+D+X)
第 15 章 美术版本管理与协作工具——二进制资产也要能被管起来
- 15.1 资产版本治理:命名与分支 :资产版本治理(S+P+D+X)
- 15.2 大文件与二进制资产的协作 :大文件与二进制资产的协作(S+P+D+X)
- 15.3 资产 diff 与回滚 :资产 diff 与回滚(S+P+D+X)
第 16 章 装配:一份可校验的视觉规范——把前 15 章收成一本 Art Bible
- 16.1 Art Bible 成文方法与模板 :Art Bible 成文方法与模板(S+P+D)
- 16.2 双案例回放:《星屑旅店》6 主题的规范装配 :6 主题的规范装配(S+P)
- 16.3 交付物与卷二衔接 :交付物与卷二衔接(S+P+D)
附录
| 篇目 | 核心内容 |
|---|---|
| 附录 A:视觉规范公式、参数与数据集索引 | 本卷公式与参数索引、sp<章号>_ 命名约定、六层复现命令 |
三条阅读路径
路径 A:规范底座课(第 1–4 章顺序读)
从美术生产链路与角色分工开始,经技术美术的位置与 ART_SCOPE 分工表、形容词转可测参数、风格向量与风格距离、参考板的结构化,到主色/辅色/强调色与明度梯度、色彩 token 化、跨场景一致性、sRGB 与线性空间、OKLab/OKLCH、色盲安全与对比度下限。这条路径回答「美术规范的第一层该怎么立」。读完你能拿出一份带 token 的色板、一张可断言的风格向量表,和一段证明「改一个 token、三处结果同步变」的仿真。
路径 B:资产与预算课(第 5–12 章顺序读)
从命名规则与目录层级开始,经资产清单字段、引用关系与依赖声明、清单与目录的双向对账,到面数与骨骼预算、材质槽与 Draw Call、超支归因与裁剪顺序、纹理 mip 链字节账、压缩格式显存差、整包预算表,再到 UI 栅格与九宫格、图标网格与图集装箱率、剪影可读性与细节密度、特效与动画预算。这条路径回答「资产从命名到预算的每一道闸门怎么立」。读完你能拿出一套能跑出违例清单的校验器,和一份「哪一类超了、该砍谁」的归因表。
路径 C:协作与装配课(第 13–16 章顺序读)
从美术需求书的结构化写法开始,经技术规格与交付物清单、验收标准与返工归因、评审时机与评分卡、走查记录与决策留痕、资产版本治理与大文件协作、资产 diff 与回滚,到 Art Bible 成文模板、6 主题规范装配与交付物衔接。这条路径回答「规范怎么变成组织里跑得动的东西」。读完你能拿出一份可打分的评审表、一份可执行的交付物清单,和一本 6 个主题都跑得过的 Art Bible。
常见问题速查
| 你想解决的问题 | 看哪节 |
|---|---|
| 美术、TA、程序各自负责什么,边界在哪? | 1.1 、1.2 |
| 哪些内容这本书不管、该看站内哪一篇? | 1.3 |
| 「治愈」「硬核」怎么变成能验收的参数? | 2.1 |
| 两个风格「像不像」能量化吗? | 2.2 |
| 参考板收了一堆图,然后呢? | 2.3 |
| 主色、辅色、强调色怎么定,明度怎么排? | 3.1 |
| 色卡怎么变成代码里能引用的变量? | 3.2 |
| 不同场景之间颜色对不上怎么办? | 3.3 |
| 美术为什么必须在意 sRGB 和线性空间? | 4.1 |
| 为什么两个「看起来差不多」的颜色 ΔE 差很多? | 4.2 |
| 色盲玩家看不清我的 UI 怎么办? | 4.3 |
| 资产命名该怎么定规则? | 5.1 |
| 目录结构要不要跟引擎的引用方式对齐? | 5.2 |
| 哪些名字是雷区? | 5.3 |
| 资产清单里到底该写哪些字段? | 6.1 |
| 资产之间的引用关系怎么声明、怎么查? | 6.2 |
| 清单和磁盘目录对不上怎么办? | 6.3 |
| 角色面数和骨骼数该定多少? | 7.1 |
| 材质槽和 Draw Call 怎么卡? | 7.2 |
| 预算超了,先砍哪一项? | 7.3 |
| 一张 2048 的贴图到底吃多少显存? | 8.1 |
| 换压缩格式能省多少? | 8.2 |
| 整个包的预算怎么拆成一张表? | 8.3 |
| UI 栅格、间距、安全区怎么定? | 9.1 |
| 九宫格怎么切、拉伸为什么不变形? | 9.2 |
| 按钮的常态、悬停、按下、禁用怎么规范? | 9.3 |
| 图标该按什么网格画、描边多粗? | 10.1 |
| 图集怎么打包才省面积? | 10.2 |
| 图集切分和批次有什么关系? | 10.3 |
| 角色剪影「看不清」能量化吗? | 11.1 |
| 细节堆太多反而糊成一团怎么办? | 11.2 |
| 场景怎么用模块化 kit 搭得既快又不重复? | 11.3 |
| 特效的强度、时长、屏占比要不要设上限? | 12.1 |
| 动画帧率与状态该怎么规范? | 12.2 |
| 什么反馈该用什么视觉强度? | 12.3 |
| 外包需求书怎么写才不至于来回扯? | 13.1 |
| 技术规格和交付物清单怎么对上? | 13.2 |
| 验收标准怎么定、返工算谁的责任? | 13.3 |
| 什么时候评审、谁必须到场? | 14.1 |
| 通过还是打回,怎么打分才不吵? | 14.2 |
| 走查发现的问题怎么保证不被忘掉? | 14.3 |
| 资产版本号怎么编、分支怎么分? | 15.1 |
| 几个 G 的源文件怎么多人协作? | 15.2 |
| 改坏了怎么知道、怎么回滚? | 15.3 |
| Art Bible 到底该写哪些章? | 16.1 |
| 同一套规范怎么套到 6 个主题上还分得开? | 16.2 |
| 这一卷交付了什么、卷二接什么? | 16.3 |
卷一工具链命名约定
本卷所有 prism/ 文件一律用 sp<章号>_ 前缀(如 config/sp07_budget.json、sim/sp07_budget.py、core/src/sp07/、core/test/sp07_*.test.ts),因为《游戏美术与技术美术》的卷二是 ta、卷三是 st。这样 node --test 'core/test/sp07_*.test.ts' 只会命中本卷第 7 章的测试,不会交叉匹配另外两卷。
注意前缀不要写成裸 sp*:node --test 接收的是 glob 而非目录,故必须写全 sp<章号>_*.test.ts。另外 web/ 层的文件名前缀不在首位(build_sp09_nineslice.mjs / verify_sp09_nineslice.mjs),清点脚本要同时认这两套命名,否则 web 层会被统计成 0。
三卷共用同一份 config/visual_spec.json 作为唯一真源,故本卷的调色板模型与卷三 6 个主题包可以放进同一个工作区一起跑:改一个 token,仿真、内核、浏览器看板与 PIL 生成的 PNG 四处结果都变。
完整文件索引、逐层复现命令与排错顺序见附录 A 。
在进入正文之前,先用下面这段 S 层环境自检脚本确认运行时齐备——它同时适用于三卷,是整套书稿的第一条可运行命令。把它保存为 prism/sim/sp00_env_check.py 后运行 /opt/homebrew/bin/python3 sim/sp00_env_check.py,会打印解释器路径、numpy / pandas / Pillow 版本与 Node 版本,任一不满足即非 0 退出。
#!/usr/bin/env python3
# file: sim/sp00_env_check.py
# tier: S
# verify: /opt/homebrew/bin/python3 sim/sp00_env_check.py
"""环境自检:确认《游戏美术与技术美术》三卷需要的运行时都在,并打印 prism 的能力阶梯。
本机有两个 python3,不要混:
/opt/homebrew/bin/python3 = 3.14.6(带 numpy / pandas / PIL),S 层仿真与 PIL 生成一律用它;
/usr/bin/python3 = 3.9.6(系统自带,无 numpy/pandas),只能跑最朴素的脚本。
本机**没有** matplotlib / scipy / colour / cairosvg:图表一律纯 xml.etree 生成 SVG,
色卡与图集一律 PIL 生成 PNG,色盲模拟的矩阵常数手写在 sp04_colorblind.py 里。
"""
from __future__ import annotations
import os
import shutil
import subprocess
import sys
EXPECT_PY = "/opt/homebrew/bin/python3"
def main() -> int:
ok = True
# /opt/homebrew/bin/python3 是符号链接,比较时解析到真实二进制再判断
real = os.path.realpath(sys.executable)
print(f"python {sys.version.split()[0]} ({real})")
if real != os.path.realpath(EXPECT_PY):
print(f" 注意:正文脚本一律用 {EXPECT_PY},当前解释器不同")
try:
import numpy
import pandas
import PIL
print(f"numpy {numpy.__version__}")
print(f"pandas {pandas.__version__}")
print(f"Pillow {PIL.__version__}")
except ImportError as e: # noqa: BLE001
ok = False
print(f"FAIL 缺依赖:{e}(S 层与 PIL 生成需要 numpy / pandas / Pillow)")
for mod in ("matplotlib", "scipy", "colour"):
try:
__import__(mod)
print(f"{mod:<10} 已安装(本套不使用,图表与色度一律手写)")
except ImportError:
print(f"{mod:<10} 未安装(符合预期)")
node = shutil.which("node")
if not node:
ok = False
print("FAIL node 未安装(P 层需要 Node 26 或更高)")
else:
ver = subprocess.run([node, "-v"], capture_output=True, text=True).stdout.strip()
major = int(ver.lstrip("v").split(".")[0])
note = "" if major >= 26 else " (低于 26,原生 TypeScript 不可用)"
print(f"node {ver}{note}")
ok = ok and major >= 26
print("prism 能力阶梯:S 仿真 / P 内核 / W 网页 / D 静态 / X 不可复现 / B 基准")
print("OK 环境就绪" if ok else "FAIL 环境不满足")
return 0 if ok else 1
if __name__ == "__main__":
raise SystemExit(main())
实跑 /opt/homebrew/bin/python3 sim/sp00_env_check.py:
python 3.14.6 (/opt/homebrew/Cellar/python@3.14/3.14.6/Frameworks/Python.framework/Versions/3.14/bin/python3.14)
numpy 2.5.1
pandas 3.0.3
Pillow 12.3.0
matplotlib 未安装(符合预期)
scipy 未安装(符合预期)
colour 未安装(符合预期)
node v26.5.0
prism 能力阶梯:S 仿真 / P 内核 / W 网页 / D 静态 / X 不可复现 / B 基准
OK 环境就绪
这段脚本与卷二、卷三同源,是整套书稿的第一条可运行命令;本卷的 sp<章号>_ 脚本都建立在它验证过的同一套运行时之上。完整文件索引与逐层复现命令见附录 A
。
继续阅读
探索更多技术文章
浏览归档,发现更多关于系统设计、工具链和工程实践的内容。