NSCoders

México
Metal 

Framework
Por Juan C. Ricalde Poveda

A.K.A. “jucaripo”

CTO FricMartinez.com
NSCoder Nights
¿Que es el Metal Framework?
Metal 

Framework
NSCoders

México
¿Que es el Metal Framework?
Metal 

Framework
NSCoders

Mé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
NSCoders

Mé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
NSCoders

México
IOS y los Graficos por Computadora
Metal 

Framework
NSCoders

México
Metal 

Framework
NSCoders

Mé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
NSCoders

Mé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
NSCoders

Mé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
NSCoders

México
Metal se puede programar en
Swift
Metal 

Framework
NSCoders

Mé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
NSCoders

Mé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
NSCoders

Mé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
NSCoders

Mé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
NSCoders

México
Creamos un modelo, en este caso una caja
// crear cajita
let box = SCNBox(width: 10, height: 10, length: 10, chamferRadius: 0)
Metal 

Framework
NSCoders

México
Que es un modelo 3D
Metal 

Framework
NSCoders

México
Como se definan los vertices
Metal 

Framework
NSCoders

México
Transformaciones en vertices
Metal 

Framework
NSCoders

Mé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
NSCoders

Mé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
NSCoders

México
Mostramos la ventana 3d en nuestra vista.
// mostrar la vista en el dispositivo
view.addSubview(sceneView)
Metal 

Framework
NSCoders

México
Es este codigo realmente Metal.
#
#
No pero si……..????
Metal 

Framework
NSCoders

México
Este codigo si es Metal.
#
#
Mostar demo
Metal 

Framework
NSCoders

México
continuara…

NSCoder - Metal