Translucent material and light


I would like to simulate very thin curtains but I can’t get a nice result with Cycles

I tried with the principled shader but I can’t get nice effect by playing with the transmission / alpha / subsurface.

Then I tried with the translucent shader but it doesn’t offre options to control the effect.

I could get the light on the curtain and on the floor by combining a translucent shader and a transparent shader filtered by a light path (is shadow ray)

Then how to get blurry light effect on the curtain and on the floor ?

Also I would like to know if it’s possible to get the same effect as the translucent shader but with the principled shader ?

Please check the examples below.

Thanks for your help !

1 Like

For Principled Shader, you can turn on SSS and add some thickness to the curtaing object.

For blurry shadows, increase size of the light source.

On your translucent/transparent mix, add a math shader or a colourramp between the light path and the mix, and adjust the shadow with that.

Also, this thread on LuxCoreRender forum answers you question the best, I think.

Good old Blenderguru has a video about curtains

This thread throws up a very interesting question:

Is it possible for the transparent node have a “roughness” value, in much the same way as the glass, refraction and glossy nodes have.

It would allow situations like the OP to be controlled very easily - any light passing through a transparent node that has non-zero roughness would be blurred/scattered and thus allow shadows to be softnened.

Hi Nazarii,

Thanks for your answer but I already tried the SSS and it gives really strange colors to the curtain.

I guess SSS is not designed to simulate that kind of translucency.

I also know about the size of the light, but it will make soft shadows on the entire lights/shadows and I don’t want that … I just want some blur effect on the light which is going through the curtain (and on the curtain).

Please look at the example below :

Thanks for your help

Hi Roken,

Adding a math node or a Color Ramp doesn’t produce any blur.

Could you give me an example of a node setup ?

Thanks for your help

Hi moony

YES thanks for your answer I think you understand my thoughts ! :-)))

It’s exactly what I would like to do but also on the translucent node.

Not only on the transparent node.

It should be great to be able to have controls on the translucent node but with similar setup as the principled shader so we could set PBR texture on it.

Thanks for your answer.

I made a test with SSS but I can’t get nice result and the light/shadows are still too strong.

Please check the example below :

SSS doesn’t pass light. It does light up the surface on the backside of a solid object, but this surface does not contribute to lighting. How I do fabric curtains: Make sure to use thin geometry. Shader wise it is a diffuse mixed with translucency at maximum 0.5. Then mixed transparency with whatever pattern you want for curtain threads as the shader mix factor. To simulate the appearance of thickness, you can add a viewing angle factor to the mix - at glancing angles you (and light rays) will not be able to pass due to the density of the threads.

Hi CarlG

Thanks for you answer. But with your example could I get some controls on the roughness of the translucency and on the roughness of the transparency ? I mean having a kind of blur control.

I did more tests with SSS and I could understand why I was getting strange colors output. Now I can also control the “roughness” or blur of the SSS by increasing the subsurface radius on all channels (XYZ).

Please take a look at the example below:

SSS Radius (color and scatter)
The scattering distance is specified separately for the RGB channels, The X, Y and Z values are mapped to the R, G and B values, respectively.

But I still have the issue with the transparency for the floor


I guess a fabric mask,that comes with many fabric PBR materials,would do the job.IE,the masked area would pass transparency(maybe mixed with translucency) where the holes are in the fabric,depending of how strong you blend the mask in,the light would do the rest for the scattered look.

For the SSS i have linked allready a video,(material starts at 33 : 00 min) ,you need thickness to your mesh.Blenderguru uses a solidyfy modifier for the curtain mesh and it works.

In this video, Curtis Holt demonstrates various lightning techniques, some similar to topics discussed in this thread.

Hi everybody,

Thanks for your help !

After many tests I think I finally found a solution but it requests a lot of computations.

I had to combine and play with 3 properties of the principled shader :

  • Transmission (but NOT the alpha)
  • Translucency (SSS)
  • IOR

First the transmission to let the light going through the curtain and hit the floor BUT with a very low IOR (about 1.05) so there is almost no refraction. This gives a blurry light on the floor.

Second the translucency SSS also with a very low value (about 0.1) BUT with a bigger size for the radius (with the same value on each channels = 5/5/5)

This setup produce a kind of realistic behavior of the light going through the curtain.

But it’s sooooooo slow to compute … maybe there is a faster way ?


It seems like I can’t use this method on a real scene :frowning:

The time of computation with several curtains is just too long !

I guess the SSS and the transmission request too much computation for my hardware.

I don’t know if it’s possible to replicate these effects with the compositor ?

@CarlG I don’t understand your setup

Especially the part about “curtain threads as the shader mix factor” and "add a viewing angle factor to the mix"

Shader wise it is a diffuse mixed with translucency at maximum 0.5. Then mixed transparency with whatever pattern you want for curtain threads as the shader mix factor. To simulate the appearance of thickness, you can add a viewing angle factor to the mix - at glancing angles you (and light rays) will not be able to pass due to the density of the threads.

Thanks for you help

In real life, translucent objects never pass light. Only transparent objects can pass light. If your curtain is transparent, then mix with Transparent node. Shadow hardness based your light strength and light type, not based translucent.

In real life, most of the translucent objects also show transparent characteristic. For this situations, mix the White Transparent node and set “Factor” value what amount you want.

Real life example:

A flash umbrella bounces light back to diffuse the light.
A softbox uses translucent material with the light on the inside.
What doesn’t exist in real life is the concept of transparency.
If there are two distinct mediums, there will be refraction (ignoring same IOR interfaces).
Transparency is something we use in CG to describe “not there”, except we can color it.
We have lampshades made out of translucent fabric, paper, and glass - to let light pass.
It doesn’t pass unmodified, just like diffuse it completely scatters the light on the backside.
It’s kinda like refraction at full roughness, except refraction also is opaque to shadow rays and require caustics to do the job.
In the example image the transparency mask would be the thing describing the individual threads of the fabric.

@OP: Do you have a link to the material you’re trying to create? Is it a regular fabric curtain or some sort of translucent polyester/plasticky thing?

Fabrics have holes and light passes into this holes. This is not translucent effect. If fabric weaving not regular and too close or multi layer, then it can act like translucent materials, because it can scatter light.

Same thing for Softbox and Lampshades.

But papers, they are translucent and also transparent, another word: Semi-Transparent.

For Cycles, Translucent shader scatter light along one direction, SSS scatter light along multi direction, and Transparent shader do not scatter. When use SSS, you can not see light pass to another side, but Translucent shader can simulate this. And SSS not works correctly with non-closed meshes.

“The Translucent BSDF is used to add Lambertian diffuse transmission.”
Given that we see shadows on the backside of fabric curtains, I’ll go with translucency and diffuse mix for the weave itself, with transparency mixed in with a thread mask. A Shoji (japanese paper door/wall) will light up the room, but you can’t see through it or make out the details behind it no matter how close you go.
I don’t see any transparency (semi transparency) going on for a sheet of regular paper - at all. Same with softbox and lampshades. The light coming out on the backside is too scattered to make out anything going on behind it. Put a sheet of paper right in front of your eyes and try reading your screen - not happening. Yeah, I know semi-transparent paper exist, but it’s not what we normally consider paper.
They don’t have “holes”, they have matter where light bounces around inside and end up in all directions at the backside. Diffuse and translucency are both a very simplified way of describing volumetric behavior (with no volume required). Since the result of SSS doesn’t light up anything, the only way to light up the backside in a scatterly fashion is using translucency. You can replace translucency with very high roughness refraction and rely on caustics for light transport, but the roughness doesn’t go high enough and will always be light direction dependent and loose a lot of energy.
Well, at least that’s my take on it.