Marius дал мне намек, что MDLLight
класс является абстрактным классом для объектов, описывающих источники света в сцене. Когда вы загружаете огни из файла активов с использованием класса MDLAsset
или создаете огни при создании актива для экспорта, вы используете один или несколько конкретных подклассов MDLPhysicallyPlausibleLight
, MDLAreaLight
, MDLPhotometricLight
или MDLLightProbe
.
... и MDLLightType
является Перечень, который имеет варианты формы и стиля освещения, предоставленной свет, используемый свойством lightType:
case unknown = 0
0. Тип света неизвестно или не было инициализировано.
case ambient = 1
1. Источник света должен освещать сцену равномерно независимо от положения или направления.
case directional = 2
2. Источник света освещает сцену из однородного направления независимо от положения.
case spot = 3
3. Источник света освещает сцену из определенного положения и направления.
case point = 4
4. Источник света освещает сцену во всех направлениях от определенного положения.
case linear = 5
5. Источник света освещает сцену во всех направлениях от области в форме линии.
case discArea = 6
6. Источник света освещает сцену во всех направлениях от области в форме диска.
7. Источник света освещает сцену во всех направлениях от области в форме прямоугольника.
case superElliptical = 8
8. Источник света освещает сцену во всех направлениях от области в форме прямоугольника.
case photometric = 9
9. Освещение от света определяется фотометрическим профилем.
case probe = 10
10. Освещение от света определяется изображениями текстуры, представляющими образец сцены в определенной точке.
case environment = 11
11. Освещение от света определяется изображениями текстур, представляющими образец окружающей среды для сцены.
Это выдержки из Справочника API Apple Metal.
MDLPhysicallyPlausibleLight
MDLPhysicallyPlausibleLight
объекта описывает источник света для использования в модели затенения на основе реальной физики.
MDLAreaLight
MDLAreaLight
объекта представляет собой источник света, который освещает 3D сцены не из одной точки или направлений, но из зоны с определенной формой. Форма луча области представляет собой двумерную фигуру в плоскости xy локального координатного пространства света, а ее освещение направлено в направлении отрицательной оси z (распространяясь из этого направления в соответствии с унаследованными свойствами innerConeAngle и outerConeAngle).

MDLPhotometricLight
MDLPhotometricLight
объект представляет собой источник света, форма, направление и интенсивность освещения определяется фотометрическим профилем. Вы создаете фотометрический свет из файла в формате IES, содержащий физические измерения источника света. Многие производители светильников реального мира публикуют такие файлы, описывающие характеристики освещения своих продуктов. Данные фотометрии измеряют световое полотно, окружающее источник света, - измерения интенсивности света во всех направлениях вокруг источника.

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

MetalKit легко взаимодействует с каркасом ввода-вывода модели. Модель ввода/вывода имеет класс MDLLight, который можно использовать для создания этих типов света. developer.apple.com/reference/modelio/mdllight – Marius
@Marius Thanx много. – andy
ModelIO не поможет вам для легкого рендеринга - он в некоторой степени совместим с металлом, но в основном для таких вещей, как создание удобных буферов из данных модели. –