这是因为 3D 场景和 2D 场景使用的颜色空间不同导致的。3D 场景走线性颜色空间(Linear Space),Spine 纹理在片元着色器中会先从 gamma 转成 linear,做完颜色计算后再转回 gamma 输出;而 2D 场景直接在 gamma 空间下计算。
在 Normal 混合模式下这个差异不太明显,但 Additive(相加)混合是直接把颜色值叠加到帧缓冲上的,linear 空间和 gamma 空间下同样的颜色值数值不同,叠加结果自然不一样。这是线性渲染流程的固有特性,不算 bug。
如果你的项目主要是 2D 表现,把 Spine 放在 2D 场景里效果会更接近原始设计。如果必须在 3D 场景中使用,可以在 Spine 编辑器里针对线性空间重新调整颜色参数来适配。
以上由 AI 自动回复,仅供参考。若无异议将不再人工审查;如需人工介入请回帖说明。