Tutorial de desarrollo de SceneKit 02 | SCNScene y SCNView
La estructura de este artículo es la siguiente:
Antes de comenzar, es necesario comparar la terminología china e inglesa.
Los objetos SCNScene representan escenas 3D y sus contenidos. Una jerarquía de nodos (una estructura de árbol) forma el esqueleto de la escena, con cámaras, luces, geometría y otro "contenido" adjunto a ellos, y estos nodos y las propiedades adjuntas a ellos forman la escena 3D visible.
Las escenas se representan mediante SCNView, SCNLayer (solo macOS) o SCNRenderer, que se ajustan al protocolo SCNSceneRenderer, que define las propiedades y métodos de estas clases.
La clase SCNScene también proporciona una interfaz para leer y escribir archivos de escenas.
Por lo general, puede utilizar algún software (como 3Dsmax y maya) para crear escenas 3D y luego importar estos archivos de escena al proyecto.
SceneKit proporciona la siguiente API para cargar archivos de escenas:
SceneKit también proporciona una API para cargar escenas desde recursos de E/S del modelo:
Model I/O No se ampliará aquí, solo necesita saber que existe tal método.
Recuerde que el proyecto AR vacío que creamos anteriormente contenía una carpeta art.scnassets.
Esta carpeta contiene recursos de escena (ship.scn en el ejemplo) y recursos de textura (texture.png en el ejemplo), que Xcode ha optimizado para obtener en cada dispositivo. Para un rendimiento óptimo, por ejemplo, aplicaciones delgadas. bajar y cargar recursos según la demanda.
¡Demostré esto en SceneKit | Cargando modelos 3D (obj/scn/dae) en tu proyecto AR!
SceneKit proporciona un método de clase para crear una escena:
Llamar a este método crea una escena vacía, que contiene un "nodo raíz sin contenido" y se puede pasar a Se crea el nodo raíz agregando nodos secundarios.
Esto es importante porque, por ejemplo, uno de los otros miembros de nuestro equipo ha estado trabajando en exportar las caras ARFaceGeometry de ARKit (que contienen datos de profundidad) desde el iPhone X y luego imprimirlas usando una impresión de caras 3D. El método que describo a continuación es una forma de exportar caras.
SceneKit proporciona un método para guardar escenas:
Cambie este método para escribir la escena de SceneKit en un archivo. El formato del archivo lo determina el sistema operativo y el sufijo del archivo que especifique: <. /p>
Lo anterior presenta algunas API de uso frecuente. ScnScene es la API más utilizada para SCNScene, pero puede encontrar más información al respecto en la documentación del desarrollador.
SCNView hereda de UIView y se utiliza para mostrar contenido 3D de SceneKit.
El sistema proporciona los siguientes métodos iniciales:
Muestra la escena especificada en la vista configurando las propiedades de la escena.
SCNView proporciona tres métodos para administrar animaciones en la escena actual:
SCNView proporciona un método para tomar una instantánea de la escena actual, que puede representar la escena actual en un nuevo objeto de imagen. :
El siguiente artículo "Tutorial de desarrollo de SceneKit de iOS 11 03 | Uso de SCNNode amp; amp; SCNReferenceNode" es un ejemplo del uso del tutorial de desarrollo de SceneKit de iOS 11. "Usar SCNNode y SCNReferenceNode para definir la estructura de la escena" presentará el contenido relacionado de SCNNode y SCNReferenceNode.