Polls

Afectará la crisis a los videojuegos?
 
Inicio arrow Noticias arrow Ver Todas arrow Engine3D arrow La estructura de un motor gráfico
La estructura de un motor gráfico PDF Print E-mail
Written by Javier Loureiro   
Monday, 28 January 2008

Hay partes del mundo de los gráficos que están mejor documentadas que otras. Y creo que la parte de arquitectura de un motor 3D es la parte menos documentada de todas, o al menos, eso puede parecer en un principio.

La arquitectura de un motor 3D es un procedimiento complejo, donde lo normal es cometer grandes fallos diseño, o complicar el desarrollo de forma espectacular. Requiere mucho pragmatismo y experiencia por parte de los diseñadores.

Lo complicado es saber balancear. Eso, dicho de esta forma, suena genial, pero ¿cómo llevarlo a la práctica?. Pues yo creo que la única forma es centrarse profundamente en los requisitos, en qué cosas queremos mostrar por pantalla. Lo normal es que la gente conteste a esta pregunta con un "yo quiero rendearlo todo". Y me ha llevado tiempo el darme cuenta que eso realmente significa "no tengo ni idea de lo que quiero hacer". Porque tod, significa mezclar raytracing con shaders de tarjeta? significa rendear volumétricas y polígonos?

Esta es la parte que nunca se habla en la documentación que podéis encontrar por internet, y es la parte para mí más fundamental en el desarrollo de una aplicación tan compleja. Porque todo es imposible, no es abarcable, y menos para una sola persona. Lo que es posible es rendear un efecto concreto, con una definición de escena concreta y con unos requisitos limitados.

Personalemente, hace tiempo que mi motor personal va evolucionando, y ahora veo que es realmente flexible en muchas partes. Pero eso ha salido a raiz de refactorizar grandes partes del código.

Pero lo que creo que realmente le da a una arquitectura su poder de flexibilidad es en definir las limitaciones y posibilidades del interfaz. Si en vez de centrarnos en diseñar las tripas, deberíamos de perder un tiempo en pensar cómo vamos a definir la escena a rendear (pero no la parte básica, si no todos los atributos que tiene una escena, que son muchísimos). Pongamos el ejemplo de un servidor de correo SMTP, o un gestor de bases de datos SQL. El lenguaje está definido previamente. Y la arquitectura debe de ejecutar ese código lo mejor posible. Pero el SMTP o el SQL no va a cambiar (al menos no derrepente) y son lenguajes sencillos y facilmente testeables. Por eso son protocolos que perduran en el tiempo y los servidores son tan robustos y optimizados.

 Lo mismo debería de hacerse con el motor gráfico: definir perfectamente las estructuras que vamos a tener, y dedicarle un tiempo al parser y a un exportador, antes que meterse en las tripas del render.

  

 

Comentarios
Añadir nuevoBuscar
Escribir comentario
Nombre:
Email:
 
Website:
Título:
Código UBB:
[b] [i] [u] [url] [quote] [code] [img] 
 
Security Image
Por favor introduce el código anti-spam que puedes leer en la imagen.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.



menéameDigg!Del.icio.us!Google!Technorati!Yahoo!
Last Updated ( Monday, 28 January 2008 )
 
< Prev   Next >

Lista de Correo

visita la lista de correo de codepixel. Es una lista abierta, asi que podrás subscribirte y preguntar tus dudas de programación, compartir tus opiniones, aportar ideas, y formar parte de la comunidad codepixelera.