Latest Entries »

Explicación sencilla del modelado de la cabeza de un tornillo (ya lo se, usando muchos más vértices de los necesarios).

El objeto del vídeo es mostrar algunas de las posibles formas de conseguir modelar un objeto para que adquiera la forma que nosotros queramos.

Opción A) Puede ser útil a quien este empezando con Blender. Espero que así sea.

Opción B) Puede darle pena a quien ya lleva mucho tiempo usándolo. No os paséis mucho trolleando :p

Si este tutorial te resulta complejo en lo tocante a la concepción espacial, creo que deberías, antes de ponerte con BLENDER, tratar de mejorarla. Puedes probar en http://www.educacionplastica.net donde tienen unas pequeñas aplicaciones JAVA con unos ejercicios sencillos de dibujo diédrico. Recuerda que sin una muy clara concepción del espacio 3D, ejes, referencias, etc. te será imposible crear dentro de cualquier programa 3D.

En fin, espero que resulte útil.

Hasta la próxima.

Hola de nuevo

Debo tener algún problema con la versión instalada de Blender en Linux Mint porque no conseguía que me funcionase la iluminación ambiental en el motor de render Cycles. Sea como sea al final he conseguido hacerle una trampa y me he fabricado un cielo artificial con media esfera y la he mapeado por dentro. La solución es un chapú, pero a ver si encuentro ya mañana que hacer para que me funcione correctamente el programa y no tener que andar haciendo pruebas y dale que te pego con el ensayo error para conseguir cosas que el propio programa hace fácilmente, en teoría.

En fin esta es la imagen que he estado trabajando. Creo que faltaría conseguir que las esferas de ambos relojes reflejaran un poco del entorno para que se apreciaran mejor y quizás en el edificio del fondo unas antenas de esas de móviles tan vistosas para darle el toque final. Por cierto, el edificio esta basado en uno de verdad, ¿alguien sabe cual es?

Desierto Lírico
Día Gris

Bueno, pues he aquí una primera entrega de los tutoriales «Curva Zero». El primero que he creado no corresponde precisamente al más fácil, pero responde a una solicitud que me hacían en un comentario el otro día.

Espero que les resulte útil.

Desde que comencé este blog ya hace han sido muchas las veces que he querido ponerme a hacer tutoriales sencillos que hagan la curva de aprendizaje de BLENDER menos empinada a quienes comienzan. Debido a motivos estrictamente personales nunca tuve la ocasión de ponerme a hacerlo.

Pero ahora que esos motivos no me frenan creo que dedicaré algunos minutos a la semana a crear pequeños tutoriales de pocos minutos en los que si mi habilidad y experiencia lo permiten trataré de explicar algunas de las partes de este genial programa de tal forma que quien no tenga mucha experiencia pueda seguir los pasos.

Espero que les gusten. Como se trata de reducir la curva de aprendizaje los llamaré «Curva Zero».

Desierto Lírico
Desierto Lírico

Hola de nuevo

Este mini post solo lo pongo para contener un video demostración del aspecto de una cara animada para pronunciar unas simples letras.

El proceso viene a ser el de definir una serie de posturas para los vértices de la cara, de tal modo que cada una de estas posturas estará contenida dentro de una Shapekey. Luego añadiendo una serie de actuadores o drivers se puede hacer que la armadura o el esqueleto controle la cantidad de deformación desde lo que sería la cara en posición inicial hacia la posición concreta que ese actuador este preparado para animar, o lo que es lo mismo cada actuador modifica una parte de un gesto facial. Así podemos definir la postura de la boca, la inclinación de las cejas o los parpadeos.

Como decía se trata solo de poner el resultado. Ustedes me dirán si se ve bien o mal o mejor me voy dedicando a otra cosa y tal. 🙂

Saludos, gracias por estar ahí.

Bueno después de algunas horas atrancado con esto me hago a mi mismo un resumen para intentar afianzarlo. De hecho no debería hacerlo por ser bastante sencillo. La complejidad, para mi, ha venido por mal entender un concepto y partiendo de esa falsa premisa no me entraba en la sesera el resto.

He comenzado este artículo haciendo referencia a LIBGDX que es un framework capaz de permitirnos crear una aplicación que se ejecute tanto en escritorio, como en el navegador, como en dispositivos Android (que es por lo que yo la estoy usando). Este framework contiene una “adaptación” de OPENGL ES en su interior y para desenvolverme con las funciones que hacen uso y referencia a OPENGL he tenido que ponerme a aprender algunas cosas.

En fin, OPENGL ES es …. puedes verlo aquí o aquí, una API variante de OPENGL y orientada a dispositivos integrados. A partir de ahora los conceptos que se describen son relacionados con mi experiencia con LIBGDX, que no con OPENGL que nunca lo he usado.

Entre las muchas funcionalidades de LIBGDX tenemos la de poder crear un entorno 3D y llenarlo con objetos que se representaran como si los miráramos a través de una cámara. Esta cámara tendrá su posición en el espacio, o lo que es lo mismo, sus coordenadas en el sistema de coordenadas (en adelante SC) del entorno 3D que nos crea.

El entorno 3D estará, suponemos,repleto de multitud de objetos y estos serán observados desde la posición de la cámara. Además del lugar donde se encuentra la cámara, en LIBGDX podemos definir hacia donde mira la cámara y las distancias mínima y máxima dentro de las cuales cualquier objeto sería visible y por último la relación de aspecto, es decir, el ancho y el alto de la imagen que será capturada por la cámara. Esto define lo que se denomina frustrum, que no es sino la pirámide truncada que se muestra en la figura.

Frustrum OPENGL ES

Y se puede definir con las siguientes funciones:

		PerspectiveCamera camera = new PerspectiveCamera(60, 800, 480);
		camera.position.set(0, 2, 4);
		camera.direction.set(0, -2, -4);
		camera.near = 1;
		camera.far = 1000;

 
En esas lineas de ejemplo estamos creando un objeto de tipo cámara perspectiva con una resolución de 800×480(típica de muchos dispositivos móviles), la estamos situando en las coordenadas (0,2,4) y la hacemos mirar hacia el origen de coordenadas lo que equivale al vector indicado por (0,-2,-4). Además y por último definimos la altura del frustrum indicando a que distancias cercana y lejana puede ver la cámara.

Eso en lo concerniente a la creación de la cámara. Pero lo que realmente me traía de cabeza era el tema de las matrices para incrustar otros elementos en la escena 3D. Yo por algún motivo había comprendido mal siempre que estas transformaciones gráficas partían, o mejor dicho se hacían, desde el punto de vista de la cámara. Y no es cierto. En realidad, por defecto todos los objetos que agregásemos a una escena aparecerían ocupando todos la coordenada origen (0,0,0)

La mecánica para agregar cualquier objeto PODRÍA ser la siguiente (dependiendo de las necesidades de diseño del espacio 3D concreto podrían usarse en otros orden o bien usarse unas o no otras). En fin, para describir el proceso supongamos que todo objeto 3D llega a la escena a través de un portal espaciotemporal.

Lo primero que hemos de hacer es ESTABLECER la matriz gráfica, o lo que es lo mismo asegurarnos que nuestro portal está en el origen de coordenadas.
A continuación GIRAREMOS nuestro portal los grados que sean necesarios para que el objeto aparezca con las inclinaciones adecuadas.
Después MOVEREMOS el portal a las coordenadas donde queremos que el objeto 3D aparezca.
Y, por último, ELIMINAREMOS la matriz gráfica, es decir, eliminaremos el portal.

Esto traducido a lineas de código es:

		gl.glPushMatrix();		//SITUAMOS EL PORTAL
		gl.glRotatef(30, 0, 1, 0);	//GIRAMOS EL PORTAL 30º EJE Y
		gl.glTranslatef( 1, 3, -2);	//MOVEMOS EL PORTAL A LAS COORDENADAS

		//OPERACIONES DE RENDERIZADO  Y TEXTURIZADO DEL OBJETO

		gl.glPopMatrix();		//ELIMINAMOS EL PORTAL

 
Esas operaciones se repetirían para cada objeto 3D y en última instancia algunos otros métodos asociados a la cámara serían los encargados de mostrar el resultado, pero eso da para algún futuro post.

Mientras lo he redactado me he hecho cargo de que puede parecer un autentico pegote para quien ya lo conoce, pero después de haberlo malentendido durante un buen tiempo no quería dejar pasar la oportunidad de explicarlo, principalmente para mi mismo, y que así pueda ser de utilidad en el futuro.

Un saludo

Basándome en el simple diseño del primer satélite artificial, he modelado y realizado el siguiente montaje con Blender.

Render wired
Wired Render
Sputnik 2.0
Sputnik 2.0