打印出数十种颜色:我们为PrusaSlicer推出的全新开源ColorMix
摘要
Prusa发布了名为ColorMix的开源色彩混合模型,适用于PrusaSlicer和EasyPrint,通过交替不同耗材的薄层,使多材料打印机能够打印出数十种色调。
暂无内容
查看缓存全文
缓存时间: 2026/05/29 22:21
# 打印数十种颜色:我们为 EasyPrint 和 PrusaSlicer 打造的全新开源 ColorMix - Original Prusa 3D 打印机 来源:https://blog.prusa3d.com/our-new-open-source-colormix-model-in-prusaslicer-and-easyprint_136079/
过去几个月,3D 打印社区一直在探讨一个非常有趣的问题:如果一台多材料打印机不再局限于物理加载的几种颜色,会发生什么?我们现在必须直说:这是一种扩展 3D 打印能力的绝佳方式!在本文和视频中,我们将向您展示**如何在任何多材料打印机上打印出数十种色调**,以及我们如何实现这一目标。这是一次深入的技术探讨,请坐稳——您将开启一段精彩旅程!
让我们谈谈社区——因为这一切都源于此。解决方案开始出现在切片器分支、测试色卡以及越来越令人信服的打印作品中。**Ratdoux 的 OrcaSlicer-FullSpectrum** 展示了一种通过**交替**不同颜色耗材的**薄层**来创建虚拟混合颜色耗材的方法。Justin H. Rahb 的 **filament-mixer** 帮助预测这些颜色可能是什么样子,而像 **PeggyPalette** 这样的社区项目使得比较和共享结果变得更加容易。那是一个你可以感受到某个想法正在实时点燃的时刻。这些项目都非常出色,真正展示了开源方法的好处。老实说,我们也很兴奋。在 Prusa 内部,这个想法迅速传播开来:让我们创造一种简单的方法,用几卷耗材让人们**打印出数十种美丽的颜色**。
负责 Prusament (https://prusament.com/)、PrusaSlicer (https://www.prusa3d.com/p/prusaslicer/)、EasyPrint (https://www.printables.com/slice) 和 OpenPrintTag (https://openprinttag.org/) 的团队始终朝着同一个方向努力,而这个项目对他们来说再合适不过了。我们针对实际测量的 FDM 打印件校准了一个更准确的混色新模型,通过 **OpenPrintTag 材料数据库** 将其与实际材料数据连接起来,将工作流程直接整合到 **PrusaSlicer** 和 **EasyPrint** 中,并开始准备专用的 **Prusament CMYKW** 套装,使整个过程从第一次打印开始就更加可靠。为什么是 CMYKW?我们稍后会解释。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/7945ae91-easyprint-colormix-scaled.jpg)
结果是一个更简单的工作流程,让彩色打印感觉更像绘画而不是编程,并且颜色预览比任何现有解决方案都更准确。我们的混色模型以 **MIT 许可证** 发布,因此社区可以像我们借鉴前人工作一样,对其进行审查、使用、测试、改进和构建。我们将该模型称为 **Prusa ColorMix**,以区别于类似的项目和产品。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/9ee1a42b-colored_prints.jpg)
## 它是如何工作的?
那么,仅用五种耗材就能打印出几乎像涂画一样的模型,这是怎么做到的呢?其原理在传统 2D 打印中广为人知。它使用**青色、品红色和黄色 (CMY)** 墨水,采用一种叫做**半色调**的方法,通过改变微小墨点的大小和间距,让打印机产生连续的色调。以相同比例打印 CMY 墨点会产生黑色。喷墨打印机额外添加黑色 (K) 墨水以节省墨水,并使用 **CMYK 色彩模型**。它们通常打印在白色纸张上,因此白色就是没有打印任何颜色的区域。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/61783e3c-halftoning_theory.jpg)
*在放大镜下观察,被感知为蔚蓝色的颜色实际上是青色、品红色、黄色和黑色墨水的混合。(Wikipedia)*
在 3D 打印中,没有纸张,因此现有模型使用 CMY 颜色和白色 (W)。由于 FDM 打印的特性,我们不使用点的组合,而是**按层交替颜色**。一个层高为 0.1 毫米的模型,如果所有奇数层为白色,所有偶数层为黑色,从正常观看距离看会呈现灰色。这个巧妙的小把戏之所以可能,是因为人眼分辨率有限,无法看到小于一定尺寸的细节。混合 CMY 颜色是可预测的,因为这已从 2D 打印中得知。
### 幕后故事
让我们听听参与 Prusa ColorMix 开发的人们的介绍。
**认识 Barbora Marsikova**,来自 Prusa Academy 团队,她在将多材料打印带给 3D 打印初学者的过程中爱上了全频谱。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/608b48cf-barbora-scaled.jpg)
### 我为何启动这个项目
我第一次听说全频谱 (Full Spectrum) 是来自 Prusa 开发部门的多材料专家。当他说这是未来时,我相信了他。我一直关注着社区试用现有分支的进展,并利用一切机会在内部推广它。但真正取得突破是在我们开始使用 Easy PLA CMYK 耗材套装和 Prusament Galaxy Black (https://www.prusa3d.com/product/prusament-pla-prusa-galaxy-black-1kg-nfc/) 在 Original Prusa XL (https://www.prusa3d.com/en/product/original-prusa-xl-5-toolhead-3d-printer/) 上打印测试样品之后。因为每个看到它的人都想要它。
大多数可用的多耗材系统并行使用四个料盘,因此以 CMYW 模式工作。但混色永远无法产生真正的黑色,更像是蓝灰色。在 5 喷头的 **Prusa XL** 上,我们能够直接添加黑色,并使用 **CMYKW 色彩组合**。通过尝试所有组合,我们确定了大约 40 种有意义的颜色组合。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/6753474a-chameleon-scaled.jpg)
我们还很容易达成一致,希望为 Prusa CORE One INDX (https://www.prusa3d.com/product/indx-conversion-kit-8-toolhead/) 拥有我们自己的全频谱。要获得一个 Prusa 解决方案,需要三个关键团队参与:Prusa Polymers、EasyPrint 和 PrusaSlicer。
### 人人都爱色彩
负责内部生产 Prusament 的 Prusa Polymers 团队不需要太多说服。在我们完成对市场上可用 CMYKW 耗材的测试之前,他们已经在致力于**新的 Prusament 颜色**。目前,他们正在调整 Prusa CMYKW 套装的最终色调和透明度,甚至还在准备 **PLA Natural Glitter**,它可以为任何现有的 PLA 增添闪光效果。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/f72d74c3-spools.jpg)
**PrusaSlicer 团队** 正在努力开发即将推出的 PrusaSlicer 3.0,同时也在完善 CORE One INDX 配置文件,以提供最佳性能。他们谨慎地借用了测试打印件,但很快意识到这有多有趣。因此,他们愉快地加入了这一运动,并渴望为 **版本 2.9.6** 准备一个构建版本。最大的飞跃是我们访问了 EasyPrint & Printables 团队时取得的。他们 literally 放下了(几乎)一切,立即开始讨论如何在 **EasyPrint 中实现 CMYKW 切片**,并尽快将其推向市场。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/b54e336d-easyprint_colors.jpg)
于是,EasyPrint 和 PrusaSlicer 团队都全力投入,新功能每隔一天就在测试环境中涌现。当第一批 Prusament CMYKW 测试耗材到达时,我们得以摆脱所有其他全频谱的软件实现,纯粹在 Prusa 生态系统中工作。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/ff672eaf-prusaslicer.jpg)
### 开发者日记
**认识 Ondrej Bartas**,Printables & EasyPrint 团队的软件工程师,也是 ColorMix 模型的主要开发者。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/1bc4458a-ondrej.jpg)
## 我们在尝试在 3D 打印机上混合颜色时学到了什么
以下是我为构建一个用于层交错 FDM 的混色模型所做的笔记。我们分享这些是因为我们希望**帮助社区**采用全频谱打印,而不是因为我们解决了混色问题。
### 我为何启动这个项目
我希望多色 FDM 打印**感觉像绘画**。你挤出颜料到调色板上,拿起画笔,混合。颜色就在你面前。这在今天的任何切片器中都不是这样。在 Orca 和 Bambu 中,如果你想要非基础色,你点击“添加混合颜色组合”,选择要混合的两个挤出机,设置一个比例,然后为每个颜色重复。社区中有预设的 3MF 文件可以跳过这一步,但它们只是变通方法。底层的体验仍然是“先配置机器,后看颜色”。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/943abb25-slicer_painting.gif)
因此,我们在 PrusaSlicer 和 Prusa EasyPrint 中构建了两项内容:一个**预测**当你交错层时实际会得到的颜色的**混色模型**,以及一个不碍事的**用户界面**。加载耗材,调色板出现,开始涂色。本文主要介绍色彩模型。
### 我们是如何走到这一步的
我们并没有发明通过层叠实现多色 FDM。Ratdoux 通过 OrcaSlicer-FullSpectrum 做到了。他们还附带了 Justin H. Rahb 的 filament-mixer,这是一个基于 Mixbox(油画颜料)训练的多项式颜料混合模型,用于预测最终颜色。Bambu Studio 经历了线性 sRGB,然后是伽马校正 RGB 的迭代,并在 2026 年 4 月直接附带了 filament-mixer。我们现在带着 PrusaSlicer 和 EasyPrint 的集成出现。我们得以查看已有的东西,打印自己的测试卡片,并注意到一些以前没人做过的事情:**根据实际测量的 FDM 打印件对模型进行实际校准**。Filament-mixer 预测的是油画颜料的行为。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/e52bc3fa-printed-samples-scaled.jpg)
它在它所训练的数据上表现良好;只是它没有针对耗材进行训练。所以这就是我们要填补的空白:我们进行了必要的测量,并对这些测量结果应用了校正。
### 什么不起作用
- **Kubelka-Munk。** 来自颜料科学的经典颜料混合模型。它假设颜料在一种介质中混合,但没有消费者级 FDM 打印机这样做。Bambu AMS、Prusa MMU、Prusa XL 和 INDX——它们都是按层切换耗材。K-M 解决的是另一个问题。
- **Beer-Lambert / HueForge 堆叠。** 这是我差点就发布的方法。HueForge 堆叠半透明层并从上往下看。光线穿过顶层,撞击到底层,然后返回。然后我发现了问题:HueForge 是从上方看平面打印件。我们是从侧面看 3D 物体。层是相邻的,而不是在光路中堆叠。不同的几何形态。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/3ac3df7d-easypyrint_filaments.jpg)
### 什么起作用了
这是半色调打印,而不是颜料混合。一旦我明白了这一点,物理原理就变得简单了。侧视多色 FDM 是空间光学混合——在观看距离下,相邻的薄层在人眼中混合。与打印 CMYK 墨点属于同一类。正确的起始公式是 **Yule-Nielsen**,这是标准的半色调方程。仅使用 Yule-Nielsen 就已经比简单的线性 RGB 平均好大约两倍。
比例(以百分比计)是 75:25, 50:50, 25:75, 和 33:33:33。并非任意选择。层交错混合不是连续的,而是离散的层。50:50 的混合物交替使用各一层。要获得 30:70,你需要一个 3:7 的重复块,每个颜色“像素”需要十层,这会消耗垂直分辨率并产生可见的条纹。因此**可打印的比例是 1:1, 1:3 和 3:1 的层**,而对于**三种颜色**,有一个**平衡比例,即 1:1:1**。这就是我们测量的内容,因为这是打印机实际能够生产的。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/9e35b5aa-colormixing-painting_and_gcode.jpg)
工具更换器和 MMU/AMS 都可以工作。工具更换器 (Prusa XL, CORE One+ INDX) 速度快,但需要在喷头之间**精确的 XY 偏移**。偏移不准确会导致打印物体的颜色不一致。MMU/AMS (Bambu X1C, Prusa MK4S+MMU) 只有一个喷头,因此无需担心偏移,但每次颜色切换都需要一次清洗过程。该模型不关心你使用哪种架构。它根据层比预测你将得到的颜色。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/d61a5fff-mmu.jpg)
### 校正堆栈
一旦我们有了测量得到的打印件,Yule-Nielsen 的残差显示出结构性误差。可预测的模式,而不是噪声。所以我们逐一进行了处理:
- **实际打印件比数学计算的颜色更深**,尤其是在混合非常浅和非常深的耗材时。输入之间的明度差距越大,实际打印件比预测的越暗。我们相应地降低了预测的明度。
- **明亮的混合物比深色混合物褪色更快。** 50:50 混合的淡粉色和淡蓝色比预期更灰。两种深色能更好地保持它们的颜色。我们根据预测明度按比例降低饱和度。
- **青色混合物会轻微偏暖。** 意外发现。在青色-蓝色范围(180-240 色调)的预测倾向于蓝绿色,而它们应该是青色。我们将它们旋转回来,在波段中间效果最强。
- **不要过度校正**主要是一种耗材的混合物。99/1 的混合物几乎不需要校正。因此,上述所有校正都通过一个钟形曲线权重进行缩放,该权重在均匀混合时达到峰值,在纯组分时降至零。纯颜色完全精确。渐变保持平滑。作为奖励,这也自动修复了三色混合——其他模型在三色时都会崩溃;我们的模型则优雅退化。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/7c31b677-indx_samples.jpg)
每批测试都重新打印自己的基准。这个方法论选择的重要性超出了预期。每批测试卡片包括单独打印的五种基础耗材,以及 20 多种混合物,所有这些都是使用同一色度计在同一次会话中测量的。原因:色度计会漂移,光照条件会变化,操作员会不同。如果设备今天在青色上出现某种偏移,那么同一批次中所有含青色的混合物也会出现偏移。当模型拟合的是基础色和混合色之间的关系,而不是绝对值时,系统误差就会抵消。所以你不需要一台价值 5,000 美元的分光光度计。只要基础色和混合色一起测量,消费级色度计就足够了。
[](https://storage.googleapis.com/prusa3d-content-prod-14e8-wordpress-blog-prod/2026/05/68477c4f-colorimeter.jpg)
我们还测试了将 HueForge 耗材库中的 TD(透射距离)值作为模型输入。没有帮助。因此我们保持了模型的简单:十六进制颜色和比例。
### 我们知道的 vs. 我们不知道的
我们测量的是 Prusa XL 上的 Prusament PLA。仅此而已。校正的结构应该在 PLA 品牌之间有效,因为整个行业的颜料化学成分相似。Yule-Nielsen 基础应该对任何“按层切换耗材”的架构有效。我们不知道的是:这些精确系数是否适用于 PETG、ABS 或非 Prusa PLA(可能不完全准确,但可能接近),以及特殊效果耗材(铜色、闪光、银河)的表现如何。它们与方向相关的反射率会破坏任何标量模型。它们位于我们误差最大的尾部。如果模型在你自己的耗材上预测错误,那是数据问题,而不是模型问题。我们**需要更多的测量数据**。
[](https:/
相似文章
预览工具帮助制作者可视化3D打印物件
MIT研究人员开发了VisiPrint,一款由AI驱动的预览工具,帮助3D打印用户可视化打印物件的美学效果(颜色、纹理、光泽),从而减少浪费并提升设计准确性。
M5Stack PaperColor
M5Stack PaperColor 是一款由 ESP32 驱动的 4 英寸彩色 E-ink 开发板,具备音频 I/O 能力。
BambuStudio自其分支以来一直违反PrusaSlicer的AGPL许可证
Josef Prusa指责BambuStudio违反了PrusaSlicer的AGPL许可证,并强调中国法律可能迫使中国公司遵守政府数据请求,引发3D打印领域的安全担忧。
始终学习,始终混合:高效简单的全时数据混合
本文介绍了OP-Mix,一种数据混合算法,它利用在当前模型上训练的低秩适配器来廉价模拟候选数据混合,从而在预训练、持续中间训练和持续指令微调中实现高效统一的数据混合。OP-Mix 始终能找出接近最优的混合方案,而计算量仅为基线方法的一小部分;在预训练中将平均困惑度提升了6.3%,在持续学习场景中减少了66-95%的计算量。
Nintendo 64 上的加法混合(Additive Blending)
文章介绍了在 Nintendo 64 上实现加法混合的技术挑战,由于该平台缺乏颜色钳制功能,作者提出了一种使用 Libdragon 的解决方案,通过管理 32 位缓冲区并进行颜色转换来实现更出色的视觉效果。