Upload
nscoder-mexico
View
131
Download
3
Embed Size (px)
Citation preview
NSCodersMéxico
Metal Framework
Por Juan C. Ricalde Poveda A.K.A. “jucaripo”
CTO FricMartinez.com
NSCoder Nights
¿Que es el Metal Framework?
Metal Framework
NSCodersMéxico
Metal es un Api que te da acceso al GPU, lo que te permite maximizar los gráficos y potenciar tus aplicaciones de iOS 8. #Metal es una API simplificada, para shaders precompilados, y da apoyo para un uso eficiente de la Multitarea "multi-threading”,# Metal puede llevar tus gráficos al siguiente nivel de rendimiento y capacidad.
Metal Framework
NSCodersMéxico
El Framework de metal esta diseñado para optimizar las aplicaciones 3D, es un API liviana y esta realizada para los
procesadores A7 y posteriores.
Metal Framework
NSCodersMéxico
OpenGL (Open Graphics Library) es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos. Fue desarrollada originalmente por Silicon Graphics Inc. (SGI) en 19922
Metal Framework
NSCodersMéxico
OpenGL ES (OpenGL for Embedded Systems) es una variante simplificada de la API gráfica OpenGL diseñada para dispositivos integrados tales como teléfonos móviles, PDAs y consolas de videojuegos. La define y promueve el Grupo Khronos, un consorcio de empresas dedicadas a hardware y software gráfico interesadas en APIs gráficas y multimedia.##
En IOS se usa ##
https://developer.apple.com/library/ios/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/Introduction/Introduction.html
Metal Framework
NSCodersMéxico
WebGL1 es una especificación estándar que está siendo desarrollada actualmente para mostrar gráficos en 3D en navegadores web. El WebGL permite mostrar gráficos en 3D acelerados por hardware (GPU) en páginas web, sin la necesidad de plug-ins en cualquier plataforma que soporte OpenGL 2.0 u OpenGL ES 2.0. Técnicamente es un API para javascript que permite usar la implementación nativa de OpenGL ES 2.0 que será incorporada en los navegadores. WebGL es gestionado por el consorcio de tecnología sin ánimo de lucro Khronos Group .
Metal Framework
NSCodersMéxico
EL HOLA MUNDO DE METAL CON SWIFT
EL objetivo de esta platica es comenzar a usar las bases del framework 3D con Metal.
// Se requiere de la libreria SceneKit para poder trabajar con 3D import SceneKit
Metal Framework
NSCodersMéxico
// Crear objeto vista let sceneView = SCNView( frame: view.frame)
Empezamos por crear la vista de la escena y la escena
// Crear escena let scene = SCNScene() // asignar escena a la vista sceneView.scene = scene
Metal Framework
NSCodersMéxico
Empezamos por crear la vista de la escena y la escena
Esto le dice a IOS como generar una vista 3D que trabajara con el GPU
#
Metal Framework
NSCodersMéxico
Configuramos la app para que ponga la camara y las luces
// configurar Luces , camara y estadisticas sceneView.autoenablesDefaultLighting = true sceneView.allowsCameraControl = true sceneView.showsStatistics = true
Metal Framework
NSCodersMéxico
Creamos un modelo, en este caso una caja
// crear cajita let box = SCNBox(width: 10, height: 10, length: 10, chamferRadius: 0)
Metal Framework
NSCodersMéxico
Asignar un Nodo al modelo y posicionarlo
// asignar nodo a escena let boxNode = SCNNode(geometry: box) boxNode.position = SCNVector3(x: 250, y: 150, z: 460) scene.rootNode.addChildNode(boxNode)
Metal Framework
NSCodersMéxico
Asignar una lampara y la coloreamos// luces let light = SCNLight() light.color = UIColor.redColor() let lightNode = SCNNode() lightNode.light = light // posicion de la lampara lightNode.position = SCNVector3(x: -30, y: 30, z: 60) // agregamos el nodo de luz a la escena scene.rootNode.addChildNode(lightNode)
Metal Framework
NSCodersMéxico
Mostramos la ventana 3d en nuestra vista.
// mostrar la vista en el dispositivo view.addSubview(sceneView)