Account
People Blogs Photos Sounds Videos Game Zone Questions & Answers Groups Forum
Ads Events Spy Polls
  •  
 
 
Overview
09.03.2010 (3882 Days Ago)
Blog informatico mas que nada orientado a difundir la actividad gaming y el mundo de los videojuegos...
Actions
Share this on:
Rate
0 votes
Categories
HISTORIA (2 posts)
OFFTOPIC (2 posts)
[CS]ARTICULOS (2 posts)
[CS]DESCARGAS (2 posts)
Hablemos de Motores(Gráficos)
Hablemos de Motores(Gráficos)
3882 days ago 4 comments Categories: Tags: videojuegos

Motores gráficos (algo de info)

13

Un motor de videojuego es un término que hace referencia a una serie de rutinas de programación que permiten el diseño, la creación y la representación de un videojuego.

La analogía con el motor de un automóvil es ilustrativa: el motor debajo del capó no es visible pero le da la funcionalidad al automóvil que es la de transportar. La misma analogía permite explicar algunos de los aspectos que generalmente maneja un motor de juego: las texturas y los modelos 3D serían la carrocería, pintura y exteriores.

Del mismo modo que carrocería, pintura y exteriores de un automóvil no son funcionales sin un motor al que son añadidos, los gráficos y los guiones del juego no funcionan sin un motor de juego. Un ejemplo de motor de juego seria el motor gráfico del juego Doom.

Ahora hemos de describir algunos aspectos que poseen los motores gráficos...

Assets (Activos)



Son los modelos, animaciones, sonidos, IA, físicas. Son los elementos que forman el juego en sí, el código hace funcionar los assets. Es de una de las partes mas importantes y la que requiere quizas mas fuerza laboral.

Application Programming Interface (Interfaz de Programación de Aplicaciones)

Mushos saben de que se trata...

Es un sistema de rutinas, de protocolos y de herramientas para desarrollar programas de aplicación. Un buen API hace más fácil desarrollar un programa proporcionando todos los bloques del desarrollo del programa. El programador pone los bloques juntos.



Entre estos los más importantes son el DirectX (de Microsoft) y el OpenGL (que trabaja con la mayoría de los sistemas operativos).

Render (Renderización)



Es la parte del código que pone en pantalla los ambientes y objetos. Hace caso de las luces y sombras debido a complicados calculos( que me habian dicho que en el renderizado aparecen grandes calculos de coma flotante...por eso los GPU están muy capacitados para resolver estos calculos...)

Objetos 3D



Los objetos se almacenan por puntos en un mundo 3D, llamados vértices. Los vértices van formando polígonos; cuanto más polígonos posea un objeto, más complicado se hace, lleva más tiempo de procesamiento pero es más detallado. El juego no necesita saber cuantos objetos hay en memoria o como el Render va a mostrarlos, solo le interesa que el render los despliegue de la forma correcta, y que el modelo este en el cuadro correcto de la animación.

Higher-order surfaces (superficies de alto orden)



Renderizado matemáticamente, usado en las tarjetas gráficas más recientes y poderosas. También llamado: Patches (parches).

Patches (Parches)



Son perfectos para describir geometrías, sobre todo cuando se trata de curvas, pues la expresan mediante fórmulas matemáticas logrando colocar puntos en el mundo del juego.

Three-point polygon (polígonos de 3 puntos-Triángulos)



El más usado por las tarjetas aceleradoras 3D. Mas que nada en modelados de baja poligonia...



Culling



Codificado que logra que los objetos que no se ven en determinado cuadro de la animación por causa de objetos que los obstaculizan (como una pared) no tomen tiempo de renderizado. Así se reduce la cantidad de trabajo del motor. El Culling es más fácil de implementar en juegos en donde la visión es controlada como los RTS en comparación con lo FPS. Un método de Culling puede ser por “Árboles BSP”

BSP Tree Hierarchy (BSP Árbol de Jerarquía)



Es un método para determinar qué superficies de un mundo, y qué objetos, están realmente en la escena en momento dado, dada su localización en el mundo. Esto se utiliza a menudo para los objetos del desecho, y también para entresacarlos para reducir el proceso del AI (Inteligencia Artificial) y de la animación.

Retesselation



Técnica usada por la característica de TruForm de ATI que consiste en tomar un modelo basado en triángulos y transformarlo en uno de High-Order Surfaces para alisarlo y de nuevo pasarlo a un modelo de Triángulos.

Iluminación (lighting)



Distintos APIs proveen diferentes tipos de iluminación, donde hasta llega a intervenir la fisica y varios de los puntos anteriormente descriptos...

Vertex Lighting



Se determinan cuantos polígonos cruzan el vértice, se toma el total de todas las orientaciones de los polígonos (Normal) y se asigna la normal al vértice. Para cada vértice, un polígono dado reflejará la iluminación en una forma levemente distinta. La ventaja es que al hardware le toma menos tiempo el procesarlo, pero este tipo de iluminación no produce sombras.

Flat Shading Lighting (Iluminación de Sombreado Plano)



Consiste en que cada polígono represente un valor leve que se pase al polígono completo que genere una imagen plana del mismo, a esta imagen también se le asigna un color determinado.



  • Vertex Shading (Sombreado de Vértice, Gouraud shading): solicita al motor de renderizado un color para cada vértice, luego por medio de interpolación se renderiza cada píxel por la distancia en relación con su respectivo vértice.

  • Phong Shading: es similar al Gouraud Shading, trabajan con la textura, solo que el Phong Shading usa a los píxeles en lugar de lo vértices.

  • El Phong Shading toma más tiempo de procesamiento que el Vertex Shading pero su resultados son mucho mejores en cuestión de suavizado de texturas.

  • Light Map Generation (Generación del mapa de luz): se usa una segunda capa de textura (mapa de luz) que dará el efecto de iluminación a los modelos, es un efecto excelente pero debe tomarse antes del renderizado pero si se tienen Luces Dinámicas (o sea luces que se mueven, encienden o apagan sin intervención de programa) se debe estar regenerando los mapas en cada Frame de animación lo que toma mucha cantidad de memoria (pero son de render rápido).

  • Textura: es esencial para que las escenas 3D se vean reales, en si las texturas son imágenes que se rompen en los distintos polígonos del modelo, muchas imágenes tomarán mucho espacio en la memoria por eso se debe usar técnicas de compresión:

  • Mapeo MIP: consiste en preprocesar las texturas creando múltiples copias del mismo cada una la mitad del anterior, esto porque si la textura solo es pegada al polígono cada textura es a cada píxel y tomara más tiempo de render; así cada Texel (elemento de Textura) toma menos espacio.

  • Texturas Múltiples: requiere múltiples renderizados por lo que para obtener buen resultado se necesita una tarjeta con Acelerador de Gráficos, provee mejor calidad que el simple mapeo. Se puede colocar una imagen sobre otra (más transparente) para dar el sentido de movimiento pulso o hasta sombra.

  • Bump Mapping: técnica vieja de texturas que tratan de mostrar como la luz se refleja en el objeto. Solo hasta hace poco se vuelto a retomar.

  • Antialiasing: El anti-aliasing revisa los polígonos y difuminará las bordes y vértices, para que los bordes no se vean como dentados. Esta técnica se puede hacer de dos maneras. La primera se realiza de modo individual, entremezclando polígonos para sobreponerlos unos delante de otros.

  • La segunda manera se hace por medio de tomar todo el marco y quitarle los bordes dentados, pero esto requiere de mucha memoria.

  • Vertex and Pixel Shaders (Vértices y Sombreo de Pixeles): Con este método se pueden extraer y utilizar directamente las características y facilidades de la tarjeta de video, sin tener que utilizar mucho la API. Pero no es utilizable en todas las tarjetas.

  • Stencil Shadowing (Plantilla de Sombreado): la idea es renderizar una vista de un modelo desde la perspectiva de la fuente de luz y después utilizar esto para crear o para generar un polígono con la forma de esta textura sobre las superficies afectadas por el modelo. Así se obtiene una iluminación que parece real. Pero es costosa, porque usted está creando texturas “en vuelo”, y hace múltiple render de la misma escena.

  • El manejo del cache de textura es imprescindible para que el juego se desarrolle rápido (y para cualquier motor), ya que si se presenta un constante swapping de las texturas en la tarjeta el juego se vera lento y tedioso, algunos APIs descargan cada textura cuando esto pasa, pero eso haría que en cada cuadro se refresquen las texturas dando más lentitud. Todo se trata de cargar la menor cantidad de veces una misma textura, pero eso también depende del API que se utilice. Otra técnica es la compresión de texturas, comprimir texturas es como comprimir MP3, los algoritmos de compresión logran una relación 4:1 que no es mucho pero ayuda

  • LOD (level of detail, nivel de detalle): el sistema de nivel de detalle esta relacionada con la complejidad geométrica de los modelos. Algunos sistemas necesitan que se hagan múltiples versiones del modelo, para que dependiendo de cuan cerca se este del modelo así será su cantidad de polígonos. Otros sistemas ajustan dinámicamente esta característica pero en este caso da más carga al CPU

  • Depth Testing (prueba de profundidad): Con esto se empieza a eliminar los píxeles ocluidos y se pone en práctica el concepto de sobre dibujado. La prueba de profundidad es una técnica utilizada para determinar que objetos están delante de otros en la misma localización del píxel.

  • Sobre Dibujado: es la cantidad de veces que se ha dibujado un píxel en un frame. Se basa en la cantidad de elementos existentes en la tercera dimensión (profundidad).

Scripting Systems (Sistemas de scripting):

  • Pre-scripted Cinematics: usada normalmente en una situación que necesita la explicación en una manera controlada. Para presentar las escenas de la historia, ahora se utilizada el cortar-escenas que presenta la historia en vídeo digital y luego por medio de transiciones se pasa a las gráficas reales del juego.

  • El scripting le permite al diseñador tomar mando de la escena y manipularla, como colocar objetos o eventos que el jugador no controla. En muy complicado, se necesita de una mente muy metódica y lógica, la mayoría de estos scripts se basan en lenguaje C.

  • Visual Scripting Systems: como lo dice su nombre, permite manejar el script en un ambiente gráfico en lugar de un código escrito, se maneja un carácter real en un ambiente del juego real.

  • Sonido: Creative Labs ahora ha proporcionado sus extensiones manejadores de sonido EAX para DirectX, y la nueva iniciativa de OpenAL (biblioteca audio abierta). OpenAL, como suena, es un API para los sistemas de los sonidos de la misma manera que OpenGL es un API

  • Para el procesado de sonido es muy similar al procesado de los modelos, muchas veces un software los procesa antes de pasar al hardware respectivo, por ejemplo DirectSound hace al sonido para la Tarjeta de sonido lo que Direct3D hace al modelado antes de llegar al la Tarjeta 3D. Esto es llamado “premezcla” en el software

  • Music Tracks in Games (pistas de audio): Hay dos formas de manejar el sonido. Uno es por medio de archivos .wav (o similares), lo cual emite un muy buen sonido, pero se requiere de mucha memoria. Por otro lado se pude utilizar archivos midi, esto reduce la necesidad de memoria, pero los sonidos no son tan buenos.

  • Inteligencia Artificial: es la característica más importante que se le atribuye a un motor al lado de la representación de modelos o Render. AI provee de estimulo al juego, es critico en la parte de la Forma de juego (game play).

  • La inteligencia artificial de determinado juego puede tornarse muy compleja, primero se debe definir la línea base del comportamiento de los NPC (Non Player Characters - Personajes que no son el Jugador), primero debe definirse que hace el NPC (patrulla, guarda, etc.), luego se delimita su “visión de mundo”, que es lo es el NPC puede ver del mundo del juego; se debe tomar en cuenta que el personaje no solo estará en medio del mundo del juego sino que también interactuara con él, después vienen las rutinas de Toma de Decisión: si el NPC está patrullando, y hay un sonido, ¿debe tomarle importancia o no?, ¿investiga su origen o no?, etc.

  • Es un sistema de reglas para las acciones que responden (o inician) y que el jugador debe responder, esto a un concepto más general de AI

  • Emergent game play (Forma de Juego Emergente): consiste en programar al AI con un conjunto de reglas que le permitan al programa adherir situaciones que el programador no previera.


Advertisement
Comments
Order by: 
Per page: 
 
  •  Ramiro wrote 3881 Days Ago (neutral) 
     
    0
    faltaron clipping y callling que son los metodos de cargado de "solo lo que se ve", literalmente si el peorsnaje de espaldas no carga "el frente" en la ram.
    Estos metodos se usaron mucho en los sistemas de 32 y 64 mb de ram (PSX, N64 y Sega CD, basicamente)
    O no los vi...
    En si, yo estoy un poco descontento con el 3d, perdieron la magia de los sprites.
    En fin... Sigue siendo interesante los metodos que se usan para evitar el consumo de ram, tal cual lo dijo ahi, los modelos low poly existen y algunos hoy en dia son muy buenos...
    (aunque a cada año un modelo low poly contiene mas y mas poligonos)
     
       
     
    0 points
     
  •  lucascordobes wrote 3881 Days Ago (neutral) 
     
    0
    che lea q buena info q siempre traes... ya dije q no soy gamers... pero esta info realmente me hace sentarme a leer un poco
     
       
     
    0 points
     
Comments

Copyright © Logeek.net 2020

Web Hosting By Arvixe

VIDEOSTREAMING EN VIVO

DAME UN VOTO!