Ambient Occlusion en Photoshop

En programación tenemos claro como implementar la técnica del Ambient Occlusion en tiempo real. Se parte de una imagen 2D en un FBO donde con información de la posición de la luz, posición y dirección de la cámara, lanzamos rayos en todas direcciones (cuantos más mejor y más consumo de GPU), generamos una imagen en escala de grises y la mezclamos con la capa de Albedo. En este caso es la misma técnica pero pintada a mano, os dejo unas imágenes y unos links:

Grump6Grump5


Grump17_Edges

Links de referencia:

Posted in Art | Leave a comment

The most efficient iPhone developers

http://radar.oreilly.com/2010/02/efficient-iphone-developers.html#more

Posted in Game Industry, Video Games | Leave a comment

Application Download – World Market

Artículo de la última Newsletter de ABI Research, sobre el consumo de aplicaciones móviles para los próximos años:

Application Download - World Market

Application Download - World Market

Continue reading

Posted in Game Industry, Video Games | Leave a comment

Un iPad por genera interactive

Bueno bueno! menuda sorpresa me llevé este viernes cuando vi a Alberto García portando un iPad por Genera Interactive… resulta que se lo han pillado para Bravo Games Studios, para portar el Touch Racing Nitro y poder probarlo en un iPad antes de subir la versión definitiva al Apple Store.

Personalmente pensaba que iba a ser un aparato sin sentido al faltarle muchas cosas que siempre deseas pero que realmente nunca usas intensivamente pero una vez lo tienes en las manos y lo ves funcionar, se te ocurren todo tipo de usos y aplicaciones / juegos para hacer.

Posted in Hardware, iPad | 1 Comment

Obj-C FPS counter and dt time for iPhone

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
	// FPS
	static CFTimeInterval lastTime  = CFAbsoluteTimeGetCurrent();
	CFTimeInterval beginTime = CFAbsoluteTimeGetCurrent();
	CFTimeInterval dt        = beginTime - lastTime;
 
	static uint           FPS   = 0;
	static CFTimeInterval accum = 0;
 
	if ( accum >= 1.0 )
	{
		NSLog(@"%d", FPS);
		accum = 0.0;
		FPS   = 0;
	}
	else
	{
		FPS += 1;
	}
 
	accum   += dt;
	lastTime = beginTime;
Posted in Graphics, Programming, iPad, iPhone, iPod | Leave a comment

Language (locale and country) in iPhone SDK

Little and fast-to-understand test for to know the language of iPhone device:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
NSString* language    = [[NSLocale preferredLanguages] objectAtIndex:0];                // en  
NSString* countryCode = [[NSLocale currentLocale] objectForKey: NSLocaleCountryCode];   // US
 
// Console Log, only for debug...
NSLog(language);
NSLog(countryCode);
 
BOOL result;
if ([countryCode isEqualToString:@"GB"] || [countryCode isEqualToString:@"US"] || [countryCode isEqualToString:@"CA"])
{
	result = YES;
}
else
{
	result = NO;
}
Posted in Programming, iPad, iPhone, iPod | Leave a comment

Bravo Game Studios en la TV

Un reportaje del único programa de TV tipo noticiero rápido, donde sale Alberto Garcia de Bravo Game Studios hablando de los nuevos móviles del Touch Racing Nitro.

Bravo Game Studios es una compañía nueva que nace de Genera Mobile, actualmente Genera Interactive y que pretende dar salida a juegos más tradicionales en su desarrollo y concepción. Esperemos que Touch Racing consiga buenos ingresos ! y que la industria española continúe dando alegrías.

Actualización:
Hay que comentar que Enne también ha mostrado algo de su MMO-Social para aprender y fomentar el español. En este proyecto trabajan amigos y grandes profesionales como Jose Manuel Marín y Fernando Claros de Lead Programmer y Lead Game Designer respectivamente. Esperemos que el proyecto tenga en el futuro una buena acogida en USA y en otros países.

El resto del video no tiene desperdicio alguno y mejor que comentarlo yo es verlo :)

http://www.rtve.es/mediateca/videos/20100329/zoom-net-festival-videojuegos-independientes-igf-red-steel-game-connection-29-3-10/732689.shtml

Posted in Game Industry, Video Games | 2 Comments

OpenGL 3.3 & 4.0

El grupo Khronos y el OpenGL ARB han publicado en el GDC 2010 de San Francisco las especificaciones de OpenGL 3.3GLSL 3.3OpenGL 4.0 and GLSL 4.0.

¿Por qué 2 specs al mismo tiempo? OpenGL 3.3 puede ser desarrollada con las GPUs actuales como una actualización de forma rápida y sin complicaciones. OpenGL 4.0 está diseñada para la próxima generación de tarjetas gráficas, Fermi y AMD/ATi serie 5000.  Con esto consiguen dar a los desarrolladores un pack actualizado de funcionalidades y preparar el terreno para exprimir el HW de la próxima generación. Cosa que desde hace mucho tiempo se esperaba, volver a empujar desde el ARB y el comité de expertos a la industria del HW ya que la relación desde hace mucho tiempo siempre ha sido que empresas como nVidia, ATi o 3D Labs (muerta ya pero que nos dejó el legado de lo que hoy conocemos como Shaders en OGL y D3D) gracias a que OpenGL era open source añadir las extensiones que quisieran. Cosa que ha dado magníficos frutos pero que también necesitaba de un empuje desde algún organismo como venía haciendo Microsoft desde hace un par de versiones de D3D. Aunque mejor no hablar de DX 10.0 y 10.1 …

Cosas destacables de OpenGL 4.0

“OpenGL 4.0 further improves the close interoperability with OpenCL™ …”

  • two new shader stages that enable the GPU to offload geometry tessellation from the CPU;
  • per-sample fragment shaders and programmable fragment shader input positions for increased rendering quality and anti-aliasing flexibility;
  • drawing of data generated by OpenGL, or external APIs such as OpenCL, without CPU intervention;
  • shader subroutines for significantly increased programming flexibility;
  • separation of texture state and texture data through the addition of a new object type called sampler objects;
  • 64-bit double precision floating point shader operations and inputs/outputs for increased rendering accuracy and quality;
  • performance improvements, including instanced geometry shaders, instanced arrays, and a new timer query.

Info relacionada:

Posted in Graphics, Hardware, Programming | Leave a comment

ret = reinterpret_cast< WTF* >( lookAtFront( ) )

Sin comentarios… menudo día de post llevo :)

Posted in Curiosidades | Leave a comment

Comparativa entre navegadores

Iñaki Griego es el culpable de que yo ponga este tipo de absurdeces en mi blog. Pero oye! me ha gustado, sobre todo el gráfico de Internet Explorer. Es totalmente cierto, siempre actualizamos el IE para tenerlo de pruebas, o por si la Junta de Andalucía o las webs del estado español nos joden y sus webs no funcionan con navegadores standard.

Posted in Curiosidades | Leave a comment