Graphics3Dやこれに関連した関数のオプションとして使われ,3Dの表面の彩色にどのような擬似照明を使用するかを指定する.
Lighting
Graphics3Dやこれに関連した関数のオプションとして使われ,3Dの表面の彩色にどのような擬似照明を使用するかを指定する.
詳細
- 以下の設定が使用できる.
-
Automatic デフォルトの照明スキーム None 照明は当てない "light" 名前付きの照明 {s1,s2,…} 光源 s1, s2, … - 次は,使用可能な名前付きの照明設定"light"である.
-

"Standard" デフォルト位置の彩色光源 
"Neutral" デフォルト位置の無彩色光源 
"Accent" デフォルト方向の指向性白色照明 
"ThreePoint" デフォルト方向の3方向白色照明 - 各光源 siは次の形でよい.
-
AmbientLight 一様環境光 DirectionalLight 指向性光 PointLight 球面点光源 SpotLight スポットライト - Lighting{s1,…}は光源 siを継承された任意の光源と組み合せる.継承された光源と組み合せたくなければLighting{None, s1,…}を使うとよい.
- Lighting->Automaticは環境光を最終的な表示画像と相対的に固定した4つの光とともに使う.
- 照明は,スタイルオプションStyle[obj,Lighting->spec]を指定することでGraphics3Dの特定のオブジェクトに対して個別に指定できる.
例題
すべて開く すべて閉じる例 (4)
Graphics3D[{GrayLevel[.25], Specularity[White, 10], Sphere[]}, Lighting -> Automatic]Graphics3D[{GrayLevel[.25], Specularity[White, 10], Sphere[]}, Lighting -> "Neutral"]ListPlot3D[RandomReal[1, {9, 9}], InterpolationOrder -> 2, Mesh -> None, PlotStyle -> Specularity[50], Lighting -> DirectionalLight[RGBColor[1, .7, .1], {{5, 5, 4}, {5, 5, 0}}]]Graphics3D[{Specularity[White, 50], {Lighting -> PointLight[Red, {0, 0, 5}], Sphere[]}, {Lighting -> PointLight[White, {3, 0, 5}], Sphere[{3, 0, 0}]}, {Lighting -> PointLight[Blue, {0, 3, 5}], Sphere[{0, 3, 0}]}, {Lighting -> PointLight[Yellow, {3, 3, 5}], Sphere[{3, 3, 0}]}}, Lighting -> None]スコープ (24)
照明指定 (18)
Plot3D[Sin[x y ^ 2], {x, 0, 4}, {y, 0, 2}, Mesh -> None, PlotStyle -> White, Lighting -> Automatic]ColorFunctionが指定されているときのデフォルト照明:
Plot3D[Sin[x y], {x, 0, 4}, {y, 0, 2}, ColorFunction -> "TemperatureMap", Mesh -> None, Lighting -> Automatic]Plot3D[Sin[x y ^ 2], {x, 0, 4}, {y, 0, 2}, ColorFunction -> "TemperatureMap", Mesh -> None, Lighting -> None]Glowを使って光とのインタラクトのない純粋な色を指定する:
Plot3D[Sin[x y ^ 2], {x, 0, 4}, {y, 0, 2}, ColorFunction -> Function[{x, y, z}, Glow[ColorData["TemperatureMap", z]]], Mesh -> None, Lighting -> None]Graphics3D[{Sphere[], Cuboid[{1, 2, -1}, {2, 3, 1}], Cylinder[{{3, -1, 0}, {3, -1, 1}}]}, Lighting -> AmbientLight[Orange]]l1 = AmbientLight[GrayLevel[.3]];
l2 = DirectionalLight[Orange, {{1, 1, 1}, {0, 0, 0}}];{Graphics3D[{EdgeForm[], Sphere[], Cuboid[{1, 2, -1}, {2, 3, 1}], Cylinder[{{3, -1, 0}, {3, -1, 1}}]}, Lighting -> l2],
Graphics3D[{EdgeForm[], Sphere[], Cuboid[{1, 2, -1}, {2, 3, 1}], Cylinder[{{3, -1, 0}, {3, -1, 1}}]}, Lighting -> {l1, l2}]}Graphics3D[{White, Sphere[]}, Lighting -> DirectionalLight[Green, {{0, 0, 1}, {0, 0, 0}}]]Table[Graphics3D[{White, Sphere[]}, Lighting -> DirectionalLight[c, {{0, 0, 1}, {0, 0, 0}}]], {c, {Red, Yellow, Blue}}]Table[Graphics3D[Sphere[], Lighting -> DirectionalLight[Orange, {p, {0, 0, 0}}]], {p, {{1, 0, 0}, {0, -1, 0}, {1, -1, 0}, {0, 0, 1}}}]Table[Graphics3D[{Specularity[White, 50], Sphere[]}, Lighting -> DirectionalLight[Orange, {p, {0, 0, 0}}]], {p, {{1, 0, 0}, {0, -1, 0}, {1, -1, 0}, {0, 0, 1}}}]Graphics3D[{Sphere[], Sphere[{3, 0, 0}], Sphere[{0, 3, 0}], Sphere[{3, 3, 0}]}, Lighting -> PointLight[Green, {2, 2, 2}]]Table[Graphics3D[{White, Sphere[]}, Lighting -> PointLight[c, {0, 0, 2}]], {c, {Red, Yellow, Blue}}]Table[Graphics3D[Sphere[], Lighting -> PointLight[Orange, p]], {p, {{2, 0, 0}, {0, -2, 0}, {2, -2, 0}, {0, 0, 2}}}]Table[Graphics3D[{Specularity[White, 50], Sphere[]}, Lighting -> PointLight[Orange, p]], {p, {{2, 0, 0}, {0, -2, 0}, {2, -2, 0}, {0, 0, 2}}}]Graphics3D[Sphere[], Lighting -> SpotLight[Green, {{0, 0, 1.5}, {0, 0, 0}}, Pi / 3]]Table[Graphics3D[{White, Sphere[]}, Lighting -> SpotLight[c, {{0, 0, 1.5}, {0, 0, 0}}, Pi / 6]], {c, {Red, Yellow, Blue}}]Table[Graphics3D[{Sphere[]}, Lighting -> SpotLight[Orange, {p, {0, 0, 0}}, π / 6]], {p, {{2, 0, 2}, {0, -2, 0}, {2, -2, 0}, {0, 0, 2}}}]Table[Graphics3D[Sphere[], Lighting -> SpotLight[Orange, {{0, 0, 1.5}, {0, 0, 0}}, a]], {a, {Pi / 12, Pi / 8, Pi / 6, Pi / 4}}]Table[Graphics3D[{Specularity[White, 50], Sphere[]}, Lighting -> SpotLight[Orange, {{0, 0, 1.5}, {0, 0, 0}}, a]], {a, {Pi / 12, Pi / 8, Pi / 6, Pi / 4}}]照明位置 (3)
l = {PointLight[Red, {2, 0, 0}], PointLight[Green, {0, -2, 0}], PointLight[Blue, {0, 0, 2}]};Graphics3D[Sphere[], Lighting -> l]Table[Graphics3D[Sphere[], Lighting -> l, ViewPoint -> v], {v, {{0, -2, 2}, {2, 0, 2}, {2, -2, 0}}}]Scaledを使い,グラフィックス座標との割合で光の位置を指定する:
l = {PointLight[Red, Scaled[{2, 0, 0}]], PointLight[Green, Scaled[{0, -2, 0}]], PointLight[Blue, Scaled[{0, 0, 2}]]};Graphics3D[Sphere[], Lighting -> l]Table[Graphics3D[Sphere[], Lighting -> l, ViewPoint -> v], {v, {{0, -2, 2}, {2, 0, 2}, {2, -2, 0}}}]ImageScaledを使い視点座標系で光の位置を指定する:
l = {DirectionalLight[Red, ImageScaled[{2, 2, 2}]], DirectionalLight[Green, ImageScaled[{-2, 2, 2}]], DirectionalLight[Blue, ImageScaled[{-2, -2, 2}]]};Graphics3D[Sphere[], Lighting -> l]Table[Graphics3D[Sphere[], Lighting -> l, ViewPoint -> v], {v, {{0, -2, 2}, {2, 0, 2}, {2, -2, 0}}}]照明減衰 (3)
デフォルトで,点光源はオブジェクトからの距離に影響されない:
obj = Table[Sphere[{3i, 0, 0}], {i, 0, 4}];Graphics3D[obj, Lighting -> PointLight[White, {24, 0, 0}], Boxed -> False, Background -> Gray, ViewPoint -> {1.5, -1, 0}]Graphics3D[obj, Lighting -> PointLight[White, {24, 0, 0}, {0, 1, 0}], Boxed -> False, Background -> Gray, ViewPoint -> {1.5, -1, 0}]Graphics3D[obj, Lighting -> PointLight[White, {24, 0, 0}, {0, 0, 1}], Boxed -> False, Background -> Gray, ViewPoint -> {1.5, -1, 0}]デフォルトで,スポットライトは円錐の外側では急激に弱くなる:
plane = DiscretizeRegion[InfinitePlane[{0, 0, 0}, {{1, 0, 0}, {0, 1, 0}}], {{-1, 1}, {-1, 1}, {0, 1}}, MaxCellMeasure -> {"Length" -> 0.01}, BaseStyle -> {EdgeForm[], White}];Show[plane, Lighting -> SpotLight[White, {{0, 0, 1}, {0, 0, 0}}, Pi / 10]]Table[Show[plane, Lighting -> SpotLight[White, {{0, 0, 1}, {0, 0, 0}}, {Pi / 2, s}]], {s, {1, 5, 10, 30}}]obj = Table[Sphere[{3i, 0, 0}], {i, 0, 4}];Graphics3D[obj, Lighting -> SpotLight[White, {{25, 0, 0}, {0, 0, 0}}, Pi / 4], Boxed -> False, Background -> Gray, ViewPoint -> {1.5, -1, 0}]Graphics3D[obj, Lighting -> SpotLight[White, {{25, 0, 0}, {0, 0, 0}}, Pi / 4, {0, 1, 0}], Boxed -> False, Background -> Gray, ViewPoint -> {1.5, -1, 0}]Graphics3D[obj, Lighting -> SpotLight[White, {{25, 0, 0}, {0, 0, 0}}, Pi / 4, {0, 0, 1}], Boxed -> False, Background -> Gray, ViewPoint -> {1.5, -1, 0}]一般化と拡張 (8)
Graphics3D[Sphere[], Lighting -> Automatic]Graphics3D[Sphere[], Lighting -> {AmbientLight[RGBColor[{0.4, 0.2, 0.2}]], DirectionalLight[RGBColor[{0., 0.18, 0.5}], ImageScaled[{2, 0, 2}]], DirectionalLight[RGBColor[{0.18, 0.5, 0.18}], ImageScaled[{2, 2, 3}]], DirectionalLight[RGBColor[{0.5, 0.18, 0.}], ImageScaled[{0, 2, 2}]], DirectionalLight[RGBColor[{0., 0., 0.18}], ImageScaled[{0, 0, 2}]]}]Graphics3D[{Sphere[]}, Lighting -> "Accent"]Graphics3D[{Sphere[]}, Lighting -> DirectionalLight[RGBColor[{1, 1, 1}], ImageScaled[{1, 1, 4}]]]Graphics3D[{Sphere[]}, Lighting -> "Neutral"]Graphics3D[{Sphere[]}, Lighting -> {AmbientLight[RGBColor[{.35, .35, .35}]], DirectionalLight[RGBColor[{.37, .37, .37}], ImageScaled[{2, 0, 2}]], DirectionalLight[RGBColor[{.37, .37, .37}], ImageScaled[{2, 2, 2}]], DirectionalLight[RGBColor[{.37, .37, .37}], ImageScaled[{0, 2, 2}]]}]Graphics3D[{Sphere[]}, Lighting -> "ThreePoint"]Graphics3D[{Sphere[]}, Lighting -> {DirectionalLight[GrayLevel[.85], ImageScaled[{1, 1, 2}]], DirectionalLight[GrayLevel[.4], ImageScaled[{-1, -2, 2}]], DirectionalLight[GrayLevel[.1], ImageScaled[{.5, 2, -1}]]}]o1 = Style[Sphere[], Lighting -> PointLight[Red, {0, 0, 2}]];
o2 = Style[Sphere[{3, 0, 0}], Lighting -> SpotLight[Yellow, {{3, 0, 2}, {3, 0, 0}}, Pi / 8]];
o3 = Style[Sphere[{0, 3, 0}], DirectionalLight[Blue, {{0, 3, 2}, {0, 3, 0}}]];
o4 = Style[Sphere[{3, 3, 0}], Lighting -> PointLight[White, {3, 3, 2}]];Graphics3D[{o1, o2, o3, o4}]Graphics3D[{{Lighting -> PointLight[Red, {0, 0, 2}], Sphere[]}, {Lighting -> SpotLight[Yellow, {{3, 0, 2}, {3, 0, 0}}, Pi / 8], Sphere[{3, 0, 0}]}, {Lighting -> DirectionalLight[Blue, {{0, 3, 2}, {0, 3, 0}}], Sphere[{0, 3, 0}]}, {Lighting -> PointLight[White, {3, 3, 2}], Sphere[{3, 3, 0}]}}, Lighting -> None]Graphics3D[{Specularity[White, 50], Sphere[], Sphere[{3, 0, 0}], Sphere[{0, 3, 0}], Sphere[{3, 3, 0}]}, Lighting -> DirectionalLight[LightRed, {0, 0, 4}]]オブジェクトと光りの両方について拡散色と鏡面反射色を別々に指定する:
Graphics3D[{Specularity[White, 20], Sphere[]}, Lighting -> DirectionalLight[{Red, Specularity[Yellow]}, {0, 0, 3}]]アプリケーション (3)
obj = Graphics3D[{Specularity[White, 50], Sphere[], Sphere[{4, 0, 0}], Sphere[{0, 4, 0}], Sphere[{4, 4, 0}]}];
plane = ParametricPlot3D[{u, v, -1}, {u, -2, 6}, {v, -2, 6}, PlotPoints -> 40, MaxRecursion -> 0, Mesh -> None, PlotRange -> 1, Axes -> False];light = Graphics3D[{Glow[Yellow], EdgeForm[Gray], Opacity[.2], Cuboid[{-2, -2, -1}, {6, 6, 3}]}, Lighting -> DirectionalLight[Yellow, {2, 2, 10}]];Show[light, obj, plane, Boxed -> False]light = Graphics3D[{Red, PointSize -> .05, Point[{2, 2, 2}], Glow[Yellow], Opacity[.3], Sphere[{2, 2, 2}, 3]}, Lighting -> PointLight[Yellow, {2, 2, 2}]];Show[light, obj, plane, Boxed -> False]cone = ParametricPlot3D[{d / Tan[Pi / 3]Cos[t] + 2, d / Tan[Pi / 3]Sin[t] + 2, 6 - d}, {t, 0, 2Pi}, {d, 0, 7}, PlotStyle -> Directive[Glow[Yellow], Opacity[.3]], Mesh -> None, PlotRange -> 1, Axes -> False];
light = Graphics3D[{Red, PointSize -> 0.05, Point[{2, 2, 6}]}, Lighting -> SpotLight[Yellow, {{2, 2, 6}, {2, 2, 0}}, Pi / 6]];Show[light, cone, obj, plane, Boxed -> False]lights = {PointSize[Large], Yellow, Point[Tuples[{-1, 1}, 3]]};Graphics3D[{lights, Sphere[]}, Lighting -> (DirectionalLight[Hue[RandomReal[]], #]& /@ Tuples[{-1, 1}, 3])]Graphics3D[{lights, Sphere[]}, Lighting -> (PointLight[Hue[RandomReal[]], #]& /@ Tuples[{-1, 1}, 3])]Graphics3D[{lights, Sphere[]}, Lighting -> (SpotLight[Hue[RandomReal[]], #, {Pi / 3, 8}]& /@ Tuples[{-1, 1}, 3])]col = {Red, Green, Blue};
objs = Graphics3D[{Specularity[White, 2], EdgeForm[], Cylinder[{{2, 2, 0}, {2, 2, 4}}], Cylinder[{{6, 2, 0}, {6, 2, 4}}], Cylinder[{{10, 2, 0}, {10, 2, 4}}]}];
walls = ParametricPlot3D[{{u, v - 2, 0}, {u, 4, 2v}}, {u, -2, 14}, {v, 0, 6}, PlotPoints -> 15, MaxRecursion -> 0, PlotStyle -> Specularity[White, 2], Mesh -> None, Axes -> False];
srcs[pos_] := Graphics3D[MapThread[{Lighting -> DirectionalLight[#1, {{0, -1, 0}, {0, 0, 0}}], Sphere[{#2, 0, 8}, .3]}&, {col, pos}]];
lights[pos_] := Join[{AmbientLight[GrayLevel[.1]]}, Sequence@@MapThread[{SpotLight[#1, {{#2, 0, 8}, {#2, 3, 0}}, {Pi / 2, 20}], PointLight[#1, {#2, 0, 8}, {0, 8, 0}]}&, {col, pos}]];Animate[With[{rx = -6Cos[t] + 6, gx = 6Sin[t] + 6, bx = 6Cos[t] + 6}, Show[objs, walls, srcs[{rx, gx, bx}], Lighting -> lights[{rx, gx, bx}], Background -> Black, Boxed -> False, ImageSize -> 300]], {t, 0, 2Pi}, SaveDefinitions -> True, AnimationRunning -> False]特性と関係 (8)
{Graphics3D[{Yellow, Sphere[]}, Lighting -> PointLight[White, {0, 0, 3}]],
Graphics3D[{White, Sphere[]}, Lighting -> PointLight[Cyan, {0, 0, 3}]],
Graphics3D[{Yellow, Sphere[]}, Lighting -> PointLight[Cyan, {0, 0, 3}]]}拡散するオブジェクトの色と照明の色を交替しても同じ効果が得られる:
{Graphics3D[{White, Sphere[]}, Lighting -> PointLight[Red, {0, 0, 3}]],
Graphics3D[{Red, Sphere[]}, Lighting -> PointLight[White, {0, 0, 3}]]}鏡面反射性のあるオブジェクトの色と照明の色を交替しても同じ効果が得られる:
{Graphics3D[{White, Specularity[White, 20], Sphere[]}, Lighting -> PointLight[{White, Specularity[Red]}, {0, 0, 3}]],
Graphics3D[{White, Specularity[Red, 20], Sphere[]}, Lighting -> PointLight[{White, Specularity[White]}, {0, 0, 3}]]}{Graphics3D[Sphere[], Lighting -> PointLight[Yellow, {0, 0, 3}]],
Graphics3D[{Specularity[White, 40], Sphere[]}, Lighting -> PointLight[Yellow, {0, 0, 3}]]}Graphics3D[{Lighter[Red, .5], Glow[Darker[Blue, .8]], Specularity[Yellow, 30], Sphere[]}, Lighting -> PointLight[LightGreen, {0, 0, 3}]]Graphics3D[Table[Sphere[{3i, 0, 0}], {i, 0, 4}], Lighting -> DirectionalLight[White, {{0, 5, 4}, {0, 0, 0}}], ViewPoint -> Top]Graphics3D[{Sphere[], Sphere[{3, 0, 0}], Sphere[{0, 3, 0}], Sphere[{3, 3, 0}]}, Lighting -> PointLight[White, {1.5, 1.5, 1}], ViewPoint -> Top]Graphics3D[{Sphere[], Sphere[{3, 0, 0}], Sphere[{0, 3, 0}], Sphere[{3, 3, 0}]}, Lighting -> SpotLight[White, {{1.5, 1.5, 5}, {1.5, 1.5, 0}}, Pi / 6]]考えられる問題 (5)
デフォルトの照明は曲面の薄い色を照らすのには相応しくないことがある:
Graphics3D[{LightRed, Sphere[]}]無彩色光による照明を使って曲面の色をより自然に反射することができる:
Graphics3D[{LightRed, Sphere[]}, Lighting -> "Neutral"]プロットに色関数が与えられると,無彩色光が自動的に使われる:
Plot3D[y Exp[-x ^ 2 - y ^ 2], {x, -2, 2}, {y, -2, 2}, ColorFunction -> "Rainbow", Mesh -> None]Plot3D[y Exp[-x ^ 2 - y ^ 2], {x, -2, 2}, {y, -2, 2}, ColorFunction -> "Rainbow", Mesh -> None, Lighting -> "Standard"]{Graphics3D[{Specularity[White, 50], Cuboid[{-1, -1, -1}, {1, 1, 1}]}, Lighting -> PointLight[LightRed, {0, 0, 5}]],
Graphics3D[{Specularity[White, 50], Sphere[]}, Lighting -> PointLight[LightRed, {0, 0, 5}]]}球にスポットライトを当てると境界がギザギザになることがある:
Graphics3D[{Specularity[White, 50], Sphere[], Sphere[{3, 0, 0}], Sphere[{0, 3, 0}], Sphere[{3, 3, 0}]}, Lighting -> SpotLight[LightYellow, {{1.5, 1.5, 5}, {1.5, 1.5, 0}}, Pi / 8]]Graphics3D[{Specularity[White, 50], Sphere[], Sphere[{3, 0, 0}], Sphere[{0, 3, 0}], Sphere[{3, 3, 0}]}, Lighting -> SpotLight[LightYellow, {{1.5, 1.5, 5}, {1.5, 1.5, 0}}, {Pi / 8, 5}]]光源を指定するインラインのLighting指示子は,それらの光源を継承された指定に加える:
Graphics3D[{Lighting -> {PointLight[Orange, {-2, -2, 2}]}, Sphere[]}]グラフィックスについてLightingNoneと設定するとデフォルトのLightingAutomatic設定が無効になる:
Graphics3D[{Lighting -> {PointLight[Orange, {-2, -2, 2}]}, Sphere[]}, Lighting -> None]同様に,一連のLighting{s1,…}指定は光を累積的に追加する:
Graphics3D[{Lighting -> {PointLight[Orange, {-2, -2, 2}]}, Sphere[{0, 0, 0}], Lighting -> {PointLight[Green, {4, 0, 0}]}, Sphere[{2, 0, 0}]}, Lighting -> None]リストの中カッコを使って光の指定が続く指定に漏れ出さないようにする:
Graphics3D[{{Lighting -> {PointLight[Orange, {-2, -2, 2}]}, Sphere[{0, 0, 0}]}, {Lighting -> {PointLight[Green, {4, 0, 0}]}, Sphere[{2, 0, 0}]}}, Lighting -> None]おもしろい例題 (2)
obj = RevolutionPlot3D[{8 + Cos[t], 2Sin[t]}, {t, 0, 2Pi}, Mesh -> None, PlotStyle -> Directive[White, Specularity[White, 50]], Axes -> False, Boxed -> False];Grid[Table[obj /. Rule[Lighting, spec_] :> Rule[Lighting, (SpotLight[ColorData["SouthwestColors"][RandomReal[]], Scaled[#], {Pi / 4, 100}]&) /@ RandomReal[{-4, 4}, {5, 3}]], {3}, {3}]]p1[θ_] := RotationTransform[θ, {0, 0, 1}][{0, 2, 0}];
p2[θ_] := RotationTransform[θ + Pi / 2, {1, 0, 1}][{0, 2, 0}];
p3[θ_] := RotationTransform[θ + Pi, {1, 0, 0}][{0, 2, 0}];
p4[θ_] := RotationTransform[θ + 3Pi / 2, {1, 0, -1}][{0, 2, 0}];Animate[Graphics3D[{Specularity[White, 30], Sphere[], Sphere[p1[θ], .4], Sphere[p2[θ], .4], Sphere[p3[θ], .4], Sphere[p4[θ], .4]}, Lighting -> {AmbientLight[GrayLevel[.1]], PointLight[Red, p1[θ]], PointLight[Green, p2[θ]], PointLight[Blue, p3[θ]], PointLight[Yellow, p4[θ]]}, PlotRange -> 2.5, Background -> Black, Boxed -> False, ImageSize -> 300], {θ, 0, 2Pi}, SaveDefinitions -> True, AnimationRunning -> False]テクニカルノート
関連するガイド
-
▪
- 3Dグラフィックスオプション ▪
- 色 ▪
- グラフィックス指示子 ▪
- グラフィックスオプションとスタイル
履歴
1988 で導入 (1.0) | 2007 で更新 (6.0) ▪ 2014 (10.0) ▪ 2020 (12.1) ▪ 2021 (12.3) ▪ 2021 (13.0)
テキスト
Wolfram Research (1988), Lighting, Wolfram言語関数, https://reference.wolfram.com/language/ref/Lighting.html (2021年に更新).
CMS
Wolfram Language. 1988. "Lighting." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2021. https://reference.wolfram.com/language/ref/Lighting.html.
APA
Wolfram Language. (1988). Lighting. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Lighting.html
BibTeX
@misc{reference.wolfram_2026_lighting, author="Wolfram Research", title="{Lighting}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/Lighting.html}", note=[Accessed: 03-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_lighting, organization={Wolfram Research}, title={Lighting}, year={2021}, url={https://reference.wolfram.com/language/ref/Lighting.html}, note=[Accessed: 03-November-2026]}