SceneKit Пространство имен
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены.
Классы
_SCNShaderModifiers |
Словарь фрагментов шейдеров. |
SCNAccelerationConstraint |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNAction |
Выполняет действия с SCNNode, включая изменения внешнего вида, геометрии, анимации или произвольных функций. |
SCNActionable |
Позволяет применять действия. |
SCNActionable_Extensions |
Методы расширения интерфейса ISCNActionable для поддержки всех методов из SCNActionable протокола. |
SCNAnimatable |
Позволяет применять анимации. |
SCNAnimatable_Extensions |
Методы расширения интерфейса ISCNAnimatable для поддержки всех методов из SCNAnimatable протокола. |
SCNAnimatableExtensions |
Методы расширения для ISCNAnimatable. |
SCNAnimation |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNAnimationEvent |
Выполняет функцию в определенное время во время анимации. |
SCNAnimationPlayer |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNAudioPlayer |
SCNAudioSource Содержит или AVAudioNode для использования с позициональным звуком. |
SCNAudioSource |
Многократно используемый источник звука для позиционного звука в сценах SceneKit. |
SCNAvoidOccluderConstraint |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNAvoidOccluderConstraintDelegate |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNAvoidOccluderConstraintDelegate_Extensions |
Методы расширения интерфейса ISCNAvoidOccluderConstraintDelegate для поддержки всех методов из SCNAvoidOccluderConstraintDelegate протокола. |
SCNBillboardConstraint |
Автоматически ограничивает SCNNode объект , чтобы он всегда указывал на текущий узел отрисовки. |
SCNBoundingVolume |
Функции, определяющие том в трехмерном пространстве. |
SCNBox |
Объект , SCNGeometry лица которого являются прямоугольниками. |
SCNCamera |
Указывает камеру с такими атрибутами, как поле обзора и глубина обзора. |
SCNCameraController |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNCameraControllerDelegate |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNCameraControllerDelegate_Extensions |
Методы расширения интерфейса ISCNCameraControllerDelegate для поддержки всех методов из SCNCameraControllerDelegate протокола. |
SCNCapsule |
Объект , SCNGeometry представляющий собой цилиндр с концевыми концами. |
SCNCone |
Объект SCNGeometry , представляющий собой круглый frustum. Или, шапка на вечеринке. |
SCNConstraint |
Автоматически настраивает преобразование узла. |
SCNCylinder |
Объект SCNGeometry , представляющий собой правый круговой цилиндр. |
SCNDistanceConstraint |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNErrorCodeExtensions |
Методы расширения для перечисления SceneKit.SCNErrorCode. |
SCNFloor |
Объект SCNGeometry , который является бесконечной плоскостью. |
SCNGeometry |
Базовый класс для геометрических объектов SceneKit |
SCNGeometryElement |
Объединяет сведения о вершинах и примитиве рисования. Сопоставляется с одной командой рисования, отправленной в GPU. |
SCNGeometrySource |
Предоставляет данные вершин, которые в сочетании с SCNGeometryElements определяют трехмерный объект. |
SCNGeometrySourceSemantic |
Перечисляет атрибуты режима вершин. |
SCNGeometryTessellator |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNHitTest |
Константы для использования с аргументом |
SCNHitTestOptions |
Параметры конфигурации для проверки попадания в SCNNode и SCNSceneRenderer |
SCNHitTestResult |
Сведения о SCNNode (при наличии), расположенном в определенной точке или вдоль луча. |
SCNIKConstraint |
Объект SCNConstraint , который применяет обратную кинематику. |
SCNJavaScript |
Статический класс, содержащий метод для экспорта модулей JavaScript. |
SCNLayer |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNLevelOfDetail |
Управляет альтернативными геометрическими элементами, отображаемыми на пороговых значениях в мировом или экранном пространстве. |
SCNLight |
Источник света, используемый для всех типов SCNLightType. |
SCNLightAttribute |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNLightingModel |
Константы для использования со свойством P:SceneKit.SCNMaterial.LightingModel , которое определяет, каким образом свет и материалы объединяются для получения определенного отображаемого цвета. |
SCNLightType |
Перечисляет типы SCNLight. |
SCNLookAtConstraint |
Объект SCNConstraint , ориентирующий узел для указания на другой узел. |
SCNMaterial |
Задает характеристики освещения и заливки поверхности SCNGeometry. |
SCNMaterialProperty |
Настраивает различные свойства (например, цвет и текстуру) объекта SCNMaterial. |
SCNMorpher |
Анимированное преобразование SCNGeometry в один или несколько целевых объектов SCNGeometry. |
SCNNode |
Узел в графе сцены. |
SCNNodeRendererDelegate |
Интерфейс, определяющий функции объекта делегата для добавления пользовательского кода рисования OpenGL. |
SCNNodeRendererDelegate_Extensions |
Методы расширения интерфейса ISCNNodeRendererDelegate для поддержки всех методов из SCNNodeRendererDelegate протокола. |
SCNParticleProperty |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNParticlePropertyController |
Анимирует свойство частиц, испускаемых SCNParticleSystem. |
SCNParticleSystem |
Создает небольшие спрайты, поведение которых определяется разработчиком. |
SCNPhysicsBallSocketJoint |
SCNPhysicsBehavior, который позволяет двум объектам SCNPhysicsBody сворачивать друг на друга. |
SCNPhysicsBehavior |
Управляет поведением одного или нескольких объектов SCNPhysicsBody. |
SCNPhysicsBody |
Добавляет физическую имитацию в SCNNode. |
SCNPhysicsConeTwistJoint |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNPhysicsContact |
Как два объекта SCNPhysicsBody соприкасаются друг с другом. |
SCNPhysicsContactDelegate |
Делегируйте функции объектов, реагируя на касания между SCNPhysicsBody объектами. |
SCNPhysicsContactDelegate_Extensions |
Методы расширения интерфейса ISCNPhysicsContactDelegate для поддержки всех методов из SCNPhysicsContactDelegate протокола. |
SCNPhysicsContactEventArgs |
Предоставляет данные для DidUpdateContactсобытий E:SceneKit.SCNPhysicsContactEventArgs.DidEndContact и E:SceneKit.SCNPhysicsContactEventArgs.DidUpdateContactContact. |
SCNPhysicsField |
Применяет силы ко всем объектам SCNPhysicsBody в заданном томе. |
SCNPhysicsHingeJoint |
SCNPhysicsBehavior, который присоединяет два объекта SCNPhysicsBody вдоль одной оси. |
SCNPhysicsShape |
Сплошной том для SCNPhysicsBody. Используется при обнаружении конфликтов. |
SCNPhysicsShapeOptions |
Допустимые ключи для словаря, используемого |
SCNPhysicsShapeOptionsKeys |
Определяет допустимые ключи для использования со |
SCNPhysicsShapeOptionsTypes |
Геометрический тип, связанный с SCNPhysicsShape. |
SCNPhysicsSliderJoint |
SCNPhysicsBehavior, который соединяет два объекта SCNPhysicsBody, позволяя им скользить и поворачивать вокруг своих соединительных точек. |
SCNPhysicsTest |
Допустимые параметры для использования с M:SceneKit.SCNPhysicsWorld.ContactTest*. |
SCNPhysicsTestKeys |
Содержит значения, управляющие поиском, отбрасыванием лицом и тестированием конфликтов. |
SCNPhysicsTestSearchModeKeys |
Перечисляет значения, управляющие возвращаемыми результатами поиска конфликтов. |
SCNPhysicsVehicle |
SCNPhysicsBehavior, имитирующий физику колесного транспортного средства. |
SCNPhysicsVehicleWheel |
Внешний вид и физические характеристики колеса на SCNPhysicsVehicle. |
SCNPhysicsWorld |
Моделирование физики, которое моделирует столкновения и другие свойства, связанные с физикой, в SCNScene. |
SCNPlane |
Объект SCNGeometry , представляющий собой прямоугольную односторонней конечной плоскости. |
SCNProgram |
Выполняет пользовательскую отрисовку с помощью шейдеров, написанных на языке заливки OpenGL. |
SCNProgramDelegate |
Делегат объекта для объектов SCNProgram. |
SCNProgramDelegate_Extensions |
Методы расширения интерфейса ISCNProgramDelegate для поддержки всех методов из SCNProgramDelegate протокола. |
SCNProgramSemanticOptions |
Определяет для MappingChannel использования с SetSemantic(NSString, String, SCNProgramSemanticOptions). |
SCNPropertyControllers |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNPyramid |
Объект SCNGeometry , представляющий собой правую прямоугольную пирамиду. |
SCNReferenceNode |
Объект , SCNNode который загружает свое содержимое из файла сцены. |
SCNRenderer |
Преобразует SCNScene в контекст OpenGL. |
SCNRenderingArguments |
Определяет ключи для использования с Render(SCNNode, SCNRenderer, NSDictionary) и SetSemantic(NSString, String, SCNProgramSemanticOptions). |
SCNRenderingOptions |
Объект DictionaryContainer , определяющий |
SCNReplicatorConstraint |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNScene |
Описание трехмерной сцены самого высокого уровня. |
SCNSceneExportDelegate |
Протокол, определяющий методы для обработки экспорта сцены в файл. |
SCNSceneExportDelegate_Extensions |
Методы расширения интерфейса ISCNSceneExportDelegate для поддержки всех методов из SCNSceneExportDelegate протокола. |
SCNSceneLoadingOptions |
Параметры загрузки сцены. |
SCNSceneRenderer |
Класс ISCNSceneRenderer реализации интерфейса. |
SCNSceneRenderer_Extensions |
Методы расширения интерфейса ISCNSceneRenderer для поддержки всех методов из SCNSceneRenderer протокола. |
SCNSceneRendererDelegate |
Объект Delegate для класса SCNRenderer определяет методы, отражающие события отрисовки. |
SCNSceneRendererDelegate_Extensions |
Методы расширения интерфейса ISCNSceneRendererDelegate для поддержки всех методов из SCNSceneRendererDelegate протокола. |
SCNSceneSource |
Считывает определяющие сцену данные из файла или объекта NSData. |
SCNSceneSourceLoadErrors |
Перечисляет типы ошибок, которые могут возникать при загрузке SCNSceneSourceобъектов . |
SCNSceneSourceLoading |
Параметры создания и загрузки объектов SCNScene. |
SCNSceneSourceProperties |
Ключи метаданных, связанные с файлом сцены. Используется с GetProperty(NSString). |
SCNShadable |
Реализация метода ISCNShadable. |
SCNShadable_Extensions |
Методы расширения интерфейса ISCNShadable для поддержки всех методов из SCNShadable протокола. |
SCNShaderModifiers |
Объект , DictionaryContainer содержащий параметры для шейдеров. |
SCNShape |
Объект , SCNGeometry созданный из двухмерного пути, при необходимости экструдированный в три измерения. |
SCNSkinner |
Обращается к графу сцены для поддержки скелетной анимации. |
SCNSliderConstraint |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNSphere |
Объект SCNGeometry , который является сферой. |
SCNTechnique |
Предоставляет дополнительные проходы рисования, каждый из которых применяет шейдер. |
SCNTechniqueSupport |
ISCNTechniqueSupport Реализация , которая просто содержит ссылку на SCNTechnique. |
SCNText |
Объект SCNGeometry , основанный на строке, при необходимости выдавленной в три измерения. |
SCNTimingFunction |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNTorus |
Объект SCNGeometry , представляющий собой кольцевую сплошную форму. |
SCNTransaction |
Разрешает атомарное применение набора изменений. |
SCNTransformConstraint |
Объект , SCNConstraint который выполняет функцию, указывающую изменение преобразования (положение, поворот и масштабирование) в узел или узлы. |
SCNTube |
Объект SCNGeometry , представляющий собой цилиндр с отверстием вдоль центральной оси. |
SCNView | |
SCNView.SCNViewAppearance |
Класс appearance для объектов типа SCNView. |
Структуры
SCNMatrix4 |
Матрица 4x4. |
SCNQuaternion |
Представляет кватернион и содержит методы, которые работают с ними. |
SCNVector3 |
3-компонентный вектор. |
SCNVector4 |
Вектор из 4 компонентов. |
Интерфейсы
ISCNActionable |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNActionable. |
ISCNAnimatable |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNAnimatable. |
ISCNAnimationProtocol |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
ISCNAvoidOccluderConstraintDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNAvoidOccluderConstraintDelegate. |
ISCNBoundingVolume |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNBoundingVolume. |
ISCNBufferStream |
Интерфейс для управления металлическим буфером пользовательского шейдера. |
ISCNCameraControlConfiguration |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
ISCNCameraControllerDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNCameraControllerDelegate. |
ISCNNodeRendererDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNNodeRendererDelegate. |
ISCNPhysicsContactDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNPhysicsContactDelegate. |
ISCNProgramDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNProgramDelegate. |
ISCNSceneExportDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNSceneExportDelegate. |
ISCNSceneRenderer |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNSceneRenderer. |
ISCNSceneRendererDelegate |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNSceneRendererDelegate. |
ISCNShadable |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNShadable. |
ISCNTechniqueSupport |
Интерфейс, представляющий обязательные методы (если таковые есть) протокола SCNTechniqueSupport. |
Перечисления
SCNActionTimingMode |
Перечисляет кривые скорости для использования с SCNAction объектами . |
SCNAnimationImportPolicy |
Перечисляет политики импорта анимации. |
SCNAntialiasingMode |
Перечисляет значения, управляющие поведением сглаживания. |
SCNBillboardAxis |
Перечисление блокировок осей, доступных узлам с ограничением SCNBillboardConstraint. |
SCNBlendMode |
Перечисление способов, которыми SceneKit может смешивать цвета из материала с цветами, которые уже существуют в целевом объекте отрисовки. |
SCNBufferFrequency |
Перечисляет значения, определяющие, вызываются ли обработчики для каждого кадра, узла на кадр или узла на кадр для затеняемого отрисовываемого элемента. |
SCNCameraProjectionDirection |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNChamferMode |
Перечисляет способы сцепки с передней SCNShape , задней или обеих сторон. |
SCNColorMask |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNCullMode |
Перечисление, определяющее, какие грани поверхности SCNMaterial отрисовываются. |
SCNDebugOptions |
Перечисляет параметры наложения отладки. |
SCNErrorCode |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNFillMode |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNFilterMode |
Перечисление режимов фильтрации текстур. |
SCNGeometryPrimitiveType |
Перечисление двухмерных геометрических примитивов. |
SCNGeometrySourceSemantics |
Перечисляет семантику для геометрических данных. |
SCNHitTestSearchMode |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNInteractionMode |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNMorpherCalculationMode |
Перечисление допустимых формул интерполяции для CalculationMode. |
SCNMovabilityHint |
Перечисляет значения, которые сообщают SceneKit, должны ли узлы перемещаться с течением времени. |
SCNNodeFocusBehavior |
Перечисляет состояния, доступные для фокусировки .SCNNode |
SCNParticleBirthDirection |
Перечисляет начальное направление частиц, испускаемых .SCNParticleSystem |
SCNParticleBirthLocation |
Перечисление исходного расположения частиц, испускаемых .SCNParticleSystem |
SCNParticleBlendMode |
Перечисление способов отрисовки перекрывающихся частиц, испускаемых элементом SCNParticleSystem . |
SCNParticleEvent |
Перечисление событий жизненного цикла для частиц, испускаемых .SCNParticleSystem Используется с HandleEvent(SCNParticleEvent, NSString[], SCNParticleEventHandler). |
SCNParticleImageSequenceAnimationMode |
Перечисление режимов воспроизведения для SCNParticleSystemобъектов , частицы которых отображаются в виде последовательности изображений. |
SCNParticleInputMode |
Перечисляет, как анимируется свойство частицы (в течение времени существования частицы, когда частица перемещается на расстояние или на основе другого свойства). Используется с InputMode. |
SCNParticleModifierStage |
Перечисляет моменты применения модификатора, указанного в AddModifier(NSString[], SCNParticleModifierStage, SCNParticleModifierHandler) . |
SCNParticleOrientationMode |
Перечисляет выравнивание частиц, излучаемых SCNParticleSystem. Используется с OrientationMode. |
SCNParticleSortingMode |
Перечисление, указывающее порядок отрисовки частиц, испускаемых T:SceneKit.SCNParticleScene . |
SCNPhysicsBodyType |
Перечисление, указывающее, является ли объект динамическим SCNPhysicsBody , кинематичным или статическим. Используется с CreateBody(SCNPhysicsBodyType, SCNPhysicsShape). |
SCNPhysicsCollisionCategory |
Значения по умолчанию для свойств конфликтов объекта SCNPhysicsBody. |
SCNPhysicsFieldScope |
Перечисляет значения, указывающие, влияет ли SCNPhysicsField объект на объекты внутри или за пределами своей границы. |
SCNPhysicsSearchMode |
Перечисляет значения, управляющие возвращаемыми результатами поиска по физике. |
SCNPhysicsShapeType |
Перечисление категорий для SCNPhysicsShapeобъектов . |
SCNReferenceLoadingPolicy |
Перечисляет возможные политики загрузки для SCNReferenceNode объектов . |
SCNRenderingApi |
Перечисляет значения, обозначающие API Metal или OpenGLES2. |
SCNSceneSourceStatus |
Перечисляет состояния SCNSceneSource. |
SCNShadowMode |
Перечисление управляет вычислением теней. |
SCNTessellationSmoothingMode |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNTransparencyMode |
Перечисляет методы вычисления прозрачности. |
SCNWrapMode |
Перечисляет методы упаковки текстур. |
Делегаты
SCNActionNodeWithElapsedTimeHandler |
Обработчик завершения, используемый с CustomAction(Double, SCNActionNodeWithElapsedTimeHandler). |
SCNAnimationDidStartHandler |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNAnimationDidStopHandler |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNAnimationEventHandler |
Обработчик завершения для использования с Create(nfloat, SCNAnimationEventHandler). |
SCNBindingHandler |
Обработчик завершения, используемый с HandleBinding(String, SCNBindingHandler). |
SCNBufferBindingHandler |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNFieldForceEvaluator |
Делегат для CustomField(SCNFieldForceEvaluator) метода . |
SCNNodeHandler |
Пространство имен SceneKit предоставляет высокоуровневую трехмерную графику на основе графа сцены. |
SCNNodePredicate |
Делегат для использования с EnumerateChildNodes(SCNNodePredicate). |
SCNParticleEventHandler |
Обработчик завершения для использования с HandleEvent(SCNParticleEvent, NSString[], SCNParticleEventHandler). |
SCNParticleModifierHandler |
Делегат, используемый в качестве в |
SCNSceneExportProgressHandler |
Обработчик продолжения, который SceneKit неоднократно вызывает при экспорте сцены. |
SCNSceneSourceFilter |
Делегирование, проверяющее объекты в сцене на включение. |
SCNSceneSourceStatusHandler |
Обратный вызов, используемый для отражения хода выполнения во время выполнения SceneFromOptions(SCNSceneLoadingOptions, SCNSceneSourceStatusHandler). |
SCNTransformConstraintHandler |
Делегат, используемый в вызовах .Create(Boolean, SCNTransformConstraintHandler) |
Комментарии
Набор сцен — это платформа для трехмерной графики, основанная на иерархических графах сцен.
Основными классами в Scene Kit являются , в котором хранится SCNSceneвсе содержимое, и T:CoreGraphics.SceneKit.SCNView, UIView который отрисовывает SCNScene.
Имеет SCNSceneRootNode свойство типа SCNNode. SCNNodeВ 's есть P:SceneKit.SCNode.ChildNodes и реализованы System.Collections.Generic.IEnumerable`1<class MonoTouch.SceneKit.SCNNode>
. Свойства включают Camera, с типом SCNCamera, Geometry, с типом SCNGeometryи Light, с типом SCNLight.SCNNode
Кроме того, каждый SCNNode имеет Position свойство, определяющее расположение в пространстве относительно ParentNodeSCNNodeобъектов P:SceneKit.SCNode.FirstMaterial и P:SceneKit.SCNode.Materials, создающих внешний SCNNodeвид.
В следующем примере показано минимальное представление набора сцен:
public MySceneView (RectangleF frame) : base(frame)
{
BackgroundColor = UIColor.Blue;
this.Scene = new SCNScene ();
var material = new SCNMaterial ();
material.Diffuse.Contents = UIImage.FromFile("textureX.png");
material.Specular.Contents = UIColor.Gray;
material.LocksAmbientWithDiffuse = true;
Scene.RootNode.Geometry = new SCNBox {
Width = 1,
Height = 1,
Length = 1,
ChamferRadius = 0.2f,
FirstMaterial = material
};
Scene.RootNode.Light = new SCNLight {
LightType = SCNLightType.Ambient,
Color = UIColor.Gray,
};
var camera = new SCNCamera ();
var cameraNode = new SCNNode () {
Camera = camera,
Position = new SCNVector3 (3, 3, 3),
Constraints = new SCNConstraint[] { SCNLookAtConstraint.Create(Scene.RootNode) }
};
Scene.RootNode.AddChildNode (cameraNode);
}
Geometry
Вся геометрия в SceneKit описывается подклассами SCNGeometry:
SCNCapsule | Капсула в форме таблетки с регулируемыми концевыми крышками | |
SCNCone | Конус, вершина которого может быть усечена | |
SCNBox | Прямоугольная рамка. | |
SCNCylinder | Цилиндр. | |
SCNFloor | Бесконечная плоскость с возможностью отражения геометрии над ней. | |
SCNPlane | Односторонний прямоугольник. | |
SCNPyramid | Тетраэдр. | |
SCNShape | Двухмерная фигура, которая была экструдирована в трехмерное измерение. | |
SCNSphere | Мяч. | |
SCNText | Экструдированный текст. | |
SCNTorus | Фигура пончик. | |
SCNTube | Незачеркнутый цилиндр. |
Кроме того, SceneKit может загружать целые сцены из . DAE-файлы с методом FromFile .
Наконец, разработчики могут создавать пользовательские геометрические объекты с помощью метода M:SceneKit.SCNGeometry.Create(SceneKit.SCNGeometrySource[], SceneKit.SCNGeometryElement[]* с массивами соответствующих SCNGeometrySource объектов и SCNGeometryElement . Ниже показано создание пользовательской пирамиды.
//Lower-left
var a = new SCNVector3(-1, -1, 0);
//Upper-right
var b = new SCNVector3(1, 1, 0);
var halfX = (c.X + a.X) / 2;
var halfY = (c.Y + a.Y) / 2;
var halfZ = (c.Z + a.Z) / 2;
var b = new SCNVector3(a.X, c.Y, halfZ);
var d = new SCNVector3(c.X, a.Y, halfZ);
//Elevate the midpoint so that it's clearly a pyramid
var midPoint = new SCNVector3(halfX, halfY, halfZ + 1.0);
//The vertices of the geometry
var locs = new [] {
a, b, c, d, midPoint
};
var locSource = SCNGeometrySource.FromVertices(locs);
//Note that this relies on the ordering of locs above
//and it defines triangles (could be triangle strips, etc.)
var indices = new [] {
//Triangles are defined counter-clockwise!
4, 1, 0,
1, 4, 2,
2, 4, 3,
3, 4, 0
};
var idxArray = new byte[indices.Length][];
for(int i = 0; i < idxArray.Length; i++)
{
idxArray[i] = BitConverter.GetBytes(indices[i]);
}
var idxData = NSData.FromArray(idxArray.SelectMany(id => id).ToArray());
//Note that this relies on indices defining triangles
var element = SCNGeometryElement.FromData(idxData, SCNGeometryPrimitiveType.Triangles, indices.Length / 3, sizeof(int));
//Normals are relative to geometry
var normals = new [] {
new SCNVector3(0, 0, 1),
new SCNVector3(0, 0, 1),
new SCNVector3(0, 0, 1),
new SCNVector3(0, 0, 1),
new SCNVector3(0, 0, 1),
};;
var normSource = SCNGeometrySource.FromNormals(normals);
//These texture coords will cause the texture to wrap
var txCoords = new [] {
new CGPoint(-1, -1),
new CGPoint(-1, 1),
new CGPoint(1, 1),
new CGPoint(1, -1)
};
var txCoordsSource = SCNGeometrySource.FromTextureCoordinates(txCoords);
var geometry = SCNGeometry.Create(new [] { locSource, normSource, txCoordsSource }, new [] { element });