中英术语对照
本站的双语文档、源码与 issue 用同一套术语。撰写文档、报 issue 或读另一语言页面时,按本页取词。
标识符(类名、JSON 键、命令、模块名、路径、版本串)在两种语言里都保持原文,本页不列它们的译名。
核心术语
按子系统分组。左列是文档里实际出现的中文说法,右列是英文侧对应的写法。表里没列出的日常用语按普通技术英语写。
模型与动画
| 中文术语 |
English |
说明 |
| Pose / 姿态 |
pose |
代码类型名为 Pose;不要写 posture / stance |
| 静态姿态 |
static pose |
恒定采样的片段,通道所有权和重置规则与其它片段相同 |
| 姿态混合 |
pose blending |
多个层按确定顺序合成:基础层给基准,累加层叠加局部动作,覆盖层按骨骼掩码替换指定范围 |
| 姿态供应器 |
pose provider |
出现 Supplier<WorldCameraView> 时指 Java 接口,照写 Supplier |
| PoseDriver |
PoseDriver |
类名,不译 |
| 片段 |
clip |
「动画剪辑」是同一概念的另一种说法 |
| 命名片段库 |
named clip library |
|
| 采样器 |
sampler |
|
| 采样 |
sample / sampling |
|
| 求值 |
evaluate / evaluation |
不要用 compute:compute 是 formula 模块的算术引擎包名 |
| 时间轴 |
timeline |
|
| 共享时间轴 |
shared timeline |
由一个宿主统一驱动,模型和摄像机只跟随 |
| 时钟 |
clock |
独立播放器有自己的时钟:游戏 tick 推进时间,渲染帧只按 partial tick 采样 |
| 关键帧 |
keyframe |
|
| 分量轨道 |
component track |
每条轨道独立驱动 x / y / z / yaw / pitch / roll / zoom 中的一个分量 |
| 缓动 |
easing |
沿用模型的 Easing,作用于关键帧的下一段 |
| morph |
morph |
不译;不要写 deformation / blend shape |
| 材质帧 |
material frame |
|
| 骨骼掩码 |
bone mask |
只影响指定骨骼组 |
| 层 / 状态层 |
layer |
多个 layer 并行运行,每 tick 合成各层姿态写进模型 |
| 分层状态机 |
layered state machine |
FSM 是 Mecanim 风格的分层状态机 |
| 转移 |
transition |
|
| 守卫 |
guard |
全真才允许转移 |
| 触发器 |
trigger |
指向布尔变量名 / id,置位时触发 |
| 状态变量 |
state variable |
|
| 淡入淡出 |
cross-fade |
「交叉淡入淡出」同译 cross-fade;0 表示立即切换 |
| 变体 |
variant |
不要写 version / edition:那两个词在这里指资源版本 |
| 变体选择器 |
variant selector |
|
| 上下文 |
context |
Multiplexer 的上下文快照;与渲染框架里的「宿主帧上下文」不是同一个概念 |
| 重定向 |
retargeting |
不同骨架之间的拓扑重定向由接入方负责;代码入口 AnimationPlayback.retarget |
| 公式轨道 |
formula track |
每帧求值 |
骨骼、物理与布娃娃
| 中文术语 |
English |
说明 |
| 骨架 / Skeleton |
skeleton |
结构统一译 skeleton;不要写 framework |
| 骨骼 / Bone |
bone |
|
| 绑定姿态 |
bind pose |
代码字段 bindPoseFollowers |
| 蒙皮 |
skinning |
名词与动名词同形;不要写 skin:Skin / SkinInstance 在 glTF/PMX 语境指格式里的皮肤数据 |
| 蒙皮权重 |
skin weight |
|
| 刚体 |
rigid body |
非 PMX 内容的默认实现是 GenericRigidBody |
| 关节 |
joint |
|
| 约束 |
constraint |
|
| 限位 |
limit |
只用 limit / limits;不写 limiter、position limit |
| 反向映射 |
reverse mapping |
ikChainsByBone() 给出驱动骨到控制它的全部链的映射 |
| 逆向运动学 / IK |
inverse kinematics (IK) |
缩写 IK 不译 |
| 菱形闭环 |
diamond closure |
两个 base 在绑定位置共享 pivot,两个末端表示同一个闭合点。不要写 diamond constraint / diamond loop |
| 闭环残差 |
closure residual |
同时计入末端间距和 base 间距;停止迭代不等于收敛,诊断要保留 residual 与 satisfied |
| 驱动骨 |
driver bone |
|
| 末端骨 / effector |
effector bone |
字段名 effector 保留;只描述闭合点时用 endpoint |
| 链 / IK 链 |
chain / IK chain |
从 base 到 tip,最终 link 指向 effector |
| 写回 |
writeback |
不要写 feedback / write into |
| 固定步长 |
fixed step |
KinematicDriver.beginStep(world) 在每个 fixed step 前执行 |
| 物理写回 |
physics writeback |
写回后只重建层级,不能再求解 IK |
| 布娃娃 |
ragdoll |
|
| 主动布娃娃 |
active ragdoll |
同帧动画/IK 目标转为受限 PD 弹簧力和力矩,接触与关节仍由 Box3D 处理 |
| 次级运动 |
secondary motion |
不要写 secondary physics;include_secondary_bodies 之类的键名照抄不译 |
| 主体 profile |
body profile |
profile 保留原文;按实际骨骼段生成胶囊、语义质量与关节 |
| 浮动原点 |
floating origin |
模型根节点的世界平移移出 float 骨骼矩阵,作为独立的 double worldOrigin 保存 |
| 大坐标 |
large coordinates |
|
| 世界锚点 |
world anchor |
double 世界锚点与局部 float 物理坐标分开,环境碰撞、射线和拖拽先转到同一模拟坐标系 |
| 求解器 |
solver |
CalikoIkSolver 提供 solve() 与 results() |
| 休眠 |
sleeping |
整组刚体休眠;调试碰撞或持续空中模拟时建议关闭 |
| 冲量 |
impulse |
立即改变速度;不要写 momentum;代码入口 applyImpulse |
| 力 / 力矩 |
force / torque |
由下一个原生 Box3D step 积分;不要写 strength |
| 拖拽 |
drag |
在原生 Box3D 中创建 kinematic anchor 与 spherical joint;不要写成 teleport body |
| 环境网格 |
environment mesh |
StaticEnvironmentMesh 通过 putCell / removeCell 增量同步 MC 地形,Java 侧不做碰撞求解 |
| 接触 |
contact |
separation 为负值表示穿透 |
| 接管 |
take over |
IK 接管链骨作者局部姿态;物理启用时由物理接管姿态求值 |
| 准星拾取 |
crosshair picking |
鼠标键(0 为左键)与最大拾取距离 |
| 素体 |
base body |
未穿衣服的基础人体模型;不要写 bare model |
渲染与输出
| 中文术语 |
English |
说明 |
| 管线 |
pipeline |
不要写 conduit / duct |
| 模型管线 |
model pipeline |
ModelPipeLine |
| 调度 |
scheduling |
ModelRenderScheduler 为每个挂载实例维护一条策略,默认 ALWAYS |
| 可见性 |
visibility |
持续绘制、宿主显式控制和原版 renderer 标记是三种策略 |
| 剔除 |
culling |
不要写 cropping / clipping |
| 视锥 |
frustum |
固定说法 view frustum |
| 视距 |
render distance |
setMaxRenderDistance(instance, blocks),按相机距离平方裁剪,0 表示不限 |
| 帧标记 |
frame mark |
宿主 renderer 在可见帧内调 markRenderedThisFrame,第一模型 pass 调一次 flipFrame |
| 门控 / 闸门 |
gate(动词 gating) |
两个中文说法同义,统一到 gate;距离与视锥是模式之外的额外门控 |
| 挂载 |
mount |
注册表按调用方的 key 匹配挂载;不要写 installation |
| 装备挂接 |
attachment |
McModelHandle.attachToAnchor / detachFromAnchor |
| 机位 |
camera view |
同一客户端进程里的一个渲染单元;不要写 camera / rig / station |
| 多机位 |
multi-camera |
不要写 multi-view(见「容易译错的词」) |
| 视角 |
view |
view ID 标识已经渲染完成的视角;不要与「机位」混用 |
| 主视角 |
main view |
不写 main camera |
| 主画面 |
main frame |
MIRROR 同时交付 FBO 和显示窗口 |
| 离屏 |
offscreen |
|
| 借用 |
borrow |
输出是渲染线程上的同步只读借用,消费者不能改尺寸或删纹理 |
| 只读借用 |
read-only borrow |
|
| 合成 |
compositing |
|
| 效果 |
effect |
同类效果共享渲染器和管线状态 |
| 后处理 |
post-processing |
|
| 作用域 |
scope |
面向动态内容的注册器,会关闭自己拥有的资源;父作用域拥有子作用域 |
| 描述 |
descriptor |
定义某项资源配置的不可变值 |
| 分代 |
generation |
shader 句柄跨资源重载保持稳定,内部编译实例按代替换 |
| 上传 |
upload |
GPU 上传接收完整快照,脏范围描述变更元素 |
| 在途读取 |
in-flight read |
GPU 在途读取期间不能覆盖 storage |
| 上传环 |
upload ring |
UploadRing 负责槽位轮换、脏元素合并、版本追踪和资源生命周期 |
| 图集 |
atlas |
基础色、法线和 specular 分别拼接到对应 atlas |
| 材质变体 |
material variant |
相同源纹理、不同参数时生成独立变体和独立法线 / specular sprite |
| 直通 alpha |
straight alpha |
|
| 半透明回放 |
translucent replay |
每次 draw 和透明回放都记录消费,本帧数据没变也不能漏掉完成标记 |
| 光线步进 |
ray marching |
云场通过一次覆盖天空的光线步进和一次合成绘制,不逐朵创建全屏 pass |
| 自遮光 |
self-shadowing |
云场沿太阳方向采样附近密度以近似自身遮光 |
| 合批 |
batching |
静态方块几何适合 section mesh 合批 |
| 宿主 |
host |
宿主负责帧与视角入口,后端负责资源与绘制 |
| 后端 |
backend |
|
| 几何适配器 |
geometry adapter |
负责模型表示转换;资源工厂负责创建某个实例的资源 |
| 帧输出 |
frame output |
最终画面的 WYSIWYG 输出入口 |
| 渲染线程 |
render thread |
在渲染线程注册,保存返回的 registration |
数据驱动
| 中文术语 |
English |
说明 |
| 数据驱动 |
data-driven |
|
| 注册期 |
registration phase |
mod 启动、构造期间把对象写入 MC 注册表(如 BuiltInRegistries.BLOCK);表头简称 registration |
| reload 期 |
reload phase |
/reload 触发的资源重读,来源是包栈,数据包可覆盖 |
| 两个时机 |
the two phases |
指注册期与 reload 期;不要直译成 two timings |
| 域 |
domain |
索引清单里的两个数组 on_register(注册域)与 on_reload(重载域);代码 Diagnostics.Domain |
| 注册域 / 重载域 |
registration domain / reload domain |
|
| 桶 |
bucket |
存放诊断的列表,分 mod 维与类型维;不要写 basket / pail |
| 索引清单 |
index manifest |
只列路径,不含对象定义;简称「索引文件」同译 index manifest,不要写 list / inventory |
| 内容文件 |
content file |
方块、物品、分组等定义的唯一事实来源 |
| 顶层类型 |
top-level type |
内容文件的顶层字段名即顶层注册类型,值必须是对象数组 |
| 内嵌类型 |
embedded type |
如 block_entities,它不是顶层字段 |
| 工厂 |
factory |
type 找不到工厂时打一条 WARN 然后跳过,不进错误桶 |
| 工厂注册键 |
factory registration key |
JSON 里的 type 字段 |
| 属性解析器 |
property parser |
方块属性那一层是 JsonPropertyParser.registerCompiler,API 名为 compiler |
| 注册组 |
registry group |
建立属性分组(父 / 子) |
| 内嵌方块实体 |
embedded block entity |
|
| 后写覆盖 / last-wins |
last-wins |
同一有效标识取后写者,资源包覆盖也按包栈顺序处理;代码注释直接写 last-wins |
| 去重 |
deduplication |
DuplicateIdResolver 是纯函数 last-wins 去重 |
| 编排器 |
orchestrator |
另见「编排者」,同义;代码 ReloadOrchestrator |
| 分派 |
dispatch |
代码 dispatchContent |
| 阶段 |
phase |
与「注册期 / reload 期」并列存在,指 handler 的执行阶段(PHASE_GROUPS) |
| 热更 |
hot reload |
/reload 后新内容立即生效;有些内容一次完成、不可热更 |
| 包栈 |
pack stack |
读数据包而非 jar,所以数据包可以覆盖这些文件 |
| 目录 glob |
directory glob |
glob 保留原文;由 FsmReloadHandler.globDirectories() 声明 |
| 内容树 |
content tree |
解析层只构建原始内容树 |
| 诊断门面 |
diagnostics facade |
diagnostics/Diagnostics.java 是统一诊断出口 |
| 动画剪辑 |
animation clip |
一段按时间轴采样的骨骼 / morph / 材质帧轨道;JSON 键 animation_clips |
| 解码器 |
decoder |
文件层组件(StateMachineDefinitionLoader / AnimationClipLoader);parse、decode、solve 是三个独立机制 |
生命周期、工程与验证
| 中文术语 |
English |
说明 |
| 生命周期 |
lifecycle |
|
| 幂等 |
idempotent |
作形容词时不要写 idempotency |
| 先准备,再发布 |
prepare-then-publish |
新挂载必须准备成功才能发布;替换失败时关闭未发布的新上下文并保留旧挂载 |
| 失效 |
invalidate |
失效 / 淘汰不修改已返回结果;代码 invalidate(Model) |
| 资源重载 |
resource reload |
缓存淘汰不销毁仍在渲染的模型;资源重载需要宿主先结束旧实例再释放其借用资源 |
| 源集 |
source set |
Gradle source set,如 contentTesting |
| 测试夹具 |
test fixture |
不随库发布;不要写 clamp / jig |
| 烟雾测试 |
smoke test |
|
| 验证入口 |
verification entry |
Gradle 任务、独立 GL、客户端验收与证据边界 |
| 客户端验收 |
client acceptance |
|
| 成功标识 |
success marker |
如 ANCHOR_EQUIPMENT_SMOKE_PASS,报告写在 debug/anchor-equipment.json |
| 无窗口 |
headless |
runClientHeadless 仍是完整客户端:桌面平台默认 hidden,Linux 默认 EGL |
| 证据边界 |
evidence boundary |
验证记录应分别说明编译 / JVM、原生物理、独立 GL、真实客户端和平台 / renderer 组合 |
| 穿搭 |
outfit |
代码变量名就是 ModelAssembly outfit;不要用 wardrobe,那是一个示例页面 |
| 换装 |
swap |
代码 McModelHandle.switchAssembly;不要用 switch,与 Java 关键字视觉冲突 |
| 组装 |
assembly |
代码 ModelAssembly / ModelAssemblyBuilder |
| 组件 / 部件 |
part |
|
| 隐藏区域 |
hidden region |
构造 Part 时展开成面索引 |
| 引用重映射 |
reference remapping |
代码 ModelAssembly.Remap |
| 缓存键 |
cache key |
覆盖组件顺序、来源 Model 的对象身份及 revision、骨骼映射、最终隐藏面集合、动力学开关 |
| 锚点 |
anchor |
类名 Anchor 不译 |
| 显示子物体 |
display child |
绑定在蒙皮骨骼上的显示锚点,例如玩家手里拿的剑 |
| 显示上下文 |
display context |
MC 原生概念 ItemDisplayContext |
| 惯用手 |
dominant hand |
bindHands 按实体惯用手选择物理手锚点 |
| 命名空间 |
namespace |
与 formula 模块的「命名空间变量」(Namespace)不是同一个概念 |
| 资源位置 |
resource location |
代码名 ResourceLocation 保留 |
| 创建栏 |
creative tab |
MC 原生概念;原文亦作「创意标签页」,统一 creative tab |
| 光照 |
lighting |
MC 的光照系统(light engine);与「光影」严格区分 |
| 光影 |
shader pack |
指 Iris shader pack(ShaderPack / PipelineManager),不是 lighting |
不译名单
下列内容在两种语言里都保持原文,例子取自站内实际出现的写法。
| 类别 |
例子 |
| 类名 / API 名 |
ModelInstance、ModelTickLoop、SkeletonDynamicsBuilder、CalikoIkSolver、ModelAssemblyCache、RenderPipelineScope、JsonTreeBuilder、ReloadOrchestrator、Diagnostics、McModelHandle |
| JSON 键 / 字段名 |
on_register、on_reload、state_vars、bone_mask、cross_fade_seconds、alphaCutoff、include_secondary_bodies、model_scale、registry_groups、state_machines、animation_clips、ik_enabled |
| 命令 |
/reload、/kasuga_data errors、/kasuga_ragdoll deploy、/kasuga_physics block [1-32]、/ksglib debug oit、/kasuga_pbr status |
| 模块 / 目录名 |
modules/modelling、modules/render-core、modules/render-opengl、modules/data-driven、modules/formula、external/slp/javet、contentTesting |
| 版本串 |
Minecraft 1.21.1、NeoForge 21.1.203、Parchment 2024.11.17、Java 21、GLSL 150、Iris 1.8.12、Box3D 提交 30c67b5e6d0a3a66f0f506c69ce9e9e0587e3b7c |
| 专有缩写 |
FSM、IK、PBR、OIT、WBOIT、MRT、AO、FBO、VBO、TBO、UBO、SSBO、VAO、CCD、AABB、UV、SSS、LabPBR、LRU、LOD、MMD、PMX、PMD、VMD、VPD、glTF、BE(block entity)、D1–D6 |
| 技术 / 库名 |
OpenGL、LWJGL、JOML、Blaze3D、Micronaut、DataFixerUpper、Box3D、Caliko、Iris、Sodium、Blockbench、NeoForge、Fabric、Gradle、JUnit |
| 模型格式名 |
.bbmodel、.geo.json、.obj、.glb、.gltf、.mmd.zip、.pmx、.pmd、.vmd、.vpd |
| 资源路径 / 文件路径 |
data/<namespace>/kasuga_lib/data_driven/、assets/<namespace>/models/model_proxy.json、modules/modelling/run/client/、build/reports/modelAssemblyProbe/report.json |
| Gradle 任务与属性 |
:modules:modelling:modelUnitTest、:modules:modelling:renderGlTest、renderingReleaseCheck、-PkasugaTestModel=mmd、-PkasugaClientDirectory、-Dkasuga.renderTestModels=false |
| 日志串 / 成功标识 |
Loaded N JSON entries across M types for mod '<mod id>'、ANCHOR_EQUIPMENT_SMOKE_PASS、CAMERA_ANIMATION_SMOKE_PASS、REAL_OVERLAY_SKINNING_PASS、FRAME_WINDOWS_SMOKE_PASS、HEADLESS_CLIENT_SMOKE_PASS、OITVisualTestScene |
| 渲染状态 / 阶段枚举 |
AFTER_ENTITIES、AFTER_TRANSLUCENT_BLOCKS、OPAQUE、MASK、BLEND、MIRROR、OFFSCREEN_ONLY、PHASE_GROUPS / PHASE_CONTENT / PHASE_EMBEDDED、READY / PAUSED / FAILED / CLOSED、ALWAYS / MANUAL / HOST_RENDERER / VANILLA_RENDERER |
| 平台 / 驱动术语 |
F3 + T、EGL、pbuffer、surfaceless、DPI、read/draw FBO、viewport、fence、storage、orphan、glReadPixels、glFinish、glBlitFramebuffer |
容易译错的词
这几组词在渲染、动画或本仓库的代码里已经另有含义,选错会与既有概念撞车。左列是应采用的写法。
| 中文术语 |
✅ 应写(英文) |
❌ 不要写成 |
说明 |
| 多机位 |
multi-camera |
multi-view、multi-viewport |
multi-view 在渲染领域另有含义(多视口渲染),与本项目「同一客户端里多个机位顺序渲染、各自拥有世界缓存与输出」不是一回事 |
| 机位 |
camera view |
camera、rig、station |
指视点而非物理支架;camera 会与 CameraType(Player / Free / Fixed)和 MC 原生 Camera 混淆 |
| 视角 |
view |
camera(也不要用「视角」去指机位) |
「视角」指输出侧路由的 view(view ID、主视角 = main view),机位才是 camera view |
| 菱形闭环 |
diamond closure |
diamond constraint、diamond loop |
constraint 会与本仓库通用的「约束」(关节约束、姿态约束)混淆 |
| 闭环(通用) |
closure / closed loop |
closed chain |
「链」已被 IK 链占用(IkChain、links);闭环不是一条闭合的链,而是对两个末端施加的位置闭合约束 |
| 姿态 |
pose |
posture、stance、gesture |
posture / stance 是人体的姿势,与动画的 pose 不是一个概念;代码类型名就是 Pose、PoseDriver、ModelPosing |
| 管线 |
pipeline |
conduit、duct、line |
conduit / duct 指物理管道 |
| 挂载 |
mount |
installation、loading、equip |
安装是 install(装模组、装 JDK);挂载是运行时注册表条目(mount() / add / remove)。装备挂接是 attachment,另一回事 |
| 剔除 |
culling |
cropping、clipping、cutting |
clipping 专指裁剪空间与裁平面,与视锥剔除不是一回事 |
| 视锥 |
frustum |
visual cone、view cone |
固定说法 view frustum |
| 半透明 / 透明 |
opaque / mask / blend,阶段用 translucent |
transparent(一律) |
材质分三类 OPAQUE / MASK / BLEND,另有 MC 原生的 translucent 渲染阶段(AFTER_TRANSLUCENT_BLOCKS);「半透明回放」译 translucent replay。一律写 transparent 会抹掉这三类的区别 |
| 光照 |
lighting |
light、shadow |
MC 的光照系统(light engine) |
| 光影 |
shader pack |
lighting、light and shadow |
指 Iris shader pack(每机位有各自的 ShaderPack、PipelineManager、材质设置) |
| 冲量 |
impulse |
momentum |
动量是 momentum;代码入口 applyImpulse |
| 力 / 力矩 |
force / torque |
strength |
代码入口 applyForce / applyTorque |
| 写回 |
writeback |
feedback、write into |
feedback 在本仓库只用于 framebuffer feedback |
| 求值 |
evaluate / evaluation |
compute、calculation |
compute 是 formula 模块的算术引擎名 |
| 解析 / 解码 / 求解 |
parse / decode / solve |
三者混用 |
parse 解析字段与 JSON,decode 解码成对象(Decoded / decodeFile),solve 求解 IK 与物理。三个独立机制,代码各有对应名 |
| 桶 |
bucket |
basket、pail、container |
代码 clearBucket() |
| 域 |
domain |
area、region、field |
代码 Diagnostics.Domain;region 已被骨骼区域占用(PartBuilder.region) |
| 清单 |
manifest |
list、inventory |
代码 resolveIndexManifests、IndexManifest |
| 夹具 |
fixture |
clamp、jig |
clamp 在数学与图形里是夹取运算,借给测试夹具会产生歧义 |
| 变体 |
variant |
version、edition |
version / revision 专指资源版本(long revision),是缓存键的一部分 |
| 骨架 |
skeleton |
framework |
framework 在本仓库指渲染框架(uml.framework、UML 渲染 framework) |