6.29.2006

Más pruebas: envmap + fresnel + proctex

En estos días de relax no he tocado demasiado este mini-motor/mini-banco-de-pruebas, pero esta mañana que no tengo demasiado que hacer he incluído un shader de envmap con fresnel para ver qué tal quedaba. Si alguien no tiene claro qué es, no es difícil, el envmap se basa en usar la normal de la malla para buscar en una textura el texel adecuado. Lógicamente la normal se mapea a 2D para poder tener los UV de toda la vida. En cuanto a fresnel es, a grandes rasgos, la atenuación de la luz reflejada (o refractada) al incidir sobre un objeto. Se ve muy bien como afecta en este tutorial de blender (las imágenes de abajo). Aunque si eres teleco (JAJA), con tus conocimientos de transmisión de ondas EM por FO puedes entretenerte mirando una solución algo más formal. La aproximación que uso es una que encontré en este foro un poco retocada.

Envmap sin fresnel:



Envmap con fresnel:




La textura que hace las veces de entorno es una textura procedural que simula un piso de azulejos que he hecho con otros propósitos:

La primera aproximación:



Un poco de color:




Un poco de perlin de fondo para dar "realismo":



En la textura guardo el mapa de alturas en el canal alpha para luego hacer bumpmap o generar el normal map en un futuro.


El código que genera la textura es el siguiente:


GEN_BEGIN(Test6)
PIXEL()
{
float step = 1.666f;
float width = 0.2;
float mult = 10;
float xx = mult*float(s)/256.0;
float yy = mult*float(t)/256.0;
float n ;
float n3 = TilePerlinNoise2D(xx,yy,6,mult,1.1);
float n2;
float lim = 0.1;

n = mod(step,xx);

float width2 = 1.0-width + width/2.0;
n = smoothstep(1.0-width,width2,n) - smoothstep(width2,1.0f,n);

n2 = mod(step,yy);
n2 = smoothstep(1.0-width,width2,n2) - smoothstep(width2,1.0,n2);
float f = clamp(0,1,n+n2); //smoothstep(0.9,1,0.5*n+0.5*n2);
//n3 = 0;
float bump = f;
f = 0.7*f + 0.3*fabs(n3);//*(1-f);


int e = int((xx+width/2.0)/step) + int((yy+width/2.0)/step);
//e = 2;
switch(e%3)
{
case 0:
c = RGBA(98,174,115);break;
case 1:
c = RGBA(252,249,141);break;
case 2:
c = RGBA(255,255,255);break;
}

c = (1.0-f)*c;
c[3] = bump*255;



}

GEN_END(Test6)




y las macros que generan la clase que después será instanciada por el manager de texturas:

#define GEN_BEGIN(name) class Texture##name: public GenTexture { public: ~Texture##name(){if(DEBUG_TEX) this->Write(#name##".tga"); } Texture##name(int _x,int _y):GenTexture(_x,_y){ format = T_RGBA;


#define INIT() Setup(); } void Setup(){

#define PIXEL() /*Gen();*/} RGBA& PixelFunc(int s,int t) { static RGBA c; float x = -1.0 + 2.0*(float)s/(float)TextureData::x; float y = -1.0 + 2.0*(float)t/(float)TextureData::y; /*polares*/ Vector2f v(x,y); float r = vectorDist(v); float phi= atan2((float)y,(float)x);

#define GEN_END(name) return c;} Palete paleta;};

6.22.2006

Buscando trabajo... pero así no

Hace ya casi dos semanas que terminé la carrera y todavía estoy un poco descolocado, aunque no lo suficiente como para entrar al capote. El caso es que accenture me ha llamado en esta semana dos veces para ir a una prueba de selección a madrid.

No me parece mal que me llamen para hacer procesos de selección, es más, está bien que piensen en ti, te hace sentir mejor. Pero señores, así no. Para empezar yo no he enviado mi currículum a accenture, pero pasando el pequeño detalle, cuando me han llamado nisiquiera me han dicho para que era la prueba de selección. Han preguntado si era Javier Santana, he dicho que sí (jaja), y a continuación me ha dicho que el miércoles que viene tienen una prueba de selección, que estaban interesandos en que me pasara... ¿pero? ¿qué?.

Si tuvieran un poco de sentido común me hubieran dicho para qué era el proceso, dónde, cuando, cómo, por qué, de qué me conocen, para qué proyecto, qué es lo que les interesa de mi, sueldo, etc, etc.Creo que se deben dar cuenta de que no me están haciendo ningún favor invitándome a ir a un proceso de selección. Imagino que estarán acostumbrados al típico chaval que ha terminado sus estudios, deseando encontrar un trabajo, pero esa NO es la forma de hacer las cosas.

Podría preguntar yo pero es que yo no soy el que está buscando a accenture, son ellos los que me buscan a mi y por tanto tienen que su empresa me resulte atractiva, encima para ir a un proceso de selección... jajaja, sí, para entrar en la élite. SOY YO EL QUE ELIJO EMPRESA SEÑORES, Y LO HAGO PORQUE PUEDO. Queda claro ¿no?. Suena prepotente y tal vez lo sea, pero hay puestos de trabajo para dar y tomar y además, hay que tener en cuenta que, además te haber estado 7 años de mi vida buscando la mejor forma de hacer las cosas, he estado otro par de ellos intentando aplicar lo que he encontrado a la vida real, cosa que no pueden decir muchas personas de mi edad.

Voy a seguir dándoles largas hasta que me dejen de llamar o me pregunten qué pasa. De momento les he dicho que estoy de vacaciones hasta el 15 de julio.

6.21.2006

No renuevan licencias de emisión a la COPE en cataluña

Aparte del revuelo político que seguro provoca la noticia (ojo, fuente 20 minutos), creo que no se han parado a investigar un poco como funcioan esto.

Cuántas cadenas de radio tienen atribuídas las frecuencias que usan? radio nacional y cuántas más? Por le general ocupas una frecuencia, si no te dan el toque, te quedas en ella, si te lo dan, esperas a que te den un ultimatum y la cambias a otra. Por eso puede que alguna vez hayais escuchado onda cero a las 23 y a las 8 de la mañana punto radio (caso posiblemente ficticio). Además que luego es un choteo de mucho cuidado porque aunque una frecuencia se le haya asignado a una entidad, luego la usan otras, etc. Basta con echar un vistazo las atribuciones de frecuencia en castilla y león para la FM. Por ejemplo, punta radio aranda de duero emite en 93.8FM, pero, umh, no veo la asignación de frecuencia en ninguna parte... o buscad la asignación de radio maría en valladolid (100.8) o mortal FM (90.2).

En este país las cosas funcionan así.

"Periodismo" al poder

Leo a través de meneame en el país que un error tipográfico hace que una integral de un exámen de selectividad se haga difícil de resolver para el nivel pedido. Lees el artículo y te preguntas al final... ¿y la integral? Como se puede hablar todo un artículo de una cosa sin decir qué es esa cosa? cómo se puede ser tan malo? Le he enviado a la """periodista""" una nota para decirla que haga el favor.

Las razones de no haber puesto la integral seguramente sean varias... no ha preguntado la integral (porque no tiene ni idea de qué es), no ha puesto la integral porque su jefe le ha dicho que eso hará que la gente no lea su artículo o es posible que no sepa escribir una integral en su editor, jaja.

Otras lecturas: malaprensa

Los videojuegos españoles vistos por españoles

En el blog de Nae leo un interesante análisis de porque tenemos esa visión de los juegos/desarrolladores españoles. No olvides leer los comentarios que también tienen jugo.

Recordar que Nae es diseñador en Digital Legends, esribe en ojgames, anaitgames y además es un tío que sabe muchísimo de videojuegos, sobretodo a nivel nacional. En persona es una espectáculo.

En los comentarios he leído que exelweiss tiene un blog lo cual ha sido unra grata sorpresa.

6.19.2006

Estudio de sexismo en videojuegos

A través de meneame leo el siguiente post acerca de un estudio publicado por el instituto de la mujer sobre el sexismo en videojuegos.

Las joyitas que se pueden leer son muchas y muy buenas, empezando por las que pone Flush en su bitácora (la de los lemmings, pag. 434 es para llorar) y terminando por la que comentan en el AOEII en la que el investigador o investigadora (JAJAJA!), yo me decanto por investigadora, argumenta que es sexista debido a que para generar más ejércitos no se hace referencia al amor y al cuidado de los hijos:

"""
Aunque hay que hacer construcciones, recoger alimentos, cultivar, comerciar...,
no hay ninguna referencia a amarse, reproducirse, cuidar de los hijos e hijas,
educarlos..., como medio de conseguir una civilización.
"""
Ya me imagino llevando a las madres a cuidar a los hijos mientras se quedan huerfanos . No se han dado cuenta de que es un videojuego?

Increible. Solo espero que este libro no se haya pagado con fondos públicos y que esos investigadores e investigadoras no vuelvan a investigar, por favor.

6.17.2006

Tomb raider

Veo en vidaextra a través, como no(*), de youtube, un video de la versión, parece, del mítico y fantástico tomb raider, sí, el original, aquel que el render era por software, que las tetas de lara eran 4 triángulos, el que tenía una música y unos efectos de sonido, que a pesar de ser pocos, te envolvían en aquella atmósfera tan especial que no he vuelto a ver en ningún juego (solo resident evil se acercó).

Para mi tomb raider es el mejor juego de la historia, es todo lo que podía esperar de un videojuego, es el videojuego que yo hubiera creado. Teniendo en cuenta que siempre me gustaron las películas de indiana jones era de esperar. En mi habitación aún tengo posters de Tomb Raider, uno junto a la vista de la ciudad de final fantasy 7 y otro pegando al de sega rally.

Pero la cosa no queda ahí, mi pc se llama qualopec, mi pocketpc qualopy, mi mail es qualopec en gmail.com, el fondo de pantalla de mi PC de sobremesa tengo a lara tirándose de cabeza a la primera piscina de la segunda pantalla (donde aparece el oso), también tengo la versión para pocketpc, escucho la música de vez en cuando (una joya), tengo todos los game40 en los que hablaban de tomb raider, snif.

Una lástima que se deteriorara tanto con el paso del tiempo. Me ha alegrado ver algunas pantallas de aquel mítico tomb raider. ains... :)

EDIT: *Parte* de la música se puede descargar de croftinc y no solo la de TR1.


(*) los blogs se están conviertiendo en el marca, poco texto, muy sensacionalista y bien mascadito, además de muchas imágenes y videos.

6.16.2006

Pruebas con AO

En estos días de relax he decidido ponerme a hacer un pequeño motor que use shaders y procedural (no hay entrada en la wikipedia española, lo mismo la creo), como viene siendo habitual.

No había trabajado todavía con GLSL, el lenguaje de OpenGL para shaders, y me ha sorprendido la facilidad y la potencia para hacer todo tipo de cosas, las que antes se hacían sin shaders y las que ahora son posibles gracias a los shaders.

En un par de días, miré la referencia de GLSL (pdf) que por cierto tiene agradecimientos a un español, y programé un sistema muy simple que me permite trabajar con shaders.

Lo primero que programé es la generación de mallas; además de la subdivisión y smootheado de las mismas, he creado un sistema de extrusión y generación por revolución. Creo que además añadiré algo que permita hacer un dupliverts a lo largo de un spline y que el sistema de extrusión permita hacerlo también usando un spline.
Con una textura basada en perlin, un cuerpo de revolución y un cubo he creado la escena de la derecha. EL cubo tiene un toon shader muy simple y el cuerpo de revolución iluminación direccional por pixel. El suelo usa el render habitual de OpenGL (el shader program 0 :).




Subdividiendo mucho las mallas y usando un shader adecuado se pueden conseguir imágenes como la de la derecha. Es interesante ver como puedes ajustar la iluminación como te de la gana, por ejemplo en la imagen quito la componente especular (no me gusta la luz especular!) y la atenuación que meto en función de la distancia la varío como quiero :).




Ya que estaba me he puesto a jugar un poco con una aproximación de Ambient oclussion, pero las cosas a la primera nunca funcionan bien:



Otras pruebecillas, algo mejor:



Subdividiendo algo más el suelo (la componente de AO se calcula por vértice):




Ahora estoy probando la generación de unos arbolitos con unos perlin... :)

Gracias a iq por la información de su web acerca de su demosystem.

6.10.2006

Y ahora ¿qué?

Esa es la pregunta que seguro que se hacen muchas de las personas que, después de obtener el título, se hacen cuando llegan a casa y tienen un momento para pensar en todo.

Ayer hice la presentación del PFC y en este caso para mi no fue el trámite que hay que pasar para obtener el títutlo, fue una presentación de mi trabajo. Creo que la presentaión fue amena y asequible, duró unos 40 minutos y después de la presentación los comentarios del tribunal fueron alentadores, con tribunales así da gusto.

Como curiosidades decir que no me puse nervioso en ningún momento (se van notando las tablas) y que mi abuela le quitó el diábolo a uno de esos piritis que tienen, además de diábolos, combas, pelotas y esas cosas, y comenzó a lanzarlo al aire mientras el rastas lo flipaba XD.

Al final, una matrícula :)

6.07.2006

Aventuras a la vieja usanza

Hoy he visto una foto en el en un post del foro de stratos de creación de aventuras gráficas. Concretamente esta:



Es un mapa para la búsqueda de caminos. Si no recuerdo mal (spoiler)por esa sala encontrabas a la novia (/spoiler).

Me ha traido gratos recuerdos y eso que no hace demasiado que jugué a este juego. Lamentablemente en la época de estas aventuras gráficas yo no conocía casi la existencia de pc's (ni parecidos) y he tenido que jugar ya de mayorcito. Menos mal que con VDM sound, DOSBox y scummvm se pueden jugar a estos pedazo de juegos. Este verano me voy a pegar unas viciadas a los monkeys island tumbado en el cesped de la piscina en compañía de mi PocketPC... Una pena que algunos juegos no estén preparados para el ppc, por ejemplo en un indiana jones no es posible dar puñetazos y no puedes avanzar en el juego.
Por cierto que hace nada ha salido una demo de una aventura gráfica de indiana jones, "Indiana Jones and the fountain of youth". La verdad es que está clavada: los gráficos, la música y el estilo.

6.06.2006

Probando XGL

A raiz de la noticia en barrapunto en la que se acusaba a kororaa violar la GPL (tema que colea en la web oficial) decidí probar esta distro, que además es live , para ver en directo y no en video como hasta ahora el funcionamiento de XGL.

Me sorprendió que funcionara a la primera con mi ATI 9700 del portátil ya que había intentado, sin mucho éxito ni entusiasmo tengo que decir, instalarlo hace tiempo. Una vez arrancado lo único que hay de nuevo es un documento html en el que explican los atajos de teclado para hacer macanadas con las ventanas, lo demás es el gnome que ya había visto otras veces.

Los efectos son chulos durante los 3 minutos que estás aprendiendo como funcionan, aunque no les veo ninguna utilidad final, personalmente me da igual que al cambiar de pantalla me lo haga con un giro de un cubo, con un fundido, que con un corte. Según lo que he visto la totalidad de los efectos se ejecutan usando "Render to texture", esto es, dibujando a una imagen lo que mostrarías por pantalla y después trabajando con esa textura mapeada a una determinada geometría, en caso de las ventanas a un cuadrado. Me baso para decir esto en el filtrado que se observa en todos los efectos. Cuando mueves una ventana y hace el efecto deformarse se puede ver como el interior de la ventana tiene un cierto filtrado que desaparece cuando la ventana vuelve a ser cuadrada. Lo mismo pasa cuando giras los escritorios para verlos puestos en un cubo, etc.

Aparte de los efectos de ventans y demás que se pueden hacer, espero que se saque más partido en el apartado de la funcionalidad. Está claro que las tarjetas gráficas actuales son algo más que una pasarela de pixels hacia el monitor, ya era hora de que se usara en condiciones.

6.03.2006

Ya casi está

Ayer entregué la memoria del proyecto junto con el correspondiente papeleo en la secretaría de la ETSIT. La entrega, para no variar, ha tenido diferentes problemas, para empezar con la impresión y para terminar con la encuadernación, algunos errores míos, otros ajenos... baj, cosas del directo.

El caso es que haré la presentación el día 9 de Junio a las 12:30 creo que en el salón de actos de la ETSIT. La presentación es pública, esto es, puede entrar el que le de la gana y calculo que durará unos 45 minutos (está pensada para 20).

El proyecto que presento, en resumen, tiene dos partes. La primera parte presento el diseño de una herramienta que permite guiar al agricultor en las labores con un gran ancho de trabajo de esta forma se evita que se traten zonas previamente tratadas. La segunda parte hace un estudio del funcionamiento en un entorno real de la aplicación principalmente orientado al error y a la robustez.

Si a alguien le interesa, puede(no son unas fechas muy propicias) y quiere venir, me alegraré de verle :).

6.01.2006

Demovibes 5

Hace ya unas semanas que salió demovibes 5, una recopilación de la música de la escena creada por willbe. La había bajado hace unos días pero no me había parado a escucharla en condiciones. Algunas canciones ya las conocía, como la de fr08: the product (descarga renderer), pero la que me ha enamorado ha sido "Insert Coins" de la demo del mismo nombre. Se puede escuchar más o menos a partir del minuto 28:15, aunque es más interesante escucharla viendo la demo, que, si te gustan los videojuegos, la disfrutarás. Si no puedes ver la demo y no quieres bajarte el archivo de ciento y pico megas de demovibes5, puedes bajartela en formato ogg(3.1Mb).