SCNLevelOfDetail
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSCoding -
NSCopying -
NSObjectProtocol -
NSSecureCoding -
Печатаемый -
NSCopying -
NSObject -
NSSecureCoding
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в iOS 8.0 и позже.
Использовать SCNLevelOfDetail объекты включить автоматическую замену альтернативных уровней детализации для геометрии. Замена сложных геометрий с более простыми альтернативами, когда меньше подробности видимо, улучшает производительность рендеринга.
Вы используете объекты уровня детализации, когда у Вас есть подробная геометрия, появляющаяся в нескольких очевидных размерах в сцене. Например, модель заварного чайника на у левого на рисунке 1 есть 256 многоугольников, модель в центре имеет 1 024 многоугольника, и модель справа имеет 14 400 многоугольников. Если все три модели появляются близко к камере, заполняя большую часть представленного представления, различие подробно между ними ясно видимо — но если они появляются далеко, поднимая небольшую площадь представления, различие намного менее очевидно. Рендеринг конфигураций более высокого разрешения несет более высокие расходы производительности.
Когда Вы связываете один или несколько объектов уровня детализации с a SCNGeometry объект с помощью levelsOfDetail свойство, SceneKit автоматически заменяет альтернативными конфигурациями в надлежащих случаях. Например, две модели заварного чайника более низкого разрешения на рисунке 1 могут быть добавлены как уровни детализации для модели с высокой разрешающей способностью.
Для каждого уровня детализации Вы указываете или расстояние мирового пространства или радиус экранного пространства. Мера, которую Вы указываете, определяет порог, где SceneKit автоматически представляет альтернативную геометрию того уровня детализации вместо исходной геометрии. Когда узел, содержащий геометрию, отодвинут что расстояние от камеры, при указании расстояния альтернативная геометрия появляется. Когда пиксельная область, покрытая представленным геометрией, меньше, чем круг того радиуса, при указании радиуса альтернативная геометрия появляется.
Конфигурации, связанные с более низкими уровнями детализации, не должны совместно использовать все атрибуты исходной геометрии. Например, можно использовать различные материалы для уровней детализации, только появляющихся когда далеко от камеры, отключая дорогие опции такое освещение согласно пикселю, отражательное отображение или пользовательские программы программы построения теней.
-
Создает уровень детализации с указанной геометрией и пороговым пиксельным радиусом.
Объявление
Swift
convenience init(geometrygeometry: SCNGeometry?, screenSpaceRadiusradius: CGFloat)Objective C
+ (instancetype)levelOfDetailWithGeometry:(SCNGeometry *)geometryscreenSpaceRadius:(CGFloat)radiusПараметры
geometryГеометрия для рендеринга для этого уровня детализации.
radiusМаксимальный радиус (в пикселях) сферы ограничения геометрии для этого уровня детализации для появления.
Возвращаемое значение
Объект уровня детализации. Вы связываете уровни детализации с a
SCNGeometryобъект с помощьюlevelsOfDetailсвойство.Обсуждение
При рендеринге геометрии со связанными уровнями детализации SceneKit вычисляет радиус в пикселях круга, покрытого сферой ограничения геометрии, затем представляет геометрию для
SCNLevelOfDetailобъект с самым большимradiusпараметр, меньший, чем тот круг.Если Вы передаете
nilдля параметра геометрии SceneKit не представляет геометрии для уровня детализации. Создание объекта уровня детализации без геометрии позволяет Вам пропускать затраты рендеринга полностью для объекта, когда это появилось бы очень далеко или очень маленький.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
Создает уровень детализации с указанной геометрией и пороговым расстоянием камеры.
Объявление
Swift
convenience init(geometrygeometry: SCNGeometry?, worldSpaceDistancedistance: CGFloat)Objective C
+ (instancetype)levelOfDetailWithGeometry:(SCNGeometry *)geometryworldSpaceDistance:(CGFloat)distanceПараметры
geometryГеометрия для рендеринга для этого уровня детализации, или
nilесли SceneKit не должен представлять геометрию в этом уровне детализации.distanceМинимальное расстояние от текущей точки представления для этого уровня детализации для появления.
Возвращаемое значение
Объект уровня детализации. Вы связываете уровни детализации с a
SCNGeometryобъект с помощьюlevelsOfDetailсвойство.Обсуждение
При рендеринге геометрии со связанными уровнями детализации SceneKit вычисляет расстояние от текущей точки представления к родительскому узлу геометрии, затем представляет геометрию для
SCNLevelOfDetailобъект с самым маленькимdistanceпараметр, больше, чем то расстояние.Если Вы передаете
nilдля параметра геометрии SceneKit не представляет геометрии для уровня детализации. Создание объекта уровня детализации без геометрии позволяет Вам пропускать затраты рендеринга полностью для объекта, когда это появилось бы очень далеко или очень маленький.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
geometryСвойствоГеометрия связалась с этим уровнем детализации. (только для чтения)
Объявление
Swift
var geometry: SCNGeometry? { get }Objective C
@property(readonly) SCNGeometry *geometryОбсуждение
Когда уровень детализации является надлежащим, SceneKit представляет эту геометрию вместо исходной геометрии. Обычно уровни детализации с большим
worldSpaceDistanceзначения или меньшийscreenSpaceRadiusзначения должны содержать менее сложные геометрии.Если значение этого свойства
nil, SceneKit не представляет геометрии в этом уровне детализации.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
screenSpaceRadiusСвойствоМаксимальный радиус (в пикселях) сферы ограничения геометрии для этого уровня детализации для появления. (только для чтения)
Объявление
Swift
var screenSpaceRadius: CGFloat { get }Objective C
@property(readonly) CGFloat screenSpaceRadiusОбсуждение
При рендеринге геометрии со связанными уровнями детализации SceneKit вычисляет радиус в пикселях круга, покрытого сферой ограничения геометрии, затем представляет геометрию для
SCNLevelOfDetailобъект с самым маленькимradiusпараметр, больше, чем тот круг.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
-
worldSpaceDistanceСвойствоМинимальное расстояние от текущей точки представления для этого уровня детализации для появления. (только для чтения)
Объявление
Swift
var worldSpaceDistance: CGFloat { get }Objective C
@property(readonly) CGFloat worldSpaceDistanceОбсуждение
При рендеринге геометрии со связанными уровнями детализации SceneKit вычисляет расстояние от текущей точки представления к родительскому узлу геометрии, затем представляет геометрию для
SCNLevelOfDetailобъект с самым большимdistanceпараметр меньше, чем то расстояние.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в iOS 8.0 и позже.
