Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка платформы SceneKit ссылка класса SCNLevelOfDetail

Опции
Развертывание Target:

На этой странице
Язык:

SCNLevelOfDetail

Использовать SCNLevelOfDetail объекты включить автоматическую замену альтернативных уровней детализации для геометрии. Замена сложных геометрий с более простыми альтернативами, когда меньше подробности видимо, улучшает производительность рендеринга.

Вы используете объекты уровня детализации, когда у Вас есть подробная геометрия, появляющаяся в нескольких очевидных размерах в сцене. Например, модель заварного чайника на у левого на рисунке 1 есть 256 многоугольников, модель в центре имеет 1 024 многоугольника, и модель справа имеет 14 400 многоугольников. Если все три модели появляются близко к камере, заполняя большую часть представленного представления, различие подробно между ними ясно видимо — но если они появляются далеко, поднимая небольшую площадь представления, различие намного менее очевидно. Рендеринг конфигураций более высокого разрешения несет более высокие расходы производительности.

Конфигурации рисунка 1Substituting переменных уровней детализации image: ../Art/lod.pdf

Когда Вы связываете один или несколько объектов уровня детализации с a SCNGeometry объект с помощью levelsOfDetail свойство, SceneKit автоматически заменяет альтернативными конфигурациями в надлежащих случаях. Например, две модели заварного чайника более низкого разрешения на рисунке 1 могут быть добавлены как уровни детализации для модели с высокой разрешающей способностью.

Для каждого уровня детализации Вы указываете или расстояние мирового пространства или радиус экранного пространства. Мера, которую Вы указываете, определяет порог, где SceneKit автоматически представляет альтернативную геометрию того уровня детализации вместо исходной геометрии. Когда узел, содержащий геометрию, отодвинут что расстояние от камеры, при указании расстояния альтернативная геометрия появляется. Когда пиксельная область, покрытая представленным геометрией, меньше, чем круг того радиуса, при указании радиуса альтернативная геометрия появляется.

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

Наследование


Оператор импорта


Swift

import SceneKit

Objective C

@import SceneKit;

Доступность


Доступный в OS X v10.9 и позже.
  • Создает уровень детализации с указанной геометрией и пороговым пиксельным радиусом.

    Объявление

    Swift

    convenience init(geometry geometry: SCNGeometry?, screenSpaceRadius radius: CGFloat)

    Objective C

    + (instancetype)levelOfDetailWithGeometry:(SCNGeometry *)geometry screenSpaceRadius:(CGFloat)radius

    Параметры

    geometry

    Геометрия для рендеринга для этого уровня детализации.

    radius

    Максимальный радиус (в пикселях) сферы ограничения геометрии для этого уровня детализации для появления.

    Возвращаемое значение

    Объект уровня детализации. Вы связываете уровни детализации с a SCNGeometry объект с помощью levelsOfDetail свойство.

    Обсуждение

    При рендеринге геометрии со связанными уровнями детализации SceneKit вычисляет радиус в пикселях круга, покрытого сферой ограничения геометрии, затем представляет геометрию для SCNLevelOfDetail объект с самым большим radius параметр, меньший, чем тот круг.

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

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Создает уровень детализации с указанной геометрией и пороговым расстоянием камеры.

    Объявление

    Swift

    convenience init(geometry geometry: SCNGeometry?, worldSpaceDistance distance: CGFloat)

    Objective C

    + (instancetype)levelOfDetailWithGeometry:(SCNGeometry *)geometry worldSpaceDistance:(CGFloat)distance

    Параметры

    geometry

    Геометрия для рендеринга для этого уровня детализации, или nil если SceneKit не должен представлять геометрию в этом уровне детализации.

    distance

    Минимальное расстояние от текущей точки представления для этого уровня детализации для появления.

    Возвращаемое значение

    Объект уровня детализации. Вы связываете уровни детализации с a SCNGeometry объект с помощью levelsOfDetail свойство.

    Обсуждение

    При рендеринге геометрии со связанными уровнями детализации SceneKit вычисляет расстояние от текущей точки представления к родительскому узлу геометрии, затем представляет геометрию для SCNLevelOfDetail объект с самым маленьким distance параметр, больше, чем то расстояние.

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

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Геометрия связалась с этим уровнем детализации. (только для чтения)

    Объявление

    Swift

    var geometry: SCNGeometry? { get }

    Objective C

    @property(readonly) SCNGeometry *geometry

    Обсуждение

    Когда уровень детализации является надлежащим, SceneKit представляет эту геометрию вместо исходной геометрии. Обычно уровни детализации с большим worldSpaceDistance значения или меньший screenSpaceRadius значения должны содержать менее сложные геометрии.

    Если значение этого свойства nil, SceneKit не представляет геометрии в этом уровне детализации.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Максимальный радиус (в пикселях) сферы ограничения геометрии для этого уровня детализации для появления. (только для чтения)

    Объявление

    Swift

    var screenSpaceRadius: CGFloat { get }

    Objective C

    @property(readonly) CGFloat screenSpaceRadius

    Обсуждение

    При рендеринге геометрии со связанными уровнями детализации SceneKit вычисляет радиус в пикселях круга, покрытого сферой ограничения геометрии, затем представляет геометрию для SCNLevelOfDetail объект с самым маленьким radius параметр, больше, чем тот круг.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.

  • Минимальное расстояние от текущей точки представления для этого уровня детализации для появления. (только для чтения)

    Объявление

    Swift

    var worldSpaceDistance: CGFloat { get }

    Objective C

    @property(readonly) CGFloat worldSpaceDistance

    Обсуждение

    При рендеринге геометрии со связанными уровнями детализации SceneKit вычисляет расстояние от текущей точки представления к родительскому узлу геометрии, затем представляет геометрию для SCNLevelOfDetail объект с самым большим distance параметр меньше, чем то расстояние.

    Оператор импорта

    Objective C

    @import SceneKit;

    Swift

    import SceneKit

    Доступность

    Доступный в OS X v10.9 и позже.