Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Wiki3d

Iniciado por Marci, 14 de Febrero de 2006, 01:19:23 PM

« anterior - próximo »

Marci

 Hola a todos.

Resulta que estoy intentando crear una wiki en mi página donde aparezcan la mayor parte de los téminos relacionados con la programación y/o diseño gráfico. Todavia está en fase de pruebas pero me gustaría que propusierais aquí las categorias que vosotros considerais indispensables en un proyecto como este.

Por ejemplo tengo creada la categoria "Arboles" donde entran octrees, quadtrees y bsp. Pero todos estos arboles podrian ir tambien en una categoria llamada "Determinacion de superficies ocultas". En que categoría pondrian ir displacement mapping, bump mapping, normal mapping, parallax mapping...

Todas las ideas serán bienvenidas. :D  

Haddd

 mira en http://www.devmaster.net/

allí los engines están categorizados

er_willy

 yo escribe esto hace tiempo, no esta acabado y algunas cosas fallan, si te vale para ver como lo parti


ARTE en 3d y 2d

Sobre los mundos 3d
El espacio 3d
A diferencia del sistema 2d donde solo hay alto y ancho el mundo en 3d ofrece un nuevo espacio, la profundidad.

Vectores
Hacen falta tres coordenadas para marcar un punto el espacio.
Recibe el nombre de vector el dato que guarda las tres coordenadas.

Origen
El mundo en 3d tiene un punto que guarda el vector 0, 0, 0, ese punto es el origen. A partir de ese punto se calculan el resto de los vectores, usando números negativos o positivos

Ejes xyz
Cada uno de los vectores es llamado eje, por lo que hay tres.
El nombre que se usa para cada eje es X Y Z.
Normalmente la Z representa la profundidad.

Tipos de objetos en un juego

Modelos
Polígonos
Partes de un poligono
Vértices
Un vértice es un punto en el espacio

Edges
Un edge es la línea que conecta dos vértices.
Soft / Hard edges
En la unión de cada edge se puede indicar el ángulo con el que la luz incide, de esa forma se puede dar mayor sensación de redondez.
Normalmente los modelos que usan en los engines solo dejan usar soft edges.

Faces
Con un mínimo de tres vértices conectados por sus respectivos edges se forma una Face.
Pueden tener mas de tres vértices, con cuatro se llama cuadrangulate.

Uv
Los uv son la posición de los vértices del modelo, en el espacio 2d.

Normals
La face de un polígono solo es representado por un lado.
En los programas de modelado para facilitar el trabajo fuerzan la representación por los dos lados.
El normal es una línea perpendicular a la face que muestra que lado es representado.

La triangulación antes de exportar
Cuando se modela puedes tener polígonos de mas de tres vértices, esto ayuda a trabajar de forma mas limpia.
Aunque realmente estas siempre trabajando con polígonos  triangulares, pero el programa de modelado se ocupa de  escóndelos para facilitarte el trabajo.
En los motores de tiempo real, el modelo debe estar triangulado, pues el engine no se encarga de ello.
Simplemente acuérdate de hacerlo como ultimo paso antes de uvwraping y exportación.

Uvwarping
Como?
Los objetos en 3d para juegos, solo usan texturas, por lo que necesitas plasmar el modelo 3d en un plano.
Para ello se guarda la información de los vértices en un plano 2d.
Las herramientas para el uvwraping se diferencian en dos categorías:
Las que hacen el plano inicial
Las que se usan para afinar la posición en el plano 2d.
Realmente no es algo muy complicado...  
...Pero con algunos formatos de modelo en 3d, en las zonas donde se producen los cortes se ven líneas visibles en los modelos.
Por suerte los nuevos formatos no tienen esos problemas.

Animación
Frames
Una frame es una posición estática de un modelo.
Por lo que una secuencia de frames produce una sensación de movimiento

Keyframes
Un keyframe es un frame que guarda los datos de la pose.
Cuando animas solo necesitas poner el modelo en frames clave, llamadas keyframes.
Normalmente en los momentos de máximo o mínimo giro y/o extensión del modelo.
El programa se encarga de interpolar las frames intermedias.

Animación por Bones
Skining
Los bones deben ser conectados a los vértices, de esa forma al mover un bone, se mueven los vértices asociados.
Esto hace que sea mas fácil la animación.
Hay dos tipos de skining:
Rigid
En Rigid cada vertex esta conectado SOLO a un bone.
Smooth
En smooth cada vertex puede ser conectado a varios bones.

Note: Puedes también escuchar el termino "rigging".
"rigging" se usa para referirse a preparar el modelo para animar, independientemente de la forma (deformers, skeletons, skinning, constraints, etc), mientras "skining" es, especificamente, la accion de atar el modelo a los bones.

Animación manual
En la animación manual puedes mover las faces, los vertes, o los edges a mano, o con cualquier tipo de ayuda que ofrezca el programa de modelado (deformers, constraints, etc), para colocándolos en la poción deseada.
Si trabajas así, solo puedes exportarlo y animarlos en los motores con el sistema de interpolación.
Se puede usar por ejemplo para objetos estáticos que tengan algún tipo de movimiento simple, como abrir una caja, mover una palanca, etc.

Exportando las animación a los juegos
Bien una vez que tienes el personaje animado hay tres formas en las que funcionan actualmente los motores para gestionar los movimientos, ninguna es mejor que otra y cada una tiene sus ventajas y desventajas.
Se pueden usar todas a la vez.

Por interpolación (por vértices)
El modelo guarda cada una de las frames, necesita guardar la posición de cada uno de los vértices y los normal en cada frame.
El engine crea las animaciones poniendo un frame tras otro para simular el movimiento.
Peso del modelo: Grande.
Requerimientos: Bajos.

Por keyframes (por bones)
El modelo solo tiene la información del skining y las key frames. El motor se encarga de interpolar las frames entre cada key.
Se pueden mezclar diferentes animaciones. Por ejemplo puede estar la animación de andar, mientras con los brazos cambia las animaciones entre disparar, recargar, gesticular, etc.
Peso del modelo: Pequeño.
Requerimientos: Altos.

En tiempo real
El modelo solo tiene la información del skining.
El motor se encarga de mover los bones.
Peso del modelo: Muy pequeño.
Requerimientos del sistema: Altos:

Sprites
Los sprites son bitmaps que pueden tener trasparencias y/o estar animadas.
La animación generalmente se crea usando una sola textura con el sprite en diferentes posiciones.  
No necesitan esta unidas a ningún objeto poligonal.
Se usan para dos objetivos principales:
Texturas puestas en el nivel:
Plantas, rejas, cadenas, publico de algunos juegos, etc
Función: Ahorrar polígonos.
Activadas por eventos:
Disparos, explosiones, abulleros de bala, etc.
Función: Crear efectos visuales difíciles de hacer con otros métodos.
Billboard es el nombre que se usa para referirse a sprites que giran sobre su eje para encaran siempre a la cámara.

Niveles de juego
Tipos
Los niveles de juegos usan diferentes formas de renderizar a la de los modelos.
Un motor puede usar varios sistemas a la vez.
Los mas usados son:

Portals
Cuando construyes un nivel, lo separas en diferentes "habitaciones".
Los sitios por donde se entra y se sale de ellas se pone un portal, de tal forma que solo se renderiza la "habitación" donde esta la cámara y las "habitaciones" adyacentes que la cámara ve.

Bsp
En bsp se construyen los niveles con bloques, generalmente con editores pensados solo para ello.
Una vez construidos, tienes que compilarlo, lo cual crea un "árbol" que calcula la visibilidad de los objetos, esto se puede tardar horas.
Las texturas se aplican sobre los bloques sin necesidad de uvwarping.

Octree
En octree se crean los niveles como si fuera un modelo normal, no tiene limitaciones, pero no puedes crear grandes niveles.
Los lightsmaps
Los lightsmaps cambian el color de la textura, su objetivo es crear mapas de sombras en las texturas del nivel, producidas por la luz que hayas puesto al crear el nivel.  
De esa forma las sombras no son renderizadas en tiempo real por el engine.

Terrenos (hmp)
Un terreno es un mapa de triángulos en horizontal que solo guarda información de la altura de los vértices, se usa para grandes niveles en exteriores.

Formatos de archivo
Los mas típicos para importar exportar entre programas y motores

.x
Formato de microsoft
Animación por bones
Guarda el Uv maps
Tope máximo de faces 65k polys,
Nota: Debido a que algunas tarjetas graficas no soportan modelos de mas de 65k polys microsoft se cura en salud.

Obj
Formato de alias wavefront
Sin animación
Guarda el Uv maps

3ds
Formato de discret
Sin animación
Sin Uv maps

Texturas
Las texturas son mapas de bits (bitmaps) creados con programas de 2d, se usan tanto para modelos como para niveles.
Solo tiene ancho y altura, para videojueos por motivos de velocidad se usan tamaños poder de 2:
2 4 8 16 32 64 128 256 512 1024
Cualquiera combinación es valida.

Pixel?
Un pixel es un punto de color, por tanto es lo mas pequeño que hay en un bitmap.
Profundidad de bits
La profundidad de bits determina la maxima cantidad de colores que se puenden mostar en casa pixel.

Canales
Canales Rgb
Red - green - blue es el modo de trabajar de las pantallas (por ejemplo el cmyk es para impresión) cada canal, en escala de grises, representa en cada pixel la cantidad de color de ese componente.
Comprendido entre 0 (negro)  255 (blanco).

Canal alpha
El canal alpha es un canal especial que sirve para trasparencias, también es un canal de escala de grises, donde el 0 (negro) representa transparencia total y 255 (blanco) representa opaco total.

Tamaños
Tamaños típicos de los juegos actuales (2005) varían entre 256 y 1024.

Tipos
Cuando trabajas con programas de 2d puedes tener muchas capas y trabajar con objetos que no son mapas de bits pero en los engine se necesita mapas de bits. Para trabajar con ellos hay varios fomatos aquí estan los mas usados:

bmp
Tamaño: Alto
Compresion en archivo: No
Compresion en tiempo real: No
alpha map: No

pcx
Tamaño: Medio
Compresion en archivo:: No
Compresion en tiempo real: No
alpha map: No

tga
Tamaño: Medio
Compresion en archivo: Si
Compresion en tiempo real: No
alpha map: Si

dds
Tamaño: Pequeño
Compresion en archivo:: Si
Compresion en tiempo real: Si
alpha map: No

Los archivos comprimidos, solo son comprimidos en el archivo, al ser cargados en memoria solo el tamaño y la profundidad de bits determinan su peso, salvo los archivos DDS que tambien son comprimidos en memoria.


En que categoría pondrian ir displacement mapping, bump mapping, normal mapping, parallax mapping...

Lo pondria en una zona a parte llamada shaders y fixed



Marci

 
Cita de: "Haddd @ 14/02/06"mira en http://www.devmaster.net/
Tiene muy buna pinta, gracias


Cita de: "er_willy @ 14/02/06"yo escribe esto hace tiempo, no esta acabado y algunas cosas fallan, si te vale para ver como lo parti
Pues con tu permiso, corto y pego como si estuviera en mi casa, ok? Siendo el autor tienes que dar tu visto bueno para que no haya problemas de copyright :P  

er_willy

 si hombre como en tu casa, pero las birras que te bebas las repones.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.