SCNShape объект является геометрией, создающей ее содержание из двумерного пути, дополнительно вытесненного для создания трехмерного объекта.
SceneKit создает трехмерную геометрию путем вытеснения пути Bézier, расширяющегося в x-и направлениях оси y ее пространства локальной координаты вдоль оси z указанной суммой. Например, если Вы создаете форму с глубиной экструзии 1.0, это расширяется от -0.5 к 0.5 вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму — геометрия ограничена плоскостью, z-координата которой 0.0, и просматриваемый только от его передней стороны, если его материал doubleSided свойство YEStrue.
Геометрия формы может содержать между одним и пятью элементами геометрии:
Если extrusionDepth свойство 0.0, геометрия формы имеет один элемент, соответствующий его видимая сторона.
Если его глубина экструзии больше, чем нуль и его chamferRadius свойство 0.0, геометрия формы имеет три элемента, соответствуя ее передней стороне, назад, и вытесненным сторонам.
Если и глубина экструзии и радиус закругления кромок больше, чем нуль, текстовая геометрия может иметь четыре или пять элементов в зависимости от chamferMode свойство, соответствуя его передней стороне, назад, вытеснило стороны, переднее закругление кромок и заднее закругление кромок.
SceneKit может представить каждый элемент с помощью различного материала. Для получения дополнительной информации см. описание materials свойство в Ссылке класса SCNGeometry.
SceneKit определяет область заливки пути с помощью ровно-нечетного вьющегося правила (см. Вьющиеся Правила в Руководстве по Рисованию Какао), и вытесняет эту область для создания трехмерной геометрии. Результат вытеснения самопересекающегося пути не определен.
Вытесненная форма центрируется в нулевой точке ее оси z. Например, глубина экструзии 1.0 создает форму, расширяющуюся от -0.5 к 0.5 вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму.
Плоскость пути (см. setFlatness: в Ссылке класса NSBezierPath), определяет уровень детализации использование SceneKit в создании трехмерной формы от пути. Большая плоскость оценивает результаты в меньшем количестве многоугольников для рендеринга, увеличивая производительность и меньшую плоскость повышения стоимости гладкость кривых по стоимости для производительности.
Вытесненная форма центрируется в нулевой точке ее оси z. Например, глубина экструзии 1.0 создает форму, расширяющуюся от -0.5 к 0.5 вдоль оси z. Глубина экструзии нуля создает плоскую, одностороннюю форму.
SceneKit определяет область заливки пути с помощью ровно-нечетного вьющегося правила (см. Вьющиеся Правила в Руководстве по Рисованию Какао), и вытесняет эту область для создания трехмерной геометрии. Результат вытеснения самопересекающегося пути не определен.
Плоскость пути (см. setFlatness: в Ссылке класса NSBezierPath), определяет уровень детализации использование SceneKit в создании трехмерной формы от пути — большее значение плоскости приводит к меньшему количеству многоугольников для рендеринга, увеличивая производительность.
Значение этого свойства должно быть двумерным путем, запускающимся в точке {1, 0} и окончание в точке {0, 1}, определение контура формы вдоль ее вытесненных сторон, как проиллюстрировано на рисунке 1. Если значение этого свойства nil и значение chamferRadius свойство больше, чем нуль, SceneKit использует профиль закругления кромок в форме круга четверти, показанного на рисунке 2 и рисунке 3.
Значение по умолчанию нуля не указывает закругления кромок (вытесненный конец сторон под прямым углом передней и задней части формы). Позволенные значения колеблются от нуля до половины глубины экструзии. (В максимальном радиусе закругления кромок заканчивается переднее закругление кромок, где заднее закругление кромок начинается, как показано справа на рисунке 2.)