¡Habemus nuevo blog!

Si bien es cierto que hago un post anual, y también de que he venido trabajando en otros temas distintos a la Informática/Computación Gráfica, he decidido (hace un par de meses de hecho, olvide hacer el respectivo post 😬) crear un nuevo site donde no solo habrá cosas de rendering/games/visualización.

He creado como una imagen personal, y estoy bastante 😃. El sitio nuevo es

De hecho en el primer post en ese blog escribo un poco sobre la historia de cómo llegue a eso, y aparece este blog 🤓.

Entonces, los invito a que visiten ecode.dev, donde también hay Instagram, Twitter, Twitch y Youtube 😎.

Siempre, pueden preguntarme directamente o por acá (igual estaré monitoreándolo), ya existen muchos medios para contactarme.

Bueno, me despido del Código Gráfico (¿por ahora?) y happy rendering.

Publicado en Noticias | Etiquetado , | Deja un comentario

VTK con Visual Studio 2017 (C++)

VTK (The Visualization Toolkit) es una excelente biblioteca multiplataforma de código abierto enfocado en el despliegue de datos científicos en 2D y 3D. El core de VTK está desarrollado en C++, pero contiene interfaces para emplear Tcl/Tk, Java, Python, (ActiViz.NET para C#). VTK contiene algoritmos para visualizar valores escalares, vectoriales, tensoriales, texturas, así como un conjunto de widgets, procesamiento en paralelo, o soporte de otras herramientas como Qt o Tk. También implementa algoritmos para el suavizado de mallas geométricas, reducción de polígonos, triangulación de Delaunay, corte de polígonos, entre otros. VTK es desarrollada por Kitware la cual es una empresa líder en investigación y desarrollo en campos como visión por computador, visualización médica.

Seguir leyendo

Publicado en Algoritmos, Bibliotecas, Código | Etiquetado , , , , , , | Deja un comentario

Un Bot para Telegram: Caraotas con Mayonesa

Antes de empezar, quiero aclarar que este post se origina porque un amigo dijo “hacer un bot para Telegram debe ser difícil y debe llevar tiempo configurarlo”. A raíz de ello, aquí explico una forma sencilla y fácil, quizás no la forma eficiente, quizás no la estándar, pero es una manera funcional 😊.

Un bot (derivación de robot, así como ama de mamá) es un programa que ejecuta tareas repetitivas, tediosas o que simplemente un ser humano no quiere realizar. Existen bots para buscar información en la red, bots para dar respuestas rápidas a usuarios o hasta mantener conversaciones (chatbots). Dependiendo de las características del bot, su complejidad puede varias. Actualmente, diversas plataformas permiten la creación de bots como Facebook, Slack, Skype, Messenger, Telegram y muchos otros.

Existen diversos websites que permiten construir estos bots con unos cuantos clicks. Sin embargo, siempre es más divertido programarlos. Seguir leyendo

Publicado en Bibliotecas, Código | Etiquetado , , , | Deja un comentario

VTK en la Web (VTK.js)

Con la aparición de WebGL, el despliegue de mallas tridimensionales o volúmenes es una realidad desde hace unos años en el browser modernos. De hecho, existen diversas bibliotecas, APIs y frameworks con amplio uso por los desarrolladores a nivel mundial. La mayoría de éstas están enfocadas en realizar juegos, gráficos, o visualización de datos “genéricos” (genéricos = estadísticas, productos, marketing, entre otros). Sin embargo, no existen muchas opciones para la visualización científica y la exploración de los datos resultado de una investigación científica. Seguir leyendo

Publicado en Bibliotecas, Herramientas, Noticias | Etiquetado , , | 1 Comentario

OpenCV 3.3 con Visual Studio

Es difícil explicar qué es OpenCV, no por su definición, sino por su gran utilidad y su amplio uso en diversas aplicaciones y ámbitos a nivel mundial (desde sistemas de seguridad con detección de movimiento hasta aplicaciones industriales/comerciales de reconocimientos de objetos). OpenCV (Open Source Computer Vision) es una biblioteca de código abierto de propósito general para la manipulación de imágenes & video, y además integra algoritmos de aprendizaje automático (aka machine learning). Visión artificial o visión por computador se suelen emplear como sinónimos en la literatura, siendo OpenCV, desde 1999, una referencia en dicho campo.

OpenCV es una biblioteca multiplataforma escrita en C (y desde la versión 2.0, incluye código C++), con wrappers para Python y Java. Se puede ejecutar en Windows, Linux, Android, MacOS, FreeBSD, OpenBSD y Maemo (por ahora). Incluye módulos de aceleración empleando CUDA y OpenCL. Es decir, ¡funciona casi en todas las plataformas! Seguir leyendo

Publicado en Algoritmos, Bibliotecas, Código | Etiquetado , , , | Deja un comentario

OpenGL (GLUT) con Visual Studio 2017

Después de muchos años programando con OpenGL, me he dado cuenta que existen diversas formas de trabajar con OpenGL en C++/Python/Java/C# (por mencionar algunos), a pesar que el número de IDEs o ambientes son limitados. Ahora, enfocándose en C++ sobre Windows o Linux, los editores tipo Sublime, Vim, Eclipse for C++, Dev C++, o Atom son muy empleados.

Particularmente en Windows, Visual Studio siempre ha sido mi opción. Las razones: facilidad de manejar el código, portabilidad, herramientas de debugging y por supuesto el editor que es magnífico (es mi opción). Seguir leyendo

Publicado en Código | Etiquetado , , , , , | 6 comentarios

Vulkan > OpenGL

Definitivamente la noticia de Vulkan ha sido impactante estos últimos días en el mundo de la Informática Gráfica. En pocas palabras: Vulkan es el sucesor de OpenGL. Vulkan es entonces la nueva generación del API gráfico OpenGL Esta noticia fue dada a conocer en el GDC 2015 (The Game Developers Conference) por The Khronos Group, quienes mantenían dicha actualización con el nombre clave glNext (que ya ha sido descartado).

vulkan1-640x320 Seguir leyendo

Publicado en Bibliotecas, Noticias | Etiquetado , , | Deja un comentario

ASCII Art con una WebCam

El ASCII art es una técnica que data de 1966 y es utilizada en diseño gráfico con el uso del computador que permite formar figuras/imágenes digitales empleando los caracteres imprimibles de la codificación ASCII (un total de 95). Con un simple editor de texto, cualquier puede generar este tipo de arte (de esta forma no resulta tan sencillo).

ascii2 Seguir leyendo

Publicado en Algoritmos | Etiquetado , , | 1 Comentario

Modelo de Iluminación Phong en 2D

El modelo de iluminación Phong, o modelo de reflexión Phong, o simplemente Phong Lighting es un modelo empírico de iluminación local de puntos sobre una superficie (1973). Este describe el comportamiento de la reflexión de la luz sobre una superficie expresada como una combinación de un término ambiental, término difuso (reflexión difusa) y un término especular (reflexión especular).

Modelo de Iluminación Phong. Extraído de Wikipedia

La mayoría de los sistemas gráficos aplican este modelo para la iluminación de modelos geométricos o volumétricos. Sin embargo, éstos requieren modelos 3D para su cálculo. Entonces, ¿es posible realizar dicho modelo en un sistema de despliegue con primitivas de despliegue 2D? Seguir leyendo

Publicado en Algoritmos, Código | Etiquetado , , , | 6 comentarios

Editores de Shaders en la Web

Gracias a la implementación de WebGL en los browser actuales junto al elemento Canvas de HTML5 + CSS3 + SVG, es posible construir aplicaciones, herramientas o juegos de alto impacto para la Web. Una de éstas aplicaciones en la Web son los editores. Actualmente, existen diversos editores en línea, máquinas virtuales, sandbox para el testing de aplicaciones/lenguajes en particular, etc. Particularmente, en el área de Informática Gráfica los editores de programas en la GPU (shaders) son de alto interés porque no requieren desarrollar todo el entorno para ser utilizados. Empleando OpenGL para la Web, es decir, WebGL, se emplea el lenguaje de shader ESSL  o GLSL ES. Dicho lenguaje, está formado por el programa de vértices (vertex shader) y el programa de fragmentos (fragment o pixel shader), los cuales para ser ejecutados con WebGL requieren varias líneas de código. En este post, veremos algunos editores que son herramientas muy útiles y nos permitirán ahorrar varias líneas y empezar a trabajar directamente con los shaders. Seguir leyendo

Publicado en Código, Herramientas | Etiquetado , , , | Deja un comentario

Babylon.js

Es bien conocido que WebGL requiere de muchas líneas de código para el despliegue de primitivas 3D dentro de una escena. Numerosos tutoriales existen en la Web, libros, artículos, entre otros que explican paso a paso y con mucho detalle el uso de los buffers y shaders requeridos en WebGL. Sin embargo, para muchos programadores éste lenguaje es complejo en términos de ser muy “bajo nivel” e implicar un conocimiento técnico sólido del pipeline gráfico. Por ello, han surgido diversas bibliotecas que sirven de engine/API/bliblioteca para crear contenido 3D interactivo en la Web utilizando HTML5/SVG/WebGL. Entre las más conocidas están Three.js, C3DL, O3D, PhiloGL, CopperLicht, SpiderGL y Babylon.js. En este post hablaremos un poco sobre Babylon.js.

babylonjs

Website de BabylonJS

Seguir leyendo

Publicado en Bibliotecas, Herramientas | Etiquetado , , | 1 Comentario

Reportaje: Videojuegos con calidad venezolana

A finales de Septiembre, el diario El Nacional presentó un artículo en su revista dominical Todo En Domingo escrito por Carola Ettegui titulado como este post: Videojuegos con calidad venezolana.

Videojuegos Seguir leyendo

Publicado en Games, Noticias, Opinión | Etiquetado , , , , | Deja un comentario