Skip to content

Свет

В Graphics3DControl источники света используются для подсветки 3D-моделей. Вы можете использовать освещение по умолчанию или создать собственные источники света для вашей 3D-сцены.

Освещение по умолчанию

В Graphics3DControl используется подсветка по умолчанию. Подсветка по умолчанию представляет собой белую точку, подключенную к камере. Ее направление всегда синхронизируется с направлением камеры.

На следующей картинке показан свет, отраженный от металлической плоскости по умолчанию.

g3dControl-default-light

Фактический визуальный эффект любого источника света определяется материалами , применяемыми к 3D-моделям.

Связанные опции

  • Graphics3DControl.AllowDefaultLight (значение по умолчанию — true) - Установите для этого свойства значение false, чтобы принудительно отключить освещение по умолчанию.

    Когда вы создаете пользовательские источники света, освещение по умолчанию автоматически отключается.

Настраиваемые источники света

Чтобы добавить пользовательские источники света в 3D-сцену, создайте источники света и добавьте их в коллекцию Graphics3DControl.Lights. Вы также можете использовать свойства Graphics3DControl.LightsSource и Graphics3DControl.LightTemplate для добавления пользовательских источников света в соответствии с шаблоном проектирования MVVM.

Graphics3DControl поддерживает следующие типы источников света:

  • Точечный светильник (PointLight)
  • Направленный свет (DirectionalLight)
  • Точечный светильник для камеры (CameraPointLight)
  • Направленный свет, связанный с камерой (CameraDirectionalLight)

Все эти источники света имеют одного предка - абстрактный класс Light.

Точечный свет

Излучает во все стороны (как лампочка накаливания).

Класс

PointLight

Свойства

  • Color — Цвет источника света.
  • Position — позиция источника света.
  • Radius — Радиус излучателя света.

Пример

В следующем примере создается точечный светильник кораллового цвета. На картинке ниже показан этот свет, отраженный от металлической плоскости и сферы.

g3dControl-point-light-coral-example

<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. На картинке ниже показан этот свет, отраженный от металлической плоскости и сферы.

g3dControl-directional-light-coral-example

<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 — Радиус излучателя света.

Пример

В следующем примере создается точечный источник света, связанный с камерой. На картинке ниже показан этот свет, отраженный от металлической плоскости и сферы.

g3dControl-camera-point-light-coral-example

<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 — Цвет источника света.

Пример

В следующем примере создается направленный источник света, связанный с камерой. На картинке ниже показан этот свет, отраженный от металлической плоскости и сферы.

g3dControl-camera-directional-light-coral-example

<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);



* Эта страница была создана автоматически с помощью сервиса машинного перевода Яндекс Переводчик.