javisantana.com

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;};

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.

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.