详解CHITUBOX抗锯齿、灰度级别及图像模糊组合功能

 


 

在新版的CHITUBOX Free 1.6.5版本中,上线了灰度级别及图像模糊功能,有一部分具有探索精神的用户,已经开始实测这部分功能,并且分享在Facebook和qq群(群号:243570062)中。

 

但是大部分的用户对于这两个功能,还是一头雾水,我们将把这部分内容分为下面几个板块来讲解。

 

 

DLP/ MSLA(LCD) 3D打印机最小成像精度/像素尺寸

 

DLP使用数字投影仪在整个平台上一次性地投影每一层的单个图像。由于每一层的图像都是数字显示,因此它是由许多正方体素组成的。

 

 

MSLA(LCD)和DLP几乎一样,但是MSLA(LCD)是LED光源而不是投影仪光源。屏幕充当掩膜,只显示当前层所需的像素。

 

 

因为DLP/ MSLA(LCD)系统XY轴分辨率是固定的,这里就有一个公式可以用来计算:

 

宽度/X轴=长度/Y轴=像素精度

 

以ELEGOO SATURN为例,它在X轴方向的成型宽度就是192mm。把192mm(X轴)分成3840分辨率(宽)的像素)份,就是0.05mm(50µm)。Y轴也是同样的,把120 mm分成2400分辨率(长)的像素。也就是说这台机器在XY方向的最小成像精度是50微米。

 

 

因为成型平台的移动方式,Z轴分辨率与XY轴完全不同,需要分开来看。Z轴分辨率(垂直分辨率)是在层面打印时的最小层厚,直接影响模型的表明光洁度。一般来说,层厚越小,表明光洁度越高。

 

层厚0.05mm(左)、层厚0.1mm(中)、层厚0.2mm(右)

 

可以在CHITUBOX中,切片设置——打印——层厚参数中,设置层厚,但是最小层厚受机器硬件限制,一般在规格里有说明机器的最小Z轴成像精度。市面上,常见的DLP/ MSLA(LCD)最小层厚为0.05mm(50µm)。ELEGOO SATURN的规格表中的最小Z轴成像精度为0.00125 mm(1.25µm)。

 

那么如果按上述的最小成像精度来计算,ELEGOO SATURN可以生成的最小正方体素就是50µm*50µm*1.25µm(X*Y*Z)。

 

DLP/ MSLA(LCD) 3D打印机的成像

 

了解了光固化3D打印机可以生成的最小正方体素,那么现在就来说明DLP/ MSLA(LCD) 3D打印机是如何成像的。首先,我们需要知道的是,LCD屏幕在XY方向上,被分成了50µm*50µm的一个个小方块体素。

 

 

光源在LCD屏幕上生成图像,这个一个个正方体素如果是白色的,那么这个位置的光源就会固化液体树脂,形成一个固体正方体素。如果这个正方体素是黑色的,那么这个位置就没有光源透过,树脂不进行固化反应。

 

 

现在,我们有4个50µm*50µm*50µm的正方体素组成一个模型,在它旁边间隔一定位置,有一个相同的由4个50µm*50µm*50µm的正方体素组成的模型。

 

 

他们相隔的距离可以是50µm,100µm,或者200µm,甚至更多。但是它们相隔的距离必须是50µm的倍数,比如我们就无法使他们间隔175µm,这是为什么呢?因为如果我们的成像是由纯白或者纯黑的像素组成的,在LCD屏幕被划分好的固定最小方格里,要不就曝光,要不就不曝光,没有办法一半曝光一半不曝光。

 

 

那么如果是介于白和黑之前的灰呢,是否可以实现一半曝光一半不曝光?那么曝光的一半是那一半呢?左半边,右半边,前半边,后半边,上半边,还是下半边呢?

 

Ember团队分享过一个研究:一个体素是怎样生成的。他们把像素排成了一排,从深灰(接近纯黑)到纯白,然后用这个光源强度固化树脂。

 

 

研究表明,像素灰度低于一定值,也不会发生固化反应,但是从深灰上到到某个临界亮度,就开始有半圆形的气泡开始在上一层生成,随着亮度增加,气泡越来越大,随后高度开始增加的很缓慢,横向发展迅速。这说明,体素的大小是可以通过每个像素的亮度控制的。

 

 

在实际中,一个灰色像素或半体素会向邻近的体素合并。因此,如果从左到右是2个白色体素+1个灰色像素(半体素)+1个黑色体素,就会靠着左边2个体素,生成个半体素。通过控制像素的亮度,同样可以生成1/4或者1/8甚至各种尺寸的体素。

 

 

那么这个研究是否真的能运用在实际的打印中?我们再看下面这个实验。在两条分割线之间,从左到右等距地摆放5个由10*10个最小正方体素组成的方块,即500µm*500µm(0.5mm*0.5mm)。从左到右,每个方块的最上方一排像素,光源从纯白到纯黑递减,最下面加一排像素,光源从纯黑到纯白递增。

 

 

从下图的打印结果可以看到,每个方块的最上方一排像素从左到右,因光源变暗,分别缺失的距离约为0µm,12.5µm,25µm,37.5µm,50µm。说明,完全可以通过控制光源强度,打破最小成像精度的限制,实现更精准的尺寸控制。

 

 

如何用灰度值补偿像素纹

 

 

假设现在要打印一个如上图所示灰色区域的倒字母T(最小正方体素是50µm*50µm*25µm(X*Y*Z)),因为横竖都是由可以均分的最小正方体素组成,那么理论上打印出来将不存在阶状纹。

 

 

但是如果在倒字母T的右侧,加上了一列黄色区域显示的3.6°斜坡,那么在黑白曝光的影响下,就会出现如图所示,明显的阶状纹。

 

 

黑白光源

 

灰度光源

 

通过控制斜坡的灰度值,使得每一层比上一层窄1.5µm,就可以递减出一个较为平整斜面。

 

 

如果将角度改为75°,这个对比将更加明显。因为每隔7-8层25µm的层面,在X方向就会有一个50µm的台阶。但如果用灰度值补偿,这个斜坡就会相对平滑。

 

 

灰度级别及图像模糊功能实测

 

首先,我们来看些球体侧面在显微镜下的实际表现,即CHITUBOX预览效果中如下图的位置。

 

 

如上图所示,从表面水波纹的严重状况来看,无抗锯齿 > 抗锯齿+灰度等级8 > 抗锯齿+灰度等级4 > 抗锯齿+灰度等级0(>表示严重性)。即抗锯齿+灰度等级0表面质量最好。

 

接着,开启图像模糊后,从表面水波纹的严重状况来看,抗锯齿+灰度等级4 > 抗锯齿+灰度等级4+图像模糊2+曝光时间2s。即抗锯齿+灰度等级4+图像模糊2表面质量更好。 同时在开启图像模糊后表面出现一些水平方向的横纹,为确定是否是曝光时间对其产生的影响,我们把2s的曝光时间提升为3s后,水平方向的横纹消失。但从表面水波纹的严重状况来看,开启图像模糊后,曝光时间2s和3s区别不大。

 

下面,我们在对比下带有斜坡的T形模型侧边在显微镜下的实际表现,即CHITUBOX预览效果中如下图的位置。

 

从锯齿的严重状况来看,无抗锯齿 > 抗锯齿+灰度等级8 > 抗锯齿+灰度等级0 > 抗锯齿+灰度等级4(>表示严重性)。即抗锯齿+灰度等级4表面质量最好。

 

接着,开启图像模糊后,曝光时间2s的斜坡的T形同样出现不明横纹,曝光时间提升为3s后,横纹消失。从锯齿的严重状况来看,抗锯齿+灰度等级4+图像模糊2+曝光时间3s > 抗锯齿+灰度等级4+图像模糊2+曝光时间2s > 抗锯齿+灰度等级4。即抗锯齿+灰度等级4表面质量最好。

 

最后,我们在对比下三角锥模型侧边在显微镜下的实际表现,即CHITUBOX预览效果中如下图的位置。

 

从锯齿的严重状况来看,无抗锯齿 > 抗锯齿+灰度等级8 >抗锯齿+灰度等级4 >抗锯齿+灰度等级0。(>表示严重性)即抗锯齿+灰度等级0表面质量最好。

 

接着,开启图像模糊后,曝光时间2s的三角锥同样出现不明横纹,曝光时间提升为3s后,横纹消失。从锯齿的严重状况来看,抗锯齿+灰度等级4 > 抗锯齿+灰度等级4+图像模糊2+曝光时间2s > 抗锯齿+灰度等级4+图像模糊2+曝光时间3s。即抗锯齿+灰度等级4+图像模糊2+曝光时间3s表面质量最好。

 

本次测试结果适用于测试所用褐红色刚性树脂,此外,后处理同样可能影响到真实的表面情况。在实际应用中,需要根据机器特别是光源的实际情况,以及树脂材料的特性来进行设置,组合搭配使用抗锯齿、灰度级别以及图像模糊,不同的实际情况,最佳参数也会不同。

 

抗锯齿、灰度级别及图像模糊理论分析

 

在对比实物测试后,我们进一步来对切片文件进行分析。为了方便说明,我们以一个0.3*0.3*0.3mm的圆柱为例,从直径计算,这个圆柱被分为6份50µm(0.05mm)。设置层厚为0.025mm,那么层面总数即为12层。

虽然12层图像都应该是相同的圆形,但由于DLP/ MSLA(LCD)只能生成方块的体素原理限制,因此,在实际打印中,每一层的图像其实是略有变化的,为了控制变量,我们统一取第6层的图像就行对比。

 

无抗锯齿

 

2级抗锯齿

 

4级抗锯齿

 

8级抗锯齿

 

首先对比无抗锯齿、2级抗锯齿、4级抗锯齿、以及8级抗锯齿在切片预览下的区别(开启抗锯齿会同步开启灰度级别,这里灰度级别统一设置为0)。从像素分布来看,无抗锯齿在Y轴最长有6个像素点,而其他抗锯齿皆为8个像素点。从像素密度来看,无抗锯齿仅有28个像素点,而其他抗锯齿皆为36个像素点。从灰度值看(不计算黑白),无抗锯齿无灰度值,2级抗锯齿有1个灰度值(127),4级抗锯齿有2个灰度值(127、191),而8级抗锯齿也是2个灰度值(127、223)。

 

 

这里补充一个知识点:

 

灰度级别就是灰度值,是亮度的概念,0~为黑色,255~白色,依据颜色深浅范围为0~255。(一定介于0-255之间)。CHITUBOX将这个颜色深浅范围分为从0-8九个等级,0位黑色,8为白色,1-7为中间的灰色。

 

抗锯齿+灰度等级0

 

抗锯齿+灰度等级4

 

抗锯齿+灰度等级8

 

再来对比抗锯齿+灰度等级0、抗锯齿+灰度等级4、以及抗锯齿+灰度等级8在切片预览下的区别。从像素分布来看,三者Y轴最长像素分布均有8个像素点。从像素密度来看,灰度等级0有36个像素点,而灰度等级4/8均有40个像素点。从灰度值看(不计算黑白),灰度等级0有6个灰度值(124、126、128、220、222、224),灰度等级4有6个灰度值(126、128、188、190、236、238),灰度等级8无灰度值。

 


此外,还要注意灰度等级问题,灰度等级为8时,所有像素点均为灰度值255的纯白(这里算法的灰度值是254)。可以看出,开启灰度等级后,影响的不仅是Y轴像素分布、像素密度以及灰度值,还有像素亮度。当在选择灰度等级时,在选择较高等级时需谨慎。

 

图像模糊类似PS里面的羽化功能(令选区内外衔接部分虚化,起到渐变的作用从而达到自然衔接的效果)。简单来理解就是,用手或者橡皮擦去轻轻的擦拭铅笔线条,会导致线条变模糊并且进行渲染,图像模糊就是进行类似的操作,级别越高,模糊程度越高。

 

抗锯齿+灰度等级4+图片模糊等级2

 

抗锯齿+灰度等级4+图片模糊等级4

 

最后对比抗锯齿+灰度等级4+图片模糊等级2(以下简化为“图片模糊等级2”),以及抗锯齿+灰度等级4+图片模糊等级4以下简化为“图片模糊等级4”)在切片预览下的区别。从像素分布来看,图片模糊等级2在Y轴最长像素分布有9个像素点,而图片模糊等级4多达11个像素点。从像素密度来看,图片模糊等级2有54个像素点,而图片模糊等级4有93个像素点。从灰度值看(不计算黑白),图片模糊等级2有11个灰度值(126、142、170、186、190、198、202、234、238、246、250),图片模糊等级4有20个灰度值(130、138、140、142、148、150、152、156、158、160、162、176、180、184、188、206、208、216、234、244)。

 


要注意的是,当图片模糊等级较高时,灰度同时开始向内渲染,导致中心区域原本纯白的像素点也开始变灰,很可能会导致中心光源不足,出现固化问题。当在选择图片模糊等级时,在选择较高等级时需谨慎。

 

CHITUBOX算法中,进行计算的依次优先级是,图像模糊——灰度级别——抗锯齿。图像模糊控制的是羽化的程度(即边缘过渡像素个数),灰度级别控制像素亮度,抗锯齿控制的过渡的灰度值数量,三者组合使用,来补偿像素纹。

 

参考文献:

https://www.youtube.com/watch?v=5qTAmPrHLow

https://www.instructables.com/id/Ember-Printer-How-a-Voxel-Grows/