In the past, I have been challenged by rendering lamp shades. Often, the shade geometry blocks the light source unless using a transparent glass material. Materials with enough transparency to allow light to pass through, often do not provide the desire affect…glass-like and direct, whereas a cloth lamp shade should diffuse the light.
Here is a technique I have come up to mimic a cloth lamp shade that uses the new light emitting Material feature in Shaderlight.
**Short Form Solution**
- Select a material for your lamp shade
- In the Shaderlight material editor, make this matt, smooth
- Assign the material to the interior face of your shade geometry
- Copy the material and in the Shaderlight material editor, make the material a light emitting material with an appropriate cd/M2 luminance setting (more on this later).
Now the shade will cast a diffuse light.
**More Detail**
*Build your geometry*
My lamp shade is an irregular cylinder with a 14-inch diameter open base and a 12-inch diameter open top.
Three areas are important to record:
- area of the top opening: PI()*6^2
- area of the bottom opening: PI()*7^2
- surface area of the shade: 409.91 square inches
*Place your light source.*
I created a model of an LED A19 bulb, using IES data for a 1000 lumen 2700k bulb. If you do not expect the bulb to be visible i your scenes, you can skip the bulb geometry use a bare ies light.
Make note of the lumen (1000), and the temperature (2700k) for later.
*Pick a Material*
I wanted a cloth-like material. I used the SU woven carpet, adjusted the colour settings and shrunk the image size to 1”. The detail of the material is lost in the rendering, straight colour is probably good enough.
Apply this material to the interior of the shade.
*Do Some Math*
For the exterior material we need a realistic light emission (luminance) value.
My method is probably not perfectly correct, but it seams to be good enough to give favourable outcomes.
First, our variables:
- Light strength from our ies file in candela (LSc)
- Area of the top opening (Aa)
- Area of the bottom opening (Ab)
- Area of our shade surface (Ac)
- Total area (At) = (Aa) + (Ab) + (Ac)
Find the lamp shade surface’s share of total area as a percentage (Ap) = (Ac) / (At)
Find the share of direct candela hitting the shade (LSSc) = (LSc) * (Ap)
Adjust for loss: a lot of the light from the bulb will be lost by reflection on the interior or absorption by the fabric in the material. Here you have to apply some guesswork. I have guessed that 60% or the light was lost, therefore, the light emitted from the glowing shade will be 40% of the original light strength (this may be too high, you can experiment. Different materials would have different outcomes). Light emitted (LEc) = (LSSc) * 0.4
Now divide the total light emitted by the area of the lamp shade surface (in square meters) to find the luminance value = (LEc) / (Ac) in m2.
If, like me, you are working with square inches, you may convert your (Ac) In2 value to M2 by multiplying (Ac) in inches by 0.00064516 before calculating the luminance value.
Make a copy of the material you used for the interior of the shade (assuming they are the same, some shades will have a white lining and textured exterior). In the Shaderlight material editor, set the luminance to the value we just calculated.
Set the correlated colour temperature to match the temperature of your light source (2700k for me).
Apply this material to the exterior of your shade.
Finally, we need to adjust the light source. This is an optional step, but more accurate. In the model, all the light is blocked by the lampshade and (mostly) redirected out the open top and bottom. At the same time, we are adding light from the shade, so technically we are over-stating the light. The rough adjustment factor I used was total light minus the light we added to th shade as a percentage of total light, or ((LSc)-(LEc))/(LSc) * 100. Use this percentage for your ies light dimmer.
My Numbers:
- (LSc) = 1000 lumen = 100 candela
- (Ac) = 0.26 m2
- (Ap) = (Ac) / (At) = 0.26 / 0.44 = 61%
- (LSSc) = (LSc) * (Ap) = 60.29 candela
- (LEc) = (LSSc) * (1 - [lost light]) = 60.29 * (1 - 0.6) = 24.12 candela
- Luminance = LEc / (Ac) = 24.12 / 0.26 = ~91 candela/m2
- IES Dimmer = ((LSc)-(LEc))/(LSc) * 100 = (100 - 24.12) / 100 * 100 = 76
Side note:
If you do not know the candela for your ies file you should be able to find the Lumen from the website you got the ies file from. Google Lumen to candela Calculator, you will need “Apex Angle” Use “360” degrees as a “good enough” approximation (technically this means the light is a perfect sphere emitting from all directions, its not, but again, good enough)
** Finishing Touches**
I also added a few touches to increase the realism of the shade.
After creating and applying the materials to the lamp shade, I created two bands around the top and bottom of the lamp shade by dividing the shade surface into rings (I intersected the lamp shade geometry with flat planes to create the bands).
At this point my shade consists of a 0.25 cm band, a 0.5 cm band, the majority of the shade, another 0.5 cm and another 0.25 cm band.
To the exterior 0.25 cm bands, I applied the same material used in the interior. This mimics a shadow from a wire rim frames of the shade, through which no light would travel.
For the 0.5 cm bands, I copied the exterior material and reduced the light emission by half. This mimics areas where the shade material is folded over (doubled) to enclose the wire frame.
I then created vertical band on the main section of the frame and applied the same half-strength exterior material. This mimic an overlap in the material at the seam.
I hope this is helpful to someone (Its not as complicated as I’ve made it sound once the steps make sense, and the outcome seems to work well. I built a calculator in Excel that only requires for inputs: Ac, Ab, Ac and LSc—nt sure how to best share that though).
Andrew