La generacion por procedimientos y .kkriegger

Retomando el ánimo con el blog y tal.

En el año 2004 un grupo de entusiastas alemanes que realizaba demostraciones gráficas pudo plasmar en tan solo 96 kilobytes de espacio un FPS entero que pudo ocupar fácilmente unos 600 megabytes, el mismo fue llamado .kkriegger y aunque no dejó de ser una curiosidad, por aquel entonces yo no podía creerlo y es que hay que entender un poco el contexto de la historia para poder saber como es que estos bávaros lograron generar un mundo tridimensional en tan solo 96 kilobytes de espacio, podemos empezar como si estuvieramos en clases.

Esto es .kriegger, 96 KB

Esto es .kkriegger, 96 KB

A más de uno he escuchado decir que las matématicas avanzadas no tienen espacio en el mundo real, un buen ejemplo para tumbar este (muy pobre) argumento es lo que conocemos como generación por procedimientos: basicamente es la utilización de fórmulas matemáticas para la generación de datos que en el caso de .kkriegger se trata de texturas, también podría hablar de los fractales pero sería irme por la tangente, aunque es un campo igual de interesante.

Las texturas no provienen de imágenes, el mismo programa las genera en tiempo real

Las texturas no provienen de imágenes, el mismo programa las genera en tiempo real

En un juego digamos, normal, las texturas se cargan desde archivos de imágenes y se pasan a  los modelos tridimensionales para dotarles de un aspecto realista asi que de una manera tradicional ya tenemos un modelo con texturas e iluminación, la generación por procedimientos genera la textura matemáticamente en tiempo real basado en una fórmula establecida, logrando que el espacio del programa se reduzca enormemente, esto aunque pueda provocar más ciclos de CPU/GPU ahorra una barbaridad en espacio, lo que es vital en ciertos entornos limitados como son las consolas, a pesar de las especificaciones que puedan parecernos bárbaras hoy en día.

La verdad es que .kriegger no esta nada mal

La verdad es que .kkriegger no esta nada mal

¿Qué esto es exclusivos de cuatro frikis expertos en matemáticas? Pues dejame decirte que dentro del desarrollo profesional es una campo muy valioso que no sólo aplica a la generación de texturas sino incluso en la generación de escenarios que requieren cierto nivel de aleatoriedad, ¿un ejemplo? Gran Turismo 5 para PlayStation 3, los escenarios de Rally pueden cambiar dinámicamente, otros ejemplos de grandes obras que utilizan esta técnica parcialmente: GRID 2, DarkCloud y DarkCloud 2, Diablo, Torchlight, The Elder Scrolls II: Daggerfall, The Elder Scrolls III: Morrowind, Minecraft, Left 4 Dead, Borderlands, ToeJam and Earl, y un largo etcétera.

Gran Turismo 5 utiliza parcialmente la técnica de generación por procedimientos

Gran Turismo 5 utiliza parcialmente la técnica de generación por procedimientos, en sistemas donde los recursos son limitados es vital aprovechar el espacio a costa de mas ciclos de CPU

Esto no solo es aplicable en juegos de video, también en otras áreas es bastante útil, por ejemplo, la generación de códigos aleatorios para sistemas de cifrado de datos que puede servir para genera una fuente de entropía, para sistemas enormes que se encargan de simular la vida mediante algoritmos fractales y sistemas de predicción de clima que solo pueden manejar enormes supercomputadores que tienen poco o nada que ver con videojuegos.

Aunque parezca arte (y ciertamente puede llegar a serlo) este gráfico es generado enteramente por fórmulas matemáticas

Un ejemplo de fractal, aunque parezca arte (y ciertamente puede llegar a serlo) este gráfico es generado enteramente por fórmulas matemáticas

Si quieres saber más sobre generacion por procedimiento tienes mucha información en la web, realmente considero que es un tema muy interesante para estudiar, y cuando alguien te diga que para estudiar computación tienes que tener una base sólida en matemáticas no solo afirmalo, sino explicale que sí tiene muchos usos que van desde la criptografía hasta el diseño de videojuegos pasando por la predicción del clima.

Por cierto aquí esta la demo .kkriegger para que le eches un vistazo. Los dejo que el sueño ya pega.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s