1 Introduction

Digital fabrication tools, such as 3D printer and CNC router, allow us to easily build a complex-shaped object, and hence are often applied to make a custom-built object, e.g., personal prosthetic limb. Since not only shape but also appearance is an important factor for our visions, techniques to control the appearance in digital fabrication are required.

To control color, a factor of the appearance, there are some commercial 3D printers that can build a colorful object. Brunton et al. [1] increased the number of controllable colors in 3D printing by utilizing natural error diffusion. Weyrich et al. [2] controlled glossiness, a factor of the appearance, by using a CNC router. Hašan et al. [3] and Dong et al. [4] controlled translucency, also a factor of the appearance, by using a 3D printer. Papas et al. [5] replicated both of the color and translucency by mixing different pigments. The above methods for controlling the translucency modify inside of the object. In contrast, our purpose is also to control the translucency but by modifying outside of the object.

In this paper, we propose a method to control the translucency by using a UV printer, which can print 2D patterns on 3D objects consisting of various materials, such as plastic and metal. When putting an ink on a base material, the translucency of the printed object depends on both the translucency of the material and ink because of subsurface scattering, as shown in Fig. 1. The translucency can be modified by a combination of factors, such as base material, color of an ink, and the number of printed layers. The proposed method controls the translucency by UV printing through changing such a combination.

Fig. 1
figure 1

The translucency of a fabricated object. a The fabricated object consists of a UV ink layer on a white wax. b Incident light is scattered inside of both of the ink layer (red) and base material (blue), called subsurface scattering, and hence, the radiated light (purple) is a mixture of them

Three contributions of this paper are to propose a novel approach using a UV printer for controlling the translucency, fuse two different manners for resolving tradeoffs, and implement the working system.

2 Controlling translucency by UV printing

In general, a UV printer prints the bottom layer with a matte white ink to remove the translucency of base materials. On the other hand, we rather utilize the translucency without printing the white layer. The translucency of the printed object depends on both of the translucency of the base materials and inks and can be changed by a combination of the factors. If the translucency of the printed objects in all combinations can be measured, it is easy to control the translucency in an example-based manner. However, it is almost impossible to print and measure in all the combinations. Therefore, we fuse such a manner with a different manner based on physics model.

The proposed method consists of measurement and fabrication steps, as shown in Fig. 2. In the measurement step, the individual translucencies of the base materials and inks are measured. The translucency of the printed object in a combination is rendered based on a physics model. The translucency in all the combinations can be rendered by simulation with few measurements. Therefore, it enables to build a lookup table between the combinations and translucency, like the example-based manner. In the fabrication step, given a query about translucency, either measured or manually designed, a combination can be found in the lookup table so that the translucency of the printed object is the most similar to the query. The rest of this section explains the rendering method, measuring the translucency, and building the lookup table and finding the best combination.

Fig. 2
figure 2

The whole system of the proposed method that consists of measurement and fabrication steps

2.1 Rendering the translucency of a layered object

The translucency of the printed object depends on both of the translucency of the base material and ink, as mentioned above. A key feature is that the printed object has a layered structure, as shown in Fig. 1b. Thus, we apply Kubelka’s layer model [6] to render the translucency. The original model formulates scalar reflectance r and transmittance t of a two-layered object, as follows:

$$\left\{ \begin{array}{l} r = r_1 + t_{1}^2 r_2 (1 + r_{1} r_{2} + \cdots) = r_{1} + \frac{t_{1}^{2} r_{2}}{1 - r_{1} r_{2}}, \,\,\,\,\,\,\,\,\,(1)\\ t = t_{1} t_{2} (1 + r_{1} r_{2} + \cdots) = \frac{t_{1} t_{2}}{1 - r_{1} r_{2}}, \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,(2) \end{array} \right. $$

where r1 and t1 are the reflectance and transmittance of the top layer and r2 and t2 those of the bottom one, respectively. Now, let us take subsurface scattering into consideration because it is a main cause why an object looks translucent. Since subsurface scattering diffusely spreads light, it is modeled by point spread function (PSF). The PSF can also be separated into reflective and transmissive PSFs. The reflective and transmissive PSFs of the top layer are defined as R1(x),T1(x), respectively. As well, those of the bottom one are defined as R2(x),T2(x). The reflective PSF of the two-layered object is, therefore, written as

$$\begin{array}{*{20}l} R(x) =& R_{1}(x) + ((T_{1} * R_{2}) * T_{1})(x) \\ &+ ((((T_{1} * R_{2}) * R_{1}) * R_{2}) * T_{1})(x) + \cdots, \end{array} $$
(3)

where “ ∗” is the convolution operator. The transmissive PSF can also be written as well but it is omitted here for saving the space. By Fourier transform, Eq. (3) is transformed into

$$\begin{array}{*{20}l} {\mathcal F}[\!R] &= {\mathcal F}[R_{1}] + {\mathcal F}[\!T_{1}] {\mathcal F}[\!R_{2}] {\mathcal F}[\!T_{1}] + \cdots \\ &= {\mathcal F}[\!R_{1}] + \frac{{{\mathcal F}[\!T_{1}]}^{2} {\mathcal F}[\!R_{2}]}{1 - {\mathcal F}[\!R_{1}] {\mathcal F}[\!R_{2}]}, \end{array} $$
(4)

where \({\mathcal F}[\!\cdot ]\) means Fourier transform and the argument x is omitted. If the PSFs are isotropic, the imaginary parts in the frequency domain become zero. Therefore, \({\mathcal F}[\!R]\) can be regarded as the reflective modulation transfer function (MTF), which is defined as \(\hat {R}(f_{x})\), where f x is the spatial frequency. Finally, the reflective and transmissive MTFs of the two-layered object are written, as follows:

$$ \left\{ \begin{array}{l} \hat{R}(f_{x}) \,= \hat{R_{1}}(f_{x}) + \frac{\hat{T_{1}}^{2}(f_{x}) \hat{R_{2}}(f_{x})}{1 - \hat{R_{1}}(f_{x}) \hat{R_{2}}(f_{x})}, \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,(5) \\ \hat{T}(f_{x}) = \frac{\hat{T_{1}}(f_{x}) \hat{T_{2}}(f_{x})}{1 - \hat{R_{1}}(f_{x}) \hat{R_{2}}(f_{x})}, \,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,\,(6) \end{array} \right. $$

where \(\hat {A}(f_{x})\) means the corresponding MTF to a PSF A(x).

Once the individual reflective and transmissive MTFs of the base materials and inks are given, those of the printed object can be rendered by using Eqs. (5) and (6). Recursively applying Eqs. (5) and (6), it is also possible to render the MTFs of a multi-layered object.

2.2 Measuring the modulation transfer functions

The MTFs are employed for explaining the translucency, as mentioned above. In this paper, to measure the MTFs, we apply the modulated imaging, proposed by Cuccia et al. [7] for measuring the quantitative scattering and absorption coefficients of a medium. The modulated imaging is based on measuring MTFs in a Pro-Cam system. Projecting a sinusoidal pattern onto the medium, light scattering in the medium blurs the pattern, and hence, the amplitude of the measured sinusoidal pattern is attenuated in comparison with that of the projected one. The MTF consists of the rates of attenuation at different frequencies. We refer the readers to [7] for the details.

We can directly measure the MTFs of the base materials in the Pro-Cam system. However, it is impossible to directly measure the MTFs of the inks because the ink layer has to be printed on an object. Therefore, we estimate those by utilizing Eq. (5). As printing an ink whose reflective and transmissive MTFs are \(\hat {R_{1}}(f_{x})\) and \(\hat {T_{1}}(f_{x})\), respectively, on a mirror, the reflective MTF of the printed object \(\hat {M_{1}}(f_{x})\) is, as below:

$$\begin{array}{*{20}l} \hat{M_{1}}(f_{x}) = \hat{R_{1}}(f_{x}) + \frac{\hat{T_{1}}^{2}(f_{x})}{1 - \hat{R_{1}}(f_{x})}, \end{array} $$
(7)

where we assume \(\hat {R_{2}}(f_{x}) = 1\) in Eq. (5) because of only specular reflection on a mirror. Also, as printing the same ink twice, the reflective MTF \(\hat {M_{2}}(f_{x})\) is, as below:

$$\begin{array}{*{20}l} \hat{M_{2}}(f_{x}) = \hat{R_{1}}(f_{x}) + \frac{\hat{T_{1}}^{2}(f_{x}) \hat{M_{1}}(f_{X})}{1 - \hat{R_{1}}(f_{x}) \hat{M_{1}}(f_{X})}. \end{array} $$
(8)

Now, the reflective and transmissive MTFs of the ink, \(\hat {R_{1}}(f_{x})\) and \(\hat {T_{1}}(f_{x})\), can be estimated from Eqs. (7) and (8) at least because both of \(\hat {M_{1}}\) and \(\hat {M_{2}}\) can be measured. It is also possible to increase the number of the same ink layers and then use it for a stable estimation in a least-squares method.

2.3 The lookup table

Finally, it is possible to build the lookup table by using the rendering method with the measurements. The base materials should be translucent, such as rubber and wax, not transparent and opaque.

The lookup table is built by rendering in all the combinations. Building the lookup table is a time-consuming process but it is required only once.

In the fabrication step, given a query about translucency, a combination is searched in the lookup table so that the translucency of the printed object is the most similar to the query. Here, it is required to define distance for representing how much a MTF is close to another. Thus, we employ a root-mean-square error (RMSE) for that. The distance E A B between MTFs \(\hat {A}(f_{x})\) and \(\hat {B}(f_{x})\) is defined as

$$ E_{AB} = \sqrt{\frac{1}{|\mathbb{F}|} \sum_{f_{x} \in \mathbb{F}}\left\{ \hat{A}(f_{x}) - \hat{B}(f_{x}) \right\}^{2}}, $$
(9)

where \(\mathbb {F}\) is a set of discrete frequencies to be used for calculating the distance.

3 Experiments

We make experiments for evaluating the rendering method and the whole system. For the measurements, we constructed a Pro-Cam system with a projector (Vivitek QUMI Q8) and an RGB camera (FLIR Grasshopper3 Color). In the experiments, we use three base materials: a plastic eraser, a wax candle, and a piece of milky acrylic board.

3.1 Quantitative evaluation of the rendering method

The rendering method plays an important role in the proposed method because the lookup table is based on that. Hence, firstly, we quantitatively evaluate the rendering method. In this evaluation, the reflective MTFs of the printed objects in several combinations are rendered and then compared with those which are measured through being fabricated. Here, we use three inks: cyan, magenta, and yellow. As examples of the results, the rendered MTFs, as solid lines, and the measured ones, as dashed lines, in three channels are shown in Fig. 3, in which (a) is a case of the cyan on the eraser and (b) the yellow on the acrylic. In Fig. 3a, the rendered MTFs are very similar to the measured ones, whose RMSE is on average 0.0242. On the other hand, in Fig. 3b, both of them are less similar, whose RMSE is on average 0.1861. The other RMSEs are written in Table 1 and the totally averaged RMSE is 0.0853. Since the range of reflectance is in 0 to 1, it can be said that the error is on average 8.53%. We believe that is reasonable for building the lookup table.

Fig. 3
figure 3

The rendered MTFs in comparison with the measured ones. a A case of the cyan on the plastic eraser. b The yellow on the acrylic board

Table 1 The RMSEs of the rendered MTFs in comparison with the measured ones

3.2 Controlling the translucency for replication

We make experiments for controlling the translucency of the printed object. The lookup table is built with the three base materials and fifteen inks. Though only the inks of 100% were used in the previous experiment, the same inks of 20, 40, 60, and 80% are also used for building the lookup table here. Setting the maximum number of printed layers to five, it results in 2,440,845 elements in the lookup table. A query about translucency can be manually designed, but it is easier to measure a real-world object. We, therefore, measure the reflective MTFs of a slice of salmon and kiwi, as shown in Fig. 4, and a small region of those is used as a query. As a result of finding the best combination to the salmon, it was to print in the order of the magenta of 40%, yellow of 100%, magenta of 100%, and magenta of 100% on the wax candle, whose RMSE was 0.0812. As well, the best combination to the kiwi was to print in the order of the cyan of 100%, magenta of 40%, magenta of 40%, magenta of 40%, and yellow of 60% on the wax candle, whose RMSE was 0.0714. The results are shown in Fig. 4.

Fig. 4
figure 4

Controlling the reflective MTFs for the queries based on real-world objects: a salmon and b kiwi

Moreover, we make an experiment for replicating the reflective MTFs of the whole salmon pixel by pixel. According to the previous experiment, the wax candle suits to the MTF of the salmon; thus, a part of the lookup table where the base material is the wax candle is used for finding the best combination for each pixel. As the result, an image of the printed object is shown in Fig. 5a, which consists of four layers of inks on the wax candle. The layer images and the error map are shown in Fig. 5be and f, respectively.

Fig. 5
figure 5

Replicating the reflective MTFs of the salmon. a The printed object. be The four layer images from the bottom to the top. f The error map

4 Conclusion

In this paper, we proposed a novel method to control the translucency by UV printing on a translucent material. We applied Kubelka’s layer model with few measurements to render the translucency of the printed object and then built the lookup table. Given a query about translucency, it is possible to find a combination of the factors in print, such as base materials, inks, and the number of printed layers, in the lookup table so that the translucency by the combination is the most similar to the query. That is, we can control the translucency of the printed object.

There are some limitations. Currently, we assume the PSFs are isotropic but some real-world objects has anisotropic PSFs. Since the printhead of a conventional UV printer moves within a 2D space, it is difficult to print on a complex-shaped object but a transfer sheet for UV printing could resolve that problem.