Question: It looks to me like ChromaticityPlot3D has some default lighting, but unlike most Graphics3D functions the Lighting option doesn't seem to have any effect.

However, the documentation states "ChromaticityPlot3D accepts all Graphics3D options with the following additions and changes: ...".

Any ideas how to affect the lighting? Is it possible to produce a Graphics3D object from the chromaticity plot? I am trying to achieve unshaded lighting like `Lighting -> {{"Ambient", White}}`.

Answer: 
If you look at the `InputForm` of `ChromaticityPlot3D[{"WideGamutRGB", "sRGB"}]` you'll find several spots where it says `Lighting -> "Neutral"`

So if you want to change that, you'll have to modify the output of `ChromaticityPlot3D` using a replacement rule. Here is an extreme example, one that totally ruins the plot but shows how to change the lighting,

```
ChromaticityPlot3D["WideGamutRGB"] /. 
   Rule[Lighting, "Neutral"] :> Rule[Lighting, #] & /@ {"Neutral", 
  None, {{"Ambient", White}}}

```

![Mathematica graphics](https://i.stack.imgur.com/wXTFr.png)
One could override the setting for each polygon group (or `GraphicsGroup[]`):

```
cp /. p_Polygon :> {Lighting -> {{"Ambient", White}}, p}
cp /. gg_GraphicsGroup :> {Lighting -> {{"Ambient", White}}, gg}

```

![Mathematica graphics](https://i.stack.imgur.com/hK4f0.png)

---

*Update: Addendum.*

While `Lighting` shows up in `Options@ChromaticityPlot3D`, it is not listed among the options in the docs for [`ChromaticityPlot3D`](http://reference.wolfram.com/language/ref/ChromaticityPlot3D.html).
However, it inherits the setting for `Lighting` from `ParametricPlot3D` before it is embedded as styling in the graphics primitives: If the setting is not `Automatic`, then `ChromaticityPlot3D` won't override it.

```
With[{opts = Options[ParametricPlot3D]},
 Internal`WithLocalSettings[
  SetOptions[ParametricPlot3D, Lighting -> {{"Ambient", White}}],
  ChromaticityPlot3D[{"WideGamutRGB", "sRGB"}],
  SetOptions[ParametricPlot3D, opts]
  ]
 ]
(* same plot as above *)

```

See [this answer](https://mathematica.stackexchange.com/questions/24857/how-to-flush-machine-underflows-to-zero-and-prevent-conversion-to-arbitrary-prec/25668#25668) or [this one](https://stackoverflow.com/questions/7586735/how-to-catch-interrupts-generated-by-timeconstrained/7586910#7586910) for more on `Internal`WithLocalSettings`. In this case one might simply handle things oneself as follows:

```
  SetOptions[ParametricPlot3D, Lighting -> {{"Ambient", White}}];
  ChromaticityPlot3D[{"WideGamutRGB", "sRGB"}]
  SetOptions[ParametricPlot3D, Lighting -> Automatic];

```