# Lighting, Shapes, and Borders

Learn how to set borders, shapes, and lighting effects for your charts with our comprehensive guide on chart lighting in Spread.NET.

## Content

You can set borders for most areas of the chart. See the **LineBorder** and **PointBorder** properties in the [LineSeries](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.LineSeries.html) class for more information. The [XYBubbleSeries](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.XYBubbleSeries.html) class has additional border settings such as NegativeBorder and PositiveBorder.
You can set shapes such as the bar shape. See the [BarShape](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.HighLowBarSeries.BarShape.html) property for more information.
You can apply additional effects to the 3D chart control such as color, directional lighting, and positional lighting. Directional lighting mimics a distant light source such as rays from the sun (parallel paths). Positional lighting mimics a close light source such as a lamp where the light radiates out from a single point.
The following image displays a graph that uses light colors, direction, and position:
![Lighting effects](https://cdn.mescius.io/document-site-files/images/2238e618-a1fb-45a6-9ce5-9a4157bd2931/images/chartlight.png)
The following color effects are available:

* [AmbientColor](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.Light.AmbientColor.html)
* [DiffuseColor](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.Light.DiffuseColor.html)
* [SpecularColor](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.Light.SpecularColor.html)

You can specify the position and the direction of the light with the following properties:

* [PositionX](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.PositionalLight.PositionX.html)
* [PositionY](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.PositionalLight.PositionY.html)
* [PositionZ](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.PositionalLight.PositionZ.html)
* [DirectionX](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.DirectionalLight.DirectionX.html)
* [DirectionY](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.DirectionalLight.DirectionY.html)
* [DirectionZ](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.DirectionalLight.DirectionZ.html)

## Using Code

1. Create a series.
2. Add values to the series.
3. Create a plot area.
4. Set the **AmbientColor**, **DiffuseColor**, and **SpecularColor** in the [PositionalLight](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.PositionalLight.html) class.
5. Set the **PositionX**, **PositionY**, and **PositionZ** properties in the [PositionalLight](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.PositionalLight.html) class.
6. Set the **AmbientColor**, **DiffuseColor**, and **SpecularColor** in the [DirectionalLight](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.DirectionalLight.html) class.
7. Set the **PositionX**, **PositionY**, and **PositionZ** properties in the [DirectionalLight](/spreadnet/api/latest/online-win/FarPoint.Win.Chart/FarPoint.Win.Chart.DirectionalLight.html) class.
8. Add the light settings to the plot area.
9. Create a chart model and assign the plot area settings to it.
10. Create a chart and assign the chart model to it.

## Example

The following example demonstrates using light colors, direction, and position.

```csharp
FarPoint.Win.Chart.PieSeries series = new FarPoint.Win.Chart.PieSeries();
series.SeriesName = "Series 1";
series.TopBevel = new FarPoint.Win.Chart.CircleBevel(12.0f, 12.0f);
series.BottomBevel = new FarPoint.Win.Chart.CircleBevel(12.0f, 12.0f);
series.Values.Add(1.0);
series.Values.Add(2.0);
series.Values.Add(4.0);
series.Values.Add(8.0);
FarPoint.Win.Chart.PiePlotArea plotArea = new FarPoint.Win.Chart.PiePlotArea();
plotArea.Location = new PointF(0.2f, 0.2f);
plotArea.Size = new SizeF(0.6f, 0.6f);
plotArea.Series.Add(series);
FarPoint.Win.Chart.PositionalLight light0 = new FarPoint.Win.Chart.PositionalLight();
light0.AmbientColor = Color.FromArgb(64, 64, 64);
light0.DiffuseColor = Color.FromArgb(64, 64, 64);
light0.SpecularColor = Color.FromArgb(128, 128, 128);
light0.PositionX = 0.0f;
light0.PositionY = 0.0f;
light0.PositionZ = 100.0f;
FarPoint.Win.Chart.DirectionalLight light1 = new FarPoint.Win.Chart.DirectionalLight();
light1.AmbientColor = Color.FromArgb(64, 64, 64);
light1.DiffuseColor = Color.FromArgb(64, 64, 64);
light1.SpecularColor = Color.FromArgb(128, 128, 128);
light1.DirectionX = 1.0f;
light1.DirectionY = 0.0f;
light1.DirectionZ = 1.0f;
FarPoint.Win.Chart.ChartModel model = new FarPoint.Win.Chart.ChartModel();
model.PlotAreas.Add(plotArea);
model.PlotAreas[0].Lights.Clear();
model.PlotAreas[0].Lights.Add(light0);
model.PlotAreas[0].Lights.Add(light1);
fpChart1.Model = model;
```

```vbnet
Dim series As New FarPoint.Win.Chart.PieSeries()
series.SeriesName = "Series 1"
series.TopBevel = New FarPoint.Win.Chart.CircleBevel(12.0F, 12.0F)
series.BottomBevel = New FarPoint.Win.Chart.CircleBevel(12.0F, 12.0F)
series.Values.Add(1.0)
series.Values.Add(2.0)
series.Values.Add(4.0)
series.Values.Add(8.0)
Dim plotArea As New FarPoint.Win.Chart.PiePlotArea()
plotArea.Location = New PointF(0.2F, 0.2F)
plotArea.Size = New SizeF(0.6F, 0.6F)
plotArea.Series.Add(series)
Dim light0 As New FarPoint.Win.Chart.PositionalLight()
light0.AmbientColor = Color.FromArgb(64, 64, 64)
light0.DiffuseColor = Color.FromArgb(64, 64, 64)
light0.SpecularColor = Color.FromArgb(128, 128, 128)
light0.PositionX = 0.0F
light0.PositionY = 0.0F
light0.PositionZ = 100.0F
Dim light1 As New FarPoint.Win.Chart.DirectionalLight()
light1.AmbientColor = Color.FromArgb(64, 64, 64)
light1.DiffuseColor = Color.FromArgb(64, 64, 64)
light1.SpecularColor = Color.FromArgb(128, 128, 128)
light1.DirectionX = 1.0F
light1.DirectionY = 0.0F
light1.DirectionZ = 1.0F
Dim model As New FarPoint.Win.Chart.ChartModel()
model.PlotAreas.Add(plotArea)
model.PlotAreas(0).Lights.Clear()
model.PlotAreas(0).Lights.Add(light0)
model.PlotAreas(0).Lights.Add(light1)
fpChart1.Model = model
```

## Using the Chart Designer

1. Select the **Plot Areas Collection**.
2. Select the **Light Collection** editor.
3. Set properties as needed.