Este documento presenta una introducción a OpenGL ES para desarrollar gráficos 3D en iPhone. Explica conceptos clave como vértices, primitivas, matrices de modelo-vista y proyección, y el uso de texturas. Detalla operaciones básicas como borrar la pantalla, dibujar primitivas y seleccionar colores. Además, cubre temas como traslaciones, rotaciones y escalado para manipular objetos 3D, y cargar y aplicar texturas a las primitivas.
Este documento trata sobre el cálculo diferencial en funciones de varias variables. Introduce conceptos como límites y continuidad, derivadas parciales, diferencial de una función, derivadas direccionales y gradiente. Explica funciones reales de varias variables reales, su dominio e imagen, y cómo representarlas de forma explícita, implícita o paramétrica. También describe la gráfica de una función y los conjuntos de nivel.
Este documento describe un algoritmo para la planificación de trayectorias de un robot llamado Bug 2. El algoritmo genera una línea recta entre los puntos de inicio y objetivo, y el robot la seguirá salvo que encuentre un obstáculo, en cuyo caso lo rodeará hasta volver a la línea. Se proporcionan detalles sobre la implementación en Player/Stage, incluyendo los archivos de configuración y mundo necesarios. El código calcula la pendiente y ángulo de la línea recta, y usa sensores sonar y bucles para moverse, rodear obst
El documento describe técnicas para mejorar el algoritmo de eliminación gaussiana (GE) para resolver sistemas de ecuaciones lineales densos. Explica cómo optimizar GE mediante el uso de operaciones de matrices (BLAS) en lugar de bucles anidados, almacenando factores de multiplicación en lugar de recalcularlos, y aplicando pivotaje parcial para mejorar la estabilidad numérica. También describe cómo GE en realidad calcula una factorización LU de la matriz y cómo esta factorización puede usarse para resolver el sistema de ecuaciones.
Este documento describe varios métodos numéricos para calcular integrales definidas, incluyendo las reglas de la trapezoidal, Simpson y Monte Carlo. Explica cómo aplicar estos métodos de forma paralela usando múltiples procesadores, donde cada procesador calcula una porción de la integral total. También discute cómo mejorar la precisión del método de Monte Carlo usando una distribución de muestreo no uniforme guiada por la función a integrar.
Este documento resume los conceptos clave de la simulación paralela. Explica que los sistemas de eventos discretos, partículas y variables agregadas que siguen ecuaciones diferenciales ordinarias son comunes en simulaciones y pueden ser paralelizados. Describe cómo identificar dependencias de datos y flujo para determinar qué partes de un problema se pueden computar en paralelo, y métodos como la descomposición de dominio espacial para lograr paralelismo y localidad en la comunicación.
Este documento presenta un resumen de los conceptos fundamentales del método numérico Multigrid para resolver ecuaciones diferenciales parciales discretizadas. Explica que Multigrid divide y resuelve recursivamente el problema en mallas más gruesas para mover la información más rápido a través de la malla. Describe los operadores clave de restricción, interpolación y solución, y cómo se usan en un ciclo V y el algoritmo Full Multigrid para lograr convergencia constante independiente del tamaño de la malla.
Este documento resume las operaciones paralelas con matrices densas y el algoritmo de Cannon para la multiplicación de matrices. En 3 oraciones o menos:
El documento describe diferentes particiones de datos para operaciones paralelas con matrices densas, incluidas particiones de bloques y cíclicas de filas y columnas. También explica el algoritmo de Cannon para la multiplicación paralela de matrices, el cual mueve bloques de las matrices A y B para alinear los datos y permitir la multiplicación en paralelo de todos los procesadores.
Este documento presenta varios métodos para resolver sistemas de ecuaciones diferenciales parciales, como la ecuación de Poisson. Revisa el método de Jacobi, el método SOR rojo y negro, el gradiente conjugado y la transformada rápida de Fourier. Luego explica cómo estos métodos pueden ser paralelizados para resolver sistemas de ecuaciones a gran escala de manera más eficiente.
Este documento trata sobre el cálculo diferencial en funciones de varias variables. Introduce conceptos como límites y continuidad, derivadas parciales, diferencial de una función, derivadas direccionales y gradiente. Explica funciones reales de varias variables reales, su dominio e imagen, y cómo representarlas de forma explícita, implícita o paramétrica. También describe la gráfica de una función y los conjuntos de nivel.
Este documento describe un algoritmo para la planificación de trayectorias de un robot llamado Bug 2. El algoritmo genera una línea recta entre los puntos de inicio y objetivo, y el robot la seguirá salvo que encuentre un obstáculo, en cuyo caso lo rodeará hasta volver a la línea. Se proporcionan detalles sobre la implementación en Player/Stage, incluyendo los archivos de configuración y mundo necesarios. El código calcula la pendiente y ángulo de la línea recta, y usa sensores sonar y bucles para moverse, rodear obst
El documento describe técnicas para mejorar el algoritmo de eliminación gaussiana (GE) para resolver sistemas de ecuaciones lineales densos. Explica cómo optimizar GE mediante el uso de operaciones de matrices (BLAS) en lugar de bucles anidados, almacenando factores de multiplicación en lugar de recalcularlos, y aplicando pivotaje parcial para mejorar la estabilidad numérica. También describe cómo GE en realidad calcula una factorización LU de la matriz y cómo esta factorización puede usarse para resolver el sistema de ecuaciones.
Este documento describe varios métodos numéricos para calcular integrales definidas, incluyendo las reglas de la trapezoidal, Simpson y Monte Carlo. Explica cómo aplicar estos métodos de forma paralela usando múltiples procesadores, donde cada procesador calcula una porción de la integral total. También discute cómo mejorar la precisión del método de Monte Carlo usando una distribución de muestreo no uniforme guiada por la función a integrar.
Este documento resume los conceptos clave de la simulación paralela. Explica que los sistemas de eventos discretos, partículas y variables agregadas que siguen ecuaciones diferenciales ordinarias son comunes en simulaciones y pueden ser paralelizados. Describe cómo identificar dependencias de datos y flujo para determinar qué partes de un problema se pueden computar en paralelo, y métodos como la descomposición de dominio espacial para lograr paralelismo y localidad en la comunicación.
Este documento presenta un resumen de los conceptos fundamentales del método numérico Multigrid para resolver ecuaciones diferenciales parciales discretizadas. Explica que Multigrid divide y resuelve recursivamente el problema en mallas más gruesas para mover la información más rápido a través de la malla. Describe los operadores clave de restricción, interpolación y solución, y cómo se usan en un ciclo V y el algoritmo Full Multigrid para lograr convergencia constante independiente del tamaño de la malla.
Este documento resume las operaciones paralelas con matrices densas y el algoritmo de Cannon para la multiplicación de matrices. En 3 oraciones o menos:
El documento describe diferentes particiones de datos para operaciones paralelas con matrices densas, incluidas particiones de bloques y cíclicas de filas y columnas. También explica el algoritmo de Cannon para la multiplicación paralela de matrices, el cual mueve bloques de las matrices A y B para alinear los datos y permitir la multiplicación en paralelo de todos los procesadores.
Este documento presenta varios métodos para resolver sistemas de ecuaciones diferenciales parciales, como la ecuación de Poisson. Revisa el método de Jacobi, el método SOR rojo y negro, el gradiente conjugado y la transformada rápida de Fourier. Luego explica cómo estos métodos pueden ser paralelizados para resolver sistemas de ecuaciones a gran escala de manera más eficiente.
Este documento trata sobre diferentes métodos para realizar zoom en una imagen, incluyendo interpolación polinómica y spline cúbico. Presenta los conceptos teóricos de interpolación polinómica de Lagrange y Newton, e introduce la interpolación segmentaria mediante splines lineales, cuadráticos y cúbicos. Incluye ejemplos numéricos para ilustrar el cálculo de cada tipo de spline sobre una nube de puntos dada.
Este documento describe varias funciones matemáticas y de fecha en Visual Basic, incluyendo funciones para obtener valores absolutos, arcotangente, código de caracteres, coseno, agregar intervalos de fecha, especificar fecha a partir de año, mes y día, y más. Explica los argumentos y valores de retorno de cada función.
Este documento describe la creación de un robot con dos eslabones usando MATLAB. Primero se definen los parámetros de Denavit-Hartenberg para cada eslabón y se crean objetos de eslabón. Luego, estos objetos de eslabón se pasan a la función robot() para crear un objeto robot. A continuación, se resuelve el problema de cinemática directa para este robot de dos eslabones usando la función fkine(). Finalmente, se describe brevemente cómo resolver el problema de cinemática inversa usando la función ikine().
Control de trayectoria de manipulador robótico de Juan Camarena
Este documento describe el diseño y análisis de controladores para un brazo robótico Mitsubishi de 4 grados de libertad. Se modela la dinámica del robot usando el método de Lagrange-Euler y SimMechanics. Se analizan tres tipos de controladores: PID clásico, control por torque computado optimizado con algoritmos genéticos, y controlador neuro-fuzzy. Los controladores se comparan usando el modelo ideal de Lagrange y el modelo más realista de SimMechanics. Los resultados muestran que el controlador PID tiene un desempeño insuficiente
Taller 10 texto guía calculo 2 v 2010 parte 2Orlando Correa
Este documento presenta 23 ejercicios de cálculo que involucran el uso de la regla de L'Hôpital para determinar límites indeterminados de la forma 0/0 y ∞/∞. Cada ejercicio contiene la función dada, su reescritura aplicando la regla de L'Hôpital, y el cálculo del límite resultante.
1) El documento describe diferentes métodos para la detección de bordes en imágenes digitales, incluyendo filtros, cálculo del gradiente, máscaras como Roberts, Prewitt y Sobel.
2) Explica la diferencia entre utilizar la primera y segunda derivada, siendo esta última más susceptible al ruido.
3) Se detallan métodos como el de Marr-Hildreth basado en la laplaciana de la gaussiana y detección de cruces por cero.
El documento describe diferentes transformaciones y técnicas de procesamiento de imágenes digitales, incluyendo transformaciones de intensidad, umbralización, complemento, contraste, interpolación, transformaciones geométricas, registro de imágenes, selección de umbrales utilizando histograma y ecualización de histograma. Explica cómo aplicar estas técnicas utilizando funciones como imadjust, imcomplement, imhist y histeq en MATLAB.
El documento describe el control por modelo inverso de un brazo robótico de dos grados de libertad. Explica cómo se obtiene el modelo inverso utilizando cinemática directa e inversa, y cómo se implementa un sistema difuso para modelar la relación inversa no lineal entre las posiciones y ángulos del brazo. También muestra cómo este enfoque se puede aplicar para controlar la orientación y posición de un vehículo.
Control Modelo de Referencia y Linealizacion po RealimentacionOmar Sanchez
- El modelo de referencia utiliza las salidas de la planta retrasadas, las salidas del controlador retrasadas y la salida de referencia retrasada como datos de entrada.
- El modelo de la planta utiliza las salidas de la planta retrasadas y las salidas del controlador retrasadas como datos de entrada.
- Ambos modelos utilizan estimadores no lineales diferentes para su identificación y redes neuronales como modelo resultante.
P iy va_2012-2_balotario de preguntas pc3jcbenitezp
Este documento presenta 14 preguntas sobre procesamiento de imágenes y visión artificial para una práctica calificada. Las preguntas cubren temas como transformadas de Fourier, convolución, detección de bordes, rotación e interpolación de imágenes utilizando diferentes técnicas.
Este documento presenta los resultados de dos simulaciones sobre la distribución de poblaciones. En la primera simulación, la distribución observada fue similar a la esperada. En la segunda simulación, también se observó una distribución similar a la esperada aunque con algunas pequeñas diferencias en las probabilidades asociadas a cada número de organismos. Ambas simulaciones muestran gráficos de las distribuciones observadas frente a las esperadas.
Este documento introduce el concepto de computación paralela de alto rendimiento y sus aplicaciones. Explica que la simulación por computadora se ha convertido en el tercer pilar de la ciencia junto con la teoría y el experimento. Detalla algunos problemas computacionalmente intensivos como la simulación del clima global y la dinámica de agujeros negros binarios. Finalmente, señala que las tendencias de miniaturización hacen que los microprocesadores sean cada vez más paralelos para aprovechar el aumento exponencial en el número de transistores.
Este documento contiene un resumen de 3 oraciones o menos:
Este documento presenta una versión de demostración de un conversor de PDF a Word. Reemplaza caracteres aleatorios en el documento de destino con asteriscos. Incluye un enlace para comprar la versión completa.
Este documento explica cómo dibujar texto y figuras geométricas en Java usando la clase Graphics. Describe cómo escribir texto usando drawString(), dibujar líneas, rectángulos, polígonos, óvalos y arcos. También cubre la selección de fuentes, colores y el uso de métodos como setColor() y setFont(). El objetivo es mostrar las capacidades básicas de dibujo en Java.
El documento describe opciones para el paralelismo en lenguajes de alto nivel como .NET y Java, incluyendo PLinq en .NET para consultas paralelas de datos, actores en Scala usando paso de mensajes, y memoria transaccional en Clojure para evitar bloqueos. Cubre conceptos como abstracciones para paralelismo, consultas paralelas, actores y memoria transaccional.
El documento describe las clases abstractas en Java. Explica que una clase abstracta no se puede instanciar y solo se usa para definir subclases. También describe casos de uso como cuando clases comparten operaciones pero difieren en implementación, o para impedir que el usuario cree objetos de ciertas clases. Además, explica la diferencia entre clases abstractas e interfaces en Java.
Este documento presenta el primer paso en el algoritmo de Dijkstra para encontrar el camino más corto desde el vértice z a cada uno de los otros vértices en un grafo. Inicialmente, se inicializan los vectores de distancia y predecesor, y luego se aplica la relajación a cada arco, sin cambios en el primer paso.
Swift es un nuevo lenguaje de programación seguro, moderno y potente desarrollado por Apple para crear aplicaciones en iOS y OS X. Algunas características clave de Swift incluyen gestión automática de memoria, sintaxis sencilla, tipos y clases mejorados, y compatibilidad con Objective-C. Swift también introduce nuevos conceptos como closures, opciones y genéricos.
El documento describe los pasos para crear una webquest educativa, incluyendo un comienzo motivador, una consigna clara, una descripción de los pasos a seguir trabajando en grupos, enlaces a recursos, criterios de evaluación, y un resumen final que proponga continuar aprendiendo y mejorar la actividad.
Este documento presenta una receta para hacer mermelada de noni con guayaba. Explica brevemente la historia de la mermelada y cómo se diferencia de otras conservas de fruta como la jalea. Luego proporciona la lista de ingredientes necesarios para la receta, que incluyen noni, miel, azúcar, vainilla y guayaba. Finalmente, detalla los pasos para preparar la mermelada, como pelar y macerar el noni, cocinarlo con azúcar y agregar vainilla al final.
El documento resume las profecías de Fátima sobre eventos futuros, incluyendo guerras, desastres naturales y una oscuridad de tres días. Advierte que estos eventos ocurrirán si la humanidad no se arrepiente y pide misericordia a Dios. Insta a los lectores a rezar, prepararse espiritualmente y difundir el mensaje para que otros puedan decidir creer o no.
Este documento trata sobre diferentes métodos para realizar zoom en una imagen, incluyendo interpolación polinómica y spline cúbico. Presenta los conceptos teóricos de interpolación polinómica de Lagrange y Newton, e introduce la interpolación segmentaria mediante splines lineales, cuadráticos y cúbicos. Incluye ejemplos numéricos para ilustrar el cálculo de cada tipo de spline sobre una nube de puntos dada.
Este documento describe varias funciones matemáticas y de fecha en Visual Basic, incluyendo funciones para obtener valores absolutos, arcotangente, código de caracteres, coseno, agregar intervalos de fecha, especificar fecha a partir de año, mes y día, y más. Explica los argumentos y valores de retorno de cada función.
Este documento describe la creación de un robot con dos eslabones usando MATLAB. Primero se definen los parámetros de Denavit-Hartenberg para cada eslabón y se crean objetos de eslabón. Luego, estos objetos de eslabón se pasan a la función robot() para crear un objeto robot. A continuación, se resuelve el problema de cinemática directa para este robot de dos eslabones usando la función fkine(). Finalmente, se describe brevemente cómo resolver el problema de cinemática inversa usando la función ikine().
Control de trayectoria de manipulador robótico de Juan Camarena
Este documento describe el diseño y análisis de controladores para un brazo robótico Mitsubishi de 4 grados de libertad. Se modela la dinámica del robot usando el método de Lagrange-Euler y SimMechanics. Se analizan tres tipos de controladores: PID clásico, control por torque computado optimizado con algoritmos genéticos, y controlador neuro-fuzzy. Los controladores se comparan usando el modelo ideal de Lagrange y el modelo más realista de SimMechanics. Los resultados muestran que el controlador PID tiene un desempeño insuficiente
Taller 10 texto guía calculo 2 v 2010 parte 2Orlando Correa
Este documento presenta 23 ejercicios de cálculo que involucran el uso de la regla de L'Hôpital para determinar límites indeterminados de la forma 0/0 y ∞/∞. Cada ejercicio contiene la función dada, su reescritura aplicando la regla de L'Hôpital, y el cálculo del límite resultante.
1) El documento describe diferentes métodos para la detección de bordes en imágenes digitales, incluyendo filtros, cálculo del gradiente, máscaras como Roberts, Prewitt y Sobel.
2) Explica la diferencia entre utilizar la primera y segunda derivada, siendo esta última más susceptible al ruido.
3) Se detallan métodos como el de Marr-Hildreth basado en la laplaciana de la gaussiana y detección de cruces por cero.
El documento describe diferentes transformaciones y técnicas de procesamiento de imágenes digitales, incluyendo transformaciones de intensidad, umbralización, complemento, contraste, interpolación, transformaciones geométricas, registro de imágenes, selección de umbrales utilizando histograma y ecualización de histograma. Explica cómo aplicar estas técnicas utilizando funciones como imadjust, imcomplement, imhist y histeq en MATLAB.
El documento describe el control por modelo inverso de un brazo robótico de dos grados de libertad. Explica cómo se obtiene el modelo inverso utilizando cinemática directa e inversa, y cómo se implementa un sistema difuso para modelar la relación inversa no lineal entre las posiciones y ángulos del brazo. También muestra cómo este enfoque se puede aplicar para controlar la orientación y posición de un vehículo.
Control Modelo de Referencia y Linealizacion po RealimentacionOmar Sanchez
- El modelo de referencia utiliza las salidas de la planta retrasadas, las salidas del controlador retrasadas y la salida de referencia retrasada como datos de entrada.
- El modelo de la planta utiliza las salidas de la planta retrasadas y las salidas del controlador retrasadas como datos de entrada.
- Ambos modelos utilizan estimadores no lineales diferentes para su identificación y redes neuronales como modelo resultante.
P iy va_2012-2_balotario de preguntas pc3jcbenitezp
Este documento presenta 14 preguntas sobre procesamiento de imágenes y visión artificial para una práctica calificada. Las preguntas cubren temas como transformadas de Fourier, convolución, detección de bordes, rotación e interpolación de imágenes utilizando diferentes técnicas.
Este documento presenta los resultados de dos simulaciones sobre la distribución de poblaciones. En la primera simulación, la distribución observada fue similar a la esperada. En la segunda simulación, también se observó una distribución similar a la esperada aunque con algunas pequeñas diferencias en las probabilidades asociadas a cada número de organismos. Ambas simulaciones muestran gráficos de las distribuciones observadas frente a las esperadas.
Este documento introduce el concepto de computación paralela de alto rendimiento y sus aplicaciones. Explica que la simulación por computadora se ha convertido en el tercer pilar de la ciencia junto con la teoría y el experimento. Detalla algunos problemas computacionalmente intensivos como la simulación del clima global y la dinámica de agujeros negros binarios. Finalmente, señala que las tendencias de miniaturización hacen que los microprocesadores sean cada vez más paralelos para aprovechar el aumento exponencial en el número de transistores.
Este documento contiene un resumen de 3 oraciones o menos:
Este documento presenta una versión de demostración de un conversor de PDF a Word. Reemplaza caracteres aleatorios en el documento de destino con asteriscos. Incluye un enlace para comprar la versión completa.
Este documento explica cómo dibujar texto y figuras geométricas en Java usando la clase Graphics. Describe cómo escribir texto usando drawString(), dibujar líneas, rectángulos, polígonos, óvalos y arcos. También cubre la selección de fuentes, colores y el uso de métodos como setColor() y setFont(). El objetivo es mostrar las capacidades básicas de dibujo en Java.
El documento describe opciones para el paralelismo en lenguajes de alto nivel como .NET y Java, incluyendo PLinq en .NET para consultas paralelas de datos, actores en Scala usando paso de mensajes, y memoria transaccional en Clojure para evitar bloqueos. Cubre conceptos como abstracciones para paralelismo, consultas paralelas, actores y memoria transaccional.
El documento describe las clases abstractas en Java. Explica que una clase abstracta no se puede instanciar y solo se usa para definir subclases. También describe casos de uso como cuando clases comparten operaciones pero difieren en implementación, o para impedir que el usuario cree objetos de ciertas clases. Además, explica la diferencia entre clases abstractas e interfaces en Java.
Este documento presenta el primer paso en el algoritmo de Dijkstra para encontrar el camino más corto desde el vértice z a cada uno de los otros vértices en un grafo. Inicialmente, se inicializan los vectores de distancia y predecesor, y luego se aplica la relajación a cada arco, sin cambios en el primer paso.
Swift es un nuevo lenguaje de programación seguro, moderno y potente desarrollado por Apple para crear aplicaciones en iOS y OS X. Algunas características clave de Swift incluyen gestión automática de memoria, sintaxis sencilla, tipos y clases mejorados, y compatibilidad con Objective-C. Swift también introduce nuevos conceptos como closures, opciones y genéricos.
El documento describe los pasos para crear una webquest educativa, incluyendo un comienzo motivador, una consigna clara, una descripción de los pasos a seguir trabajando en grupos, enlaces a recursos, criterios de evaluación, y un resumen final que proponga continuar aprendiendo y mejorar la actividad.
Este documento presenta una receta para hacer mermelada de noni con guayaba. Explica brevemente la historia de la mermelada y cómo se diferencia de otras conservas de fruta como la jalea. Luego proporciona la lista de ingredientes necesarios para la receta, que incluyen noni, miel, azúcar, vainilla y guayaba. Finalmente, detalla los pasos para preparar la mermelada, como pelar y macerar el noni, cocinarlo con azúcar y agregar vainilla al final.
El documento resume las profecías de Fátima sobre eventos futuros, incluyendo guerras, desastres naturales y una oscuridad de tres días. Advierte que estos eventos ocurrirán si la humanidad no se arrepiente y pide misericordia a Dios. Insta a los lectores a rezar, prepararse espiritualmente y difundir el mensaje para que otros puedan decidir creer o no.
El documento resume las propiedades curativas del agua de mar descubiertas por el científico René Quinton. Quinton realizó experimentos que demostraron que el agua de mar puede curar enfermedades y salvar vidas. Aunque sus teorías tuvieron éxito inicialmente, posteriormente fueron olvidadas debido a los intereses económicos de las farmacéuticas. El documento aboga por revivir los dispensarios de Quinton y hacer el agua de mar accesible para todos debido a sus numerosos beneficios para la salud.
La Iglesia Mexicana del Evangelio de Cristo sigue las enseñanzas de la Biblia y cree que Dios es digno de alabanza. Enseña que la Biblia muestra diferentes niveles de crecimiento espiritual y que cada persona puede crecer en su relación con Dios. La iglesia alienta a sus congregantes a vivir de acuerdo con la verdad bíblica en todos los aspectos de la vida.
Una mujer fingió ahogarse en un río para probar si sus tres yernos la querían. Los dos primeros yernos se lanzaron al agua para salvarla y recibieron un Peugot 206 como regalo. El tercer yerno no la salvó y pensó que era hora de que muriera, por lo que recibió un Porsche Carrera GT nuevo como regalo de su suegro.
Este documento presenta el plan de clase para el módulo de Elaboración de Documentos Electrónicos del semestre B 1011. Incluye información sobre los objetivos, contenidos, competencias, indicadores, estrategias de enseñanza y evaluación. Se detallan las sesiones sobre introducción a Word, descripción de la pantalla, operaciones básicas, atajos, impresión de documentos, uso de elementos gráficos y tablas. El profesor explicará los conceptos y guiará actividades prácticas, mientras que los estudiantes
Este documento resume las posiciones de varios ateos contemporáneos como Michel Onfray, Richard Dawkins y Comte-Sponville en relación con la existencia de Dios. Critican las pruebas tradicionales de la existencia de Dios propuestas por Santo Tomás de Aquino, argumentando que invocar a Dios como causa primera plantea problemas como una regresión al infinito o el hecho de que Dios también necesitaría una explicación. También cuestionan los argumentos de los teólogos católicos y señalan los errores cometidos por algunas
Este documento describe las características y funcionalidades de Open Atrium, una intranet empaquetada que permite a equipos de trabajo compartir información y coordinarse. Open Atrium incluye blogs, cuadernos, calendarios, chats, sistemas de tickets y tableros personalizables. Permite crear documentos, comentarios y notificaciones para mejorar la colaboración entre equipos.
El grupo visitó 8 lugares en la ciudad de San Carlos Centro, incluyendo una fábrica de caramelos, una cristalería, un escultor de madera, un escultor de alambre, un taller de vidrio tallado, un reciclador de vidrio, un museo y una campana. La fábrica de caramelos Lheritier fabrica golosinas utilizando azúcar, glucosa y colorantes. La cristalería es la más grande de Latinoamérica y produce entre 4,000 y 6,000 piezas diarias utilizando soplado manual. El
Lo + Destacado del Último Mes en Marketing 2.0 y Redes Sociales (Marzo 2014)Juan Merodio
Este documento resume las principales actualizaciones de marzo de 2014 en redes sociales y marketing 2.0. Facebook lanzó una nueva aplicación llamada Paper solo disponible en EE.UU. También mostrará actualizaciones de páginas que no se siguen. WhatsApp implementará llamadas de voz gratuitas. Las búsquedas de Twitter tendrán anuncios y LinkedIn actualizó la sección de "quién vio tu perfil".
Diez indicios que el comprador está pensando decirSergio Otero
El documento describe 10 indicios que muestran que un comprador está interesado en comprar y 10 indicios que sugieren que no está interesado. Entre los indicios positivos se incluyen contacto visual, asentir con la cabeza y sonreír. Entre los negativos están evitar el contacto visual, voltear a ver el reloj y cruzar los brazos. Recomienda que si ven señales positivas, pregunten al comprador directamente sobre su interés, y si ven señales negativas, aclaren cualquier duda o se retiren educadamente.
El Spinosaurus Aegyptiacus fue un dinosaurio carnívoro que habitó la Tierra hace entre 112-97 millones de años, tenía una longitud de 12-18 metros, una vela dorsal con espinas para protección y manos grandes con garras para cazar peces y otras presas en las zonas costeras donde vivía.
Este documento presenta un curso sobre la gestión de recursos TIC en la escuela. El curso se enfoca en los roles, potencialidades y limitaciones de los recursos TIC, y en el rol de los directivos en la gestión de estos recursos. El propósito del curso es enriquecer la visión personal sobre este tema y aplicar los conocimientos en una propuesta concreta para el contexto escolar de cada participante. El curso se desarrollará a través de exposiciones, discusión en grupos, lecturas y trabajo individual, tanto de forma presencial
El documento discute el tratamiento del trasplante de progenitores hematopoyéticos (TPH) para las inmunodeficiencias primarias (IDP). 1) El TPH debe considerarse para IDP sin tratamiento alternativo seguro o cuyo defecto afecta la línea hematopoyética. 2) Cada vez más IDP pueden tratarse exitosamente con TPH. 3) Se necesita mejorar la situación en el Perú respecto al TPH en IDP mediante la colaboración entre especialidades e instituciones.
La electroterapia es una técnica de fisioterapia que utiliza la electricidad para tratar lesiones y enfermedades. Se ha aplicado desde la antigua Grecia y Roma, y actualmente se usan aparatos como los TENS que generan pulsos eléctricos de forma segura. La electroterapia tiene efectos antiinflamatorios, analgésicos y mejora el trofismo muscular. Se usa para tratar dolores, procesos inflamatorios y atrofias musculares.
Construcción de Plataformas Agropecuarias de Valor por Zonas Homogéneas, Fra...TELEMATICA S.A.
Este documento describe un proyecto para generar Plataformas Agropecuarias de Valor por Zonas Homogéneas en Costa Rica mediante el uso de SIG. El proyecto involucra la recolección de datos de campo usando GPS, el análisis de variables como tipo de suelo y capacidad de uso de la tierra, y la delimitación de nuevas zonas homogéneas agropecuarias. Los productos finales incluyen una base de datos espacial, mapas de valores de terrenos y matrices de información sobre las zonas de valor agropecuario
Este documento explica los conceptos básicos de gráficos 2D en OpenGL, incluyendo la inicialización, los vértices, las primitivas, las transformaciones geométricas y el uso de listas para almacenar y actualizar dibujos. Se definen funciones como glVertex2f para especificar vértices y glBegin/glEnd para dibujar primitivas como triángulos. También se describen transformaciones como traslación, escalado y rotación aplicadas mediante funciones como glTranslatef, glScalef y glRotatef.
Introducción a las librerías PyGame y PyOpenGLkdeespana
Este documento presenta una introducción al uso de las librerías Pygame y PyOpenGL en Python para crear gráficos 2D y 3D. Explica cómo instalar estas librerías, sus funciones principales, y proporciona un ejemplo básico de código para inicializar Pygame, definir shaders y dibujar una escena 3D simple con un cuadrado.
Este documento presenta un manual de prácticas sobre el uso de software de diseño para el manejo de gráficos. Incluye investigación sobre OpenGL, código para crear varias figuras geométricas como un tablero de ajedrez, una estrella, un cubo con líneas y uno delineado, y explica cómo configurar OpenGL en Dev C++. El manual proporciona código y explicaciones detalladas para crear diferentes objetos 2D y 3D usando funciones de OpenGL.
Este documento presenta un mini manual sobre OpenGL. Explica que OpenGL es una interfaz de software para hardware gráfico que consiste en una serie de comandos para manipular objetos gráficos. Detalla los principales componentes de OpenGL como las matrices de transformación, los buffers y las primitivas de dibujo básicas como puntos, líneas y polígonos. También resume la estructura típica de un programa que usa OpenGL y la librería GLUT.
OpenGL es una librería gráfica de código abierto que permite generar aplicaciones interactivas en 3D. Se utiliza principalmente en la industria de videojuegos y para reconstrucciones virtuales. OpenGL funciona estableciendo un estado gráfico inicial y luego modificando variables de estado a través de instrucciones. Los programas OpenGL inicializan una ventana, configuran parámetros como el color y sistema de coordenadas, y dibujan primitivas como puntos, líneas y polígonos especificando vértices.
Este documento introduce conceptos básicos de OpenGL como la definición de objetos, luces, cámara y ventanas de visualización. Explica el modelo de programación de OpenGL y conceptos clave como proyecciones, matrices y su uso para transformaciones. Luego, cubre OpenGL 2D para dibujar triángulos, modificar colores, texturas e insertar transformaciones. Finalmente, menciona brevemente las principales diferencias entre OpenGL 2D y 3D.
Este documento presenta 16 prácticas de programación en OpenGL utilizando Dev C++. Las prácticas van desde lo básico como dibujar un tablero de ajedrez hasta objetos 3D más complejos e incluso animaciones. Se explican funciones como glBegin, glVertex, glColor y el uso de bucles for para crear formas repetitivas.
Este documento presenta el código y descripción de varias prácticas de dibujo 2D y 3D utilizando OpenGL. La primera práctica dibuja un tablero de ajedrez con puntos. La segunda dibuja una estrella utilizando líneas. La tercera dibuja un cubo con líneas. La cuarta mejora el cubo delineando sus líneas. La quinta crea un muñeco con diferentes formas geométricas.
Este documento presenta el código y descripción de varias prácticas de dibujo 2D y 3D utilizando OpenGL. La primera práctica dibuja un tablero de ajedrez con puntos. La segunda dibuja una estrella utilizando líneas. La tercera dibuja un cubo con líneas. La cuarta mejora el cubo delineando sus líneas. La quinta crea un muñeco con diferentes formas geométricas.
Este documento presenta un manual de prácticas en OpenGL utilizando Dev C++. Contiene 16 prácticas que muestran funciones básicas y avanzadas de OpenGL como dibujar un tablero de ajedrez, una estrella, cubos con líneas, un muñeco con triángulos, una pirámide, una casita y más. Cada práctica incluye una breve descripción y el código necesario para crear la figura correspondiente utilizando primitivas de OpenGL.
Este documento presenta un manual de prácticas en OpenGL utilizando Dev C++. Incluye 16 ejercicios que muestran el uso de diferentes primitivas de OpenGL para crear figuras 2D y 3D, como un tablero de ajedrez, una estrella, un cubo con líneas, un muñeco con triángulos y más. Explica el código necesario para cada figura utilizando conceptos básicos de OpenGL como definir colores, tamaños de puntos y líneas, y establecer coordenadas para vértices.
Este documento presenta un manual de prácticas en OpenGL para el lenguaje de programación C++. Incluye 16 prácticas que muestran funciones básicas y avanzadas de OpenGL como dibujar formas 2D y 3D, animación, y más. La primera práctica muestra cómo crear un tablero de ajedrez usando puntos. La segunda crea una estrella usando líneas. La tercera dibuja un cubo con líneas usando cuadrados y líneas.
Este documento presenta un manual de prácticas de OpenGL con 15 ejercicios que incluyen: 1) la creación de un tablero de ajedrez, 2) una estrella, 3) un cubo con líneas, 4) un cubo delineado, 5) un muñeco con triángulos, 6) una casita, 7) un oso, 8) un cubo con cubitos, 9) un muñeco con formas, 10) una animación de círculo rotando, 11) un sistema solar, 12) un movimiento en ocho, 13) un semáfor
Este documento presenta un manual de prácticas en OpenGL utilizando Dev C++. Incluye 16 prácticas que muestran funciones básicas y avanzadas de OpenGL como la creación de un tablero de ajedrez, una estrella, un cubo con líneas y más, explicando el código necesario para cada objeto.
Este documento introduce las matrices de proyección en gráficos 3D. Explica las proyecciones paralelas, ortogonales y oblicuas, así como las proyecciones en perspectiva isométrica y de perspectiva. También cubre cómo se implementan las proyecciones ortogonales y de perspectiva en OpenGL utilizando las matrices de proyección y modelado.
El documento presenta 10 prácticas de OpenGL para crear diferentes figuras geométricas 2D como un tablero de ajedrez, una estrella, un cubo con líneas. También incluye prácticas más complejas como un cubo delineado, un muñeco con triángulos y formas, y animaciones de un círculo y el sistema solar.
Este documento describe las primitivas básicas de dibujo en 3D en OpenGL, incluyendo puntos, líneas, triángulos, cuadriláteros y polígonos generales. Explica cómo dibujar estas primitivas, ajustar sus propiedades como el tamaño y grosor, y cómo crear mallas para rellenar superficies. También cubre temas como la visualización de caras frontales y posteriores, modos de dibujo y reglas para los polígonos.
Este documento presenta 14 prácticas de diseño utilizando el software OpenGL. La introducción explica que OpenGL es una API para crear gráficos 2D y 3D a partir de primitivas geométricas como puntos, líneas y triángulos. Las prácticas 1-4 muestran cómo crear formas básicas como un tablero de ajedrez, una estrella, un cubo con líneas y un cubo delineado utilizando comandos como glBegin, glVertex y glEnd.
Este documento presenta 13 prácticas de programación en OpenGL. La primera práctica muestra cómo crear un tablero de ajedrez usando puntos. La segunda práctica dibuja una estrella con líneas. La tercera práctica mejora el uso de líneas para dibujar un cubo. La cuarta práctica enseña a rellenar cuadrados y delinearlos para formar un cubo.
Este documento describe varios ejemplos de animaciones y figuras geométricas creadas con OpenGL. Incluye el código para crear una animación de un círculo que se mueve de izquierda a derecha y de arriba abajo, el código para dibujar una casa con diferentes colores y formas geométricas como cuadrados y triángulos, y un índice con otros ejemplos como una estrella, sistema solar, cubo, pirámide y más.
Similar a Programación Open GL ES en iPhone e iPod touch (20)
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaAMADO SALVADOR
Descubre el catálogo general de la gama de productos de refrigeración del fabricante de electrodomésticos Miele, presentado por Amado Salvador distribuidor oficial Miele en Valencia. Como distribuidor oficial de electrodomésticos Miele, Amado Salvador ofrece una amplia selección de refrigeradores, congeladores y soluciones de refrigeración de alta calidad, resistencia y diseño superior de esta marca.
La gama de productos de Miele se caracteriza por su innovación tecnológica y eficiencia energética, garantizando que cada electrodoméstico no solo cumpla con las expectativas, sino que las supere. Los refrigeradores Miele están diseñados para ofrecer un rendimiento óptimo y una conservación perfecta de los alimentos, con características avanzadas como la tecnología de enfriamiento Dynamic Cooling, sistemas de almacenamiento flexible y acabados premium.
En este catálogo, encontrarás detalles sobre los distintos modelos de refrigeradores y congeladores Miele, incluyendo sus especificaciones técnicas, características destacadas y beneficios para el usuario. Amado Salvador, como distribuidor oficial de electrodomésticos Miele, garantiza que todos los productos cumplen con los más altos estándares de calidad y durabilidad.
Explora el catálogo completo y encuentra el refrigerador Miele perfecto para tu hogar con Amado Salvador, el distribuidor oficial de electrodomésticos Miele.
La inteligencia artificial sigue evolucionando rápidamente, prometiendo transformar múltiples aspectos de la sociedad mientras plantea importantes cuestiones que requieren una cuidadosa consideración y regulación.
Catalogo General Electrodomesticos Teka Distribuidor Oficial Amado Salvador V...AMADO SALVADOR
El catálogo general de electrodomésticos Teka presenta una amplia gama de productos de alta calidad y diseño innovador. Como distribuidor oficial Teka, Amado Salvador ofrece soluciones en electrodomésticos Teka que destacan por su tecnología avanzada y durabilidad. Este catálogo incluye una selección exhaustiva de productos Teka que cumplen con los más altos estándares del mercado, consolidando a Amado Salvador como el distribuidor oficial Teka.
Explora las diversas categorías de electrodomésticos Teka en este catálogo, cada una diseñada para satisfacer las necesidades de cualquier hogar. Amado Salvador, como distribuidor oficial Teka, garantiza que cada producto de Teka se distingue por su excelente calidad y diseño moderno.
Amado Salvador, distribuidor oficial Teka en Valencia. La calidad y el diseño de los electrodomésticos Teka se reflejan en cada página del catálogo, ofreciendo opciones que van desde hornos, placas de cocina, campanas extractoras hasta frigoríficos y lavavajillas. Este catálogo es una herramienta esencial para inspirarse y encontrar electrodomésticos de alta calidad que se adaptan a cualquier proyecto de diseño.
En Amado Salvador somos distribuidor oficial Teka en Valencia y ponemos atu disposición acceso directo a los mejores productos de Teka. Explora este catálogo y encuentra la inspiración y los electrodomésticos necesarios para equipar tu hogar con la garantía y calidad que solo un distribuidor oficial Teka puede ofrecer.
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...AMADO SALVADOR
Descarga el Catálogo General de Tarifas 2024 de Vaillant, líder en tecnología para calefacción, ventilación y energía solar térmica y fotovoltaica. En Amado Salvador, como distribuidor oficial de Vaillant, te ofrecemos una amplia gama de productos de alta calidad y diseño innovador para tus proyectos de climatización y energía.
Descubre nuestra selección de productos Vaillant, incluyendo bombas de calor altamente eficientes, fancoils de última generación, sistemas de ventilación de alto rendimiento y soluciones de energía solar fotovoltaica y térmica para un rendimiento óptimo y sostenible. El catálogo de Vaillant 2024 presenta una variedad de opciones en calderas de condensación que garantizan eficiencia energética y durabilidad.
Con Vaillant, obtienes más que productos de climatización: control avanzado y conectividad para una gestión inteligente del sistema, acumuladores de agua caliente de gran capacidad y sistemas de aire acondicionado para un confort total. Confía en la fiabilidad de Amado Salvador como distribuidor oficial de Vaillant, y en la resistencia de los productos Vaillant, respaldados por años de experiencia e innovación en el sector.
En Amado Salvador, distribuidor oficial de Vaillant en Valencia, no solo proporcionamos productos de calidad, sino también servicios especializados para profesionales, asegurando que tus proyectos cuenten con el mejor soporte técnico y asesoramiento. Descarga nuestro catálogo y descubre por qué Vaillant es la elección preferida para proyectos de climatización y energía en Amado Salvador.
Catalogo Buzones BTV Amado Salvador Distribuidor Oficial ValenciaAMADO SALVADOR
Descubra el catálogo completo de buzones BTV, una marca líder en la fabricación de buzones y cajas fuertes para los sectores de ferretería, bricolaje y seguridad. Como distribuidor oficial de BTV, Amado Salvador se enorgullece de presentar esta amplia selección de productos diseñados para satisfacer las necesidades de seguridad y funcionalidad en cualquier entorno.
Descubra una variedad de buzones residenciales, comerciales y corporativos, cada uno construido con los más altos estándares de calidad y durabilidad. Desde modelos clásicos hasta diseños modernos, los buzones BTV ofrecen una combinación perfecta de estilo y resistencia, garantizando la protección de su correspondencia en todo momento.
Amado Salvador, se compromete a ofrecer productos de primera clase respaldados por un servicio excepcional al cliente. Como distribuidor oficial de BTV, entendemos la importancia de la seguridad y la tranquilidad para nuestros clientes. Por eso, trabajamos en colaboración con BTV para brindarle acceso a los mejores productos del mercado.
Explore el catálogo de buzones ahora y encuentre la solución perfecta para sus necesidades de correo y seguridad. Confíe en Amado Salvador y BTV para proporcionarle buzones de calidad excepcional que cumplan y superen sus expectativas.
Catalogo Cajas Fuertes BTV Amado Salvador Distribuidor OficialAMADO SALVADOR
Explora el catálogo completo de cajas fuertes BTV, disponible a través de Amado Salvador, distribuidor oficial de BTV. Este catálogo presenta una amplia variedad de cajas fuertes, cada una diseñada con la más alta calidad para ofrecer la máxima seguridad y satisfacer las diversas necesidades de protección de nuestros clientes.
En Amado Salvador, como distribuidor oficial de BTV, ofrecemos productos que destacan por su innovación, durabilidad y robustez. Las cajas fuertes BTV son reconocidas por su eficiencia en la protección contra robos, incendios y otros riesgos, lo que las convierte en una opción ideal tanto para uso doméstico como comercial.
Amado Salvador, distribuidor oficial BTV, asegura que cada producto cumpla con los más estrictos estándares de calidad y seguridad. Al adquirir una caja fuerte a través de Amado Salvador, distribuidor oficial BTV, los clientes pueden tener la tranquilidad de que están obteniendo una solución confiable y duradera para la protección de sus pertenencias.
Este catálogo incluye detalles técnicos, características y opciones de personalización de cada modelo de caja fuerte BTV. Desde cajas fuertes empotrables hasta modelos de alta seguridad, Amado Salvador, como distribuidor oficial de BTV, tiene la solución perfecta para cualquier necesidad de seguridad. No pierdas la oportunidad de conocer todos los beneficios y características de las cajas fuertes BTV y protege lo que más valoras con la calidad y seguridad que solo BTV y Amado Salvador, distribuidor oficial BTV, pueden ofrecerte.
KAWARU CONSULTING presenta el projecte amb l'objectiu de permetre als ciutadans realitzar tràmits administratius de manera telemàtica, des de qualsevol lloc i dispositiu, amb seguretat jurídica. Aquesta plataforma redueix els desplaçaments físics i el temps invertit en tràmits, ja que es pot fer tot en línia. A més, proporciona evidències de la correcta realització dels tràmits, garantint-ne la validesa davant d'un jutge si cal. Inicialment concebuda per al Ministeri de Justícia, la plataforma s'ha expandit per adaptar-se a diverses organitzacions i països, oferint una solució flexible i fàcil de desplegar.
5. OpenGL ES
• OpenGL for Embedded Systems
• API de gráficos 3D de bajo nivel
• Permite especificar la geometría y propiedades de objetos
(color, iluminación, texturas)
• Subconjunto de OpenGL
6. Versiones de OpenGL ES
Hardware Dispositivos OpenGL
iPhone
OpenGL ES
Función fija iPhone 3G 1.5
1.1 iPod touch
OpenGL ES Programable
iPhone 3G S 2.0
2.0 (shaders)
7. Un mundo de vértices
• Los objetos se definen mediante conjuntos de vértices
• Cada vértice puede tener asociada información de color y
textura
• Los vértices se agrupan en primitivas: triángulos, puntos,
líneas, tiras de triángulos, etc.
8. Primitivas
Primitiva Descripción
Conjunto de puntos
GL_POINTS
(N vértices → N puntos)
Conjunto de segmentos conectados
GL_LINE_STRIP
(N vértices → N-1 segmentos)
Conjunto cíclico de segmentos conectados
GL_LINE_LOOP
(N vértices → N segmentos)
Conjunto de segmentos desconectados
GL_LINES
(N vértices → N/2 segmentos)
Tira de triángulos
GL_TRIANGLE_STRIP
(N vértices → N-2 triángulos)
Abanico de triángulos
GL_TRIANGLE_FAN
(N vértices → N-2 triángulos)
Conjunto de triángulos
GL_TRIANGLES
(N vértices → N/3 triángulos)
10. Anatomía de una aplicación 3D
(simplificada)
Plantilla “OpenGL ES Application” de XCode
1. Inicializar OpenGL ES
1.1. Crear un contexto OpenGL ES (EAGLContext)
1.2. Asociar el contexto a una vista (EAGLView)
2. Bucle (cada frame):
2.1. Actualizar estado de la aplicación
2.2. Dibujar
12. Borrar la pantalla
• Pinta todo el buffer de un único color
• Se hace (al menos) al inicio de cada frame
13. Borrar la pantalla
• Pinta todo el buffer de un único color
• Se hace (al menos) al inicio de cada frame
glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
14. Borrar la pantalla
• Pinta todo el buffer de un único color
• Se hace (al menos) al inicio de cada frame
glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
15. Dibujar primitivas
• Los vértices se almacenan en un array y se dibujan con
glDrawArrays
16. Dibujar primitivas
• Los vértices se almacenan en un array y se dibujan con
glDrawArrays
glEnableClientState(GL_VERTEX_ARRAY);
17. Dibujar primitivas
• Los vértices se almacenan en un array y se dibujan con
glDrawArrays
glEnableClientState(GL_VERTEX_ARRAY);
const GLfloat vertices[] = {
-0.5f, -0.5f,
0.5f, -0.5f,
-0.5f, 0.5f,
0.5f, 0.5f,
};
glVertexPointer(2, GL_FLOAT, 0, vertices);
18. Dibujar primitivas
• Los vértices se almacenan en un array y se dibujan con
glDrawArrays
glEnableClientState(GL_VERTEX_ARRAY);
const GLfloat vertices[] = {
-0.5f, -0.5f,
0.5f, -0.5f,
-0.5f, 0.5f,
0.5f, 0.5f,
};
glVertexPointer(2, GL_FLOAT, 0, vertices);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
19. Seleccionar un color
• El color se define en RGBA
• Por defecto, las operaciones que utilizan color utilizan el
último color seleccionado
20. Seleccionar un color
• El color se define en RGBA
• Por defecto, las operaciones que utilizan color utilizan el
último color seleccionado
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
21. Seleccionar un color
• El color se define en RGBA
• Por defecto, las operaciones que utilizan color utilizan el
último color seleccionado
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
1
dibujaObjeto1();
22. Seleccionar un color
• El color se define en RGBA
• Por defecto, las operaciones que utilizan color utilizan el
último color seleccionado
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
1
dibujaObjeto1();
glColor4f(1.0f, 0.0f, 0.0f, 1.0f);
23. Seleccionar un color
• El color se define en RGBA
• Por defecto, las operaciones que utilizan color utilizan el
último color seleccionado
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
1
dibujaObjeto1();
glColor4f(1.0f, 0.0f, 0.0f, 1.0f); 2
dibujaObjeto2();
24. Seleccionar un color
• El color se define en RGBA
• Por defecto, las operaciones que utilizan color utilizan el
último color seleccionado
glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
1
dibujaObjeto1();
glColor4f(1.0f, 0.0f, 0.0f, 1.0f); 2
dibujaObjeto2();
dibujaObjeto3(); 3
26. El mundo 3D en OpenGL
• OpenGL representa el mundo 3D a través de matrices a las
que se aplican transformaciones (multiplicaciones)
• Dos matrices fundamentales:
‣ Modelo-vista (GL_MODELVIEW)
‣ Proyección (GL_PROJECTION)
• Las transformaciones se aplican sobre la matriz activa
27. Analogía cámara fotográfica
• Elección de la posición de la cámara
Matriz modelo-vista
• Elección de la disposición de los objetos
• Elección de la lente Matriz de proyección
28. La matriz modelo-vista
• Define la posición y orientación de los objetos
• Tres operaciones: traslación, rotación y escalado
Traslación Rotación Escalado
33. La matriz de proyección
• Determina cómo se va a proyectar la geometría 3D sobre la pantalla 2D
• Planos de corte (clipping)
Ortográfica Perspectiva
35. Ejemplo: Perspectiva
void glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top,
GLfloat near, GLfloat far)
void glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top,
GLfixed near, GLfixed far)
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
float aspect = width / height;
float fov = 50.0f;
float near = 0.5f;
float far = 20.0f;
float top = near * tan(fov * PI / 360.0f);
float bottom = -top;
float left = bottom * aspect;
float right = top * aspect;
glFrustumf(left, right, bottom, top, near far);
36. Anatomía de una aplicación 3D
(actualizada)
1. Inicializar OpenGL ES
1.1. Crear un contexto OpenGL ES (EAGLContext)
1.2. Asociar el contexto a una vista (EAGLView)
1.3. Inicializar la matriz de proyección con glOrtho o glFrustum
2. Bucle (cada frame):
2.1. Actualizar estado de la aplicación
2.2. Dibujar utilizando OpenGL
- Borrar la pantalla con glClear
- Situar la cámara transformando la matriz modelo-vista
- Para cada objeto:
Situar el objeto transformando la matriz modelo-vista
Dibujar las primitivas del objeto
38. Texturas
• Imágenes 2D que se dibujan sobre las primitivas
• Son un aspecto crítico en aplicaciones 3D para iPhone por su
tamaño en memoria y tiempo de carga
39. Cargar una textura
1. Cargar la imagen con CGBitmapContextCreate (ver clase Texture2D, ejemplo “Crash Landing”)
2. Definir los parámetros de filtrado
3. Crear un objeto textura en OpenGL con glTexImage2D
img = cargarImagen(“imagen.png”);
GLuint texName;
glGenTextures(1, &texName);
glBindTexture(GL_TEXTURE_2D, texName);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, imgWidth, imgHeight, 0, GL_RGBA,
GL_UNSIGNED_BYTE, img);
free(img);
40. Utilizar una textura
1. Activar las texturas con glEnable(GL_TEXTURE_2D)
2. Definir las coordenadas de la textura, que afectan a cómo se acopla la textura a los vértices
3. Dibujar la primitiva
41. Utilizar una textura
1. Activar las texturas con glEnable(GL_TEXTURE_2D)
2. Definir las coordenadas de la textura, que afectan a cómo se acopla la textura a los vértices
3. Dibujar la primitiva
glEnable(GL_TEXTURE_2D); /* sólo una vez */
42. Utilizar una textura
1. Activar las texturas con glEnable(GL_TEXTURE_2D)
2. Definir las coordenadas de la textura, que afectan a cómo se acopla la textura a los vértices
3. Dibujar la primitiva
glEnable(GL_TEXTURE_2D); /* sólo una vez */
glBindTexture(GL_TEXTURE_2D, texName);
43. Utilizar una textura
1. Activar las texturas con glEnable(GL_TEXTURE_2D)
2. Definir las coordenadas de la textura, que afectan a cómo se acopla la textura a los vértices
3. Dibujar la primitiva
glEnable(GL_TEXTURE_2D); /* sólo una vez */
glBindTexture(GL_TEXTURE_2D, texName);
glVertexPointer(3, GL_FLOAT, 0, vertices);
44. Utilizar una textura
1. Activar las texturas con glEnable(GL_TEXTURE_2D)
2. Definir las coordenadas de la textura, que afectan a cómo se acopla la textura a los vértices
3. Dibujar la primitiva
glEnable(GL_TEXTURE_2D); /* sólo una vez */
glBindTexture(GL_TEXTURE_2D, texName);
glVertexPointer(3, GL_FLOAT, 0, vertices);
GLfloat texCoordinates[] = {
0, 1.0f,
0, 0,
1.0f, 0,
1.0f, 1.0f
};
glTexCoordPointer(2, GL_FLOAT, 0, texCoordinates);
45. Utilizar una textura
1. Activar las texturas con glEnable(GL_TEXTURE_2D)
2. Definir las coordenadas de la textura, que afectan a cómo se acopla la textura a los vértices
3. Dibujar la primitiva
glEnable(GL_TEXTURE_2D); /* sólo una vez */
glBindTexture(GL_TEXTURE_2D, texName);
glVertexPointer(3, GL_FLOAT, 0, vertices);
GLfloat texCoordinates[] = {
0, 1.0f,
0, 0,
1.0f, 0,
1.0f, 1.0f
};
glTexCoordPointer(2, GL_FLOAT, 0, texCoordinates);
glDrawArrays(GL_TRIANGLE_FAN, 0, 4);
47. Shaders
• Programas ejecutados por la GPU
• OpenGL ES 2.0 incluye dos tipos:
‣ Vertex shaders: manipulan vértices
‣ Fragment shaders: manipulan píxeles
• Se programan en OpenGL ES Shading Language
48. Vertex shaders
• Procesan los vértices especificados con glDrawArrays
• El shader está formado por el conjunto de operaciones que se
aplicarán a cada vértice
• Aplicaciones típicas:
- Deformación de superficies
- Suavizado de elementos articulados para animación de
personajes
- Etc.
49. Fragment shaders
• Procesan el color de los píxeles (pixel shaders)
• Aplicaciones típicas:
- Bump mapping
- Reflejos
- Cartoon-shading
- Etc.
50. Creación de shaders
• Se crea un nuevo objeto shader y se compila el código
• También se puede cargar el shader precompilado (ShaderBinary)
const char *shaderFiles[] = {
“shader1.glsl”,
“shader2.glsl”,
};
const int shaderFilesLength[] = {
NULL,
NULL,
};
uint shader = CreateShader(VERTEX_SHADER); /* o FRAGMENT_SHADER */
ShaderSource(shader, 2, shaderFiles, shaderFilesLength);
CompileShader(shader);
51. Utilización de shaders
• Los shaders se agrupan en una entidad común llamada programa
• Una vez se ha creado el programa y añadido los shaders, se ejecuta con
UseProgram
uint program = CreateProgram();
AttachShader(program, shader);
LinkProgram(program);
UseProgram(program);
52. Más información
• OpenGL ES Programming for iPhone, iPhone Reference Library,
http://developer.apple.com/iphone
• OpenGL ES, http://www.khronos.org/opengles
• T. Akenine-Möller, E. Haines and N. Hoffman, Real-Time
Rendering, A. K. Peters Ltd., 3rd edition
53. ¡Gracias!
Manuel R. Freire
manuel@interactive-fan.com