Свет¶
В Graphics3DControl источники света используются для подсветки 3D-моделей. Вы можете использовать освещение по умолчанию или создать собственные источники света для вашей 3D-сцены.
Освещение по умолчанию¶
В Graphics3DControl используется подсветка по умолчанию. Подсветка по умолчанию представляет собой белую точку, подключенную к камере. Ее направление всегда синхронизируется с направлением камеры.
На следующей картинке показан свет, отраженный от металлической плоскости по умолчанию.

Фактический визуальный эффект любого источника света определяется материалами , применяемыми к 3D-моделям.
Связанные опции¶
- 
Graphics3DControl.AllowDefaultLight(значение по умолчанию —true) - Установите для этого свойства значениеfalse, чтобы принудительно отключить освещение по умолчанию.Когда вы создаете пользовательские источники света, освещение по умолчанию автоматически отключается. 
Настраиваемые источники света¶
Чтобы добавить пользовательские источники света в 3D-сцену, создайте источники света и добавьте их в коллекцию Graphics3DControl.Lights. Вы также можете использовать свойства Graphics3DControl.LightsSource и Graphics3DControl.LightTemplate для добавления пользовательских источников света в соответствии с шаблоном проектирования MVVM.
Graphics3DControl поддерживает следующие типы источников света:
- Точечный светильник (PointLight)
- Направленный свет (DirectionalLight)
- Точечный светильник для камеры (CameraPointLight)
- Направленный свет, связанный с камерой (CameraDirectionalLight)
Все эти источники света имеют одного предка - абстрактный класс Light.
Точечный свет¶
Излучает во все стороны (как лампочка накаливания).
Класс¶
PointLight
Свойства¶
- Color— Цвет источника света.
- Position— позиция источника света.
- Radius— Радиус излучателя света.
Пример¶
В следующем примере создается точечный светильник кораллового цвета. На картинке ниже показан этот свет, отраженный от металлической плоскости и сферы.

<mx3d:Graphics3DControl.Lights>
    <mx3d:PointLight Color="{Binding MyLightColor}" Position="{Binding MyLightPosition}" Radius="10"/>
</mx3d:Graphics3DControl.Lights>
PointLight myLight = new PointLight();
myLight.Color = Avalonia.Media.Colors.Coral;
myLight.Position = new Vector3(0, 50, 0);
myLight.Radius = 10;
g3DControl.Lights.Add(myLight);
Направленный свет¶
Испускает параллельные лучи в заданном направлении, имитируя отдаленное освещение (например, солнечный свет).
Класс¶
DirectionalLight
Свойства¶
- Color— Цвет источника света.
- Direction— Вектор, задающий направление световых лучей.
Пример¶
В следующем примере добавлен направленный источник света, направленный в направлении отрицательной оси Y. На картинке ниже показан этот свет, отраженный от металлической плоскости и сферы.

<mx3d:Graphics3DControl.Lights>
    <mx3d:DirectionalLight Color="{Binding MyLightColor}" Direction="{Binding MyLightDirection}"/>
</mx3d:Graphics3DControl.Lights>
using Eremex.AvaloniaUI.Controls3D;
DirectionalLight myLight = new DirectionalLight();
myLight.Direction = new System.Numerics.Vector3(0, -1, 0);
myLight.Color = Avalonia.Media.Colors.Coral;
g3DControl.Lights.Add(myLight);
Точечный свет, связанный с камерой¶
Точечный свет, излучаемый камерой. Позиция и направление этого источника света синхронизируются с таковыми камеры.
Класс¶
CameraPointLight
Свойства¶
- Color— Цвет источника света.
- Radius— Радиус излучателя света.
Пример¶
В следующем примере создается точечный источник света, связанный с камерой. На картинке ниже показан этот свет, отраженный от металлической плоскости и сферы.

<mx3d:Graphics3DControl.Lights>
    <mx3d:CameraPointLight Color="{Binding MyLightColor}" Radius="10"/>
</mx3d:Graphics3DControl.Lights>
using Eremex.AvaloniaUI.Controls3D;
CameraPointLight myLight = new CameraPointLight();
myLight.Radius = 10;
myLight.Color = Avalonia.Media.Colors.Coral;
g3DControl.Lights.Add(myLight);
Направленный свет, связанный с камерой¶
Испускает параллельные лучи в направлении камеры, имитируя отдаленное освещение (например, солнечный свет).
Класс¶
CameraDirectionalLight
Свойства¶
- Color— Цвет источника света.
Пример¶
В следующем примере создается направленный источник света, связанный с камерой. На картинке ниже показан этот свет, отраженный от металлической плоскости и сферы.

<mx3d:Graphics3DControl.Lights>
    <mx3d:CameraDirectionalLight Color="{Binding MyLightColor}"/>
</mx3d:Graphics3DControl.Lights>
using Eremex.AvaloniaUI.Controls3D;
CameraDirectionalLight myLight = new CameraDirectionalLight();
myLight.Color = Avalonia.Media.Colors.Coral;
g3DControl.Lights.Add(myLight);
* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.