Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





¿Renderizado de Sprites?

Iniciado por Atman, 03 de Febrero de 2008, 04:29:16 PM

« anterior - próximo »

Atman

Cuando escucho "Render" me viene a la cabeza el 3D. Yo por Render entiendo una imagen que aunque la ampliemos con el zoom, no pierda calidad. Es decir, no se vea pixelada. Pero, ¿Esto se puede hacer con imagenes en 2D? Es decir, un Sprite de un videojuego cuando se ve pequeño queda gracioso. Pero cuando lo ampliamos es horrible ¿Cómo se puede hacer que aún ampliandolo, no pierda calidad? No sé, si me he explicado.

Se supone que una pantalla de ordenador está todo pixelada. Pero una figurita en un entorno de 3D, al ampliarla queda bien. El otro dia amplie un Sprite y era irreconocible. Yo no sé como si las ingenian para que una vez en pequeño, queden bien :(

Martinez

Creo que render no significa eso. No lo tengo muy claro el concepto pero esto te puede ser de ayuda:
http://es.wikipedia.org/wiki/Renderizaci%C3%B3n

Sobre lo de ampliar imagenes ni idea, prueba con otra herramienta.

Loover

Renderizar, en el ámbito de la visualización por ordenador, es el proceso por el cual se consigue una imagen en dos dimensiones partiendo de unos datos que describen un elemento gráfico (2d/3d).

Ahora bien, la imagen, una vez renderizada, tendrá una resolución concreta, si tu amplias la imagen, por supuesto, perderá calidad.

En entornos de renderizado en tiempo real, como videojuegos, cada frame es calculado varias veces por segundo y mostrado en pantalla. En este caso puedes acercarte a las paredes, objetos, etc, y no sufrirán el pixelado clásico que sufrirían si simplemente ampliaras la imagen, ahora bien, si las texturas que muestran dichas paredes/objetos tienen una resolución menor que la resolución a la que corre el juego, perderán calidad. Esto se disimula en los juegos en tiempo real usando diferentes filtros (bilinear, anisotrópico, etc) y usando texturas de diferente resolución según la distancia (mipmapping).

Por el contrario, para trabajos de infoarquitectura, películas de animación, etc, una sola imagen puede tardar varios días en renderizarse, depende del tamaño de cálculo y del hardware usado. Yo he llegado a estar dos días renderizando una imagen a 4000x2000.

Sea como sea, en una imagen renderizada, si amplias la imagen resultado, siempre perderás calidad. Un sprite, no es ni más ni menos que una imagen, sea este hecho pixel a pixel, o renderizado (el pionero fué el Donkey Kong Country), sufrirá pérdida de información si lo amplias. Los píxeles adicionales añadidos al ampliarlo se crean mediante interpolación de los existentes, y nuevamente existen diveros filtros para "disimular" esa pérdida de información.

Por otro lado, están los gráficos vectoriales (habrás visto mil ejemplos en juegos Flash). Estos, al igual que el 3d, "renderizan" una imangen a partir de unos datos, en este caso los datos describen una imagen en 2d (splines, rellenado, grosor de la línea, etc). Por lo tanto, en una aplicación de gráficos vectoriales, cada vez que haces un zoom, estarás "renderizando" dichos datos, y podrás acercarte tanto como quieras sin pérdida aparente. Esto se logra a costa de no usar bitmaps (texturas) pues si las usaras volveríamos al caso de que al ampliarse, dichas texturas perderían calidad. Esto no quita para que en flash puedas usar bitmaps si quieres, ojo.

Espero haber hecho un resumen más o menos acertado.
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

Mars Attacks

Atman, ¿qué programa de 3D usas? El render en el 3D lo efectúas cuando vas a crear una imagen 2D a partir de los modelos. Cuando amplíes esa imagen 2D, obviamente también la verás pixelada.

Internamente, a su vez, en el 3D se está haciendo un render de la geometría 3D para su representación en los visores, que se recalcula cuando modificas el punto de vista desde el que ves dicha geometría. La geometría está internamente formada por vértices, aristas y caras, que son vectoriales, por eso no pierde resolución en el recalculado de los visores al acercarse, pero en render tal y como se entiende en 3D, el que te genera la imagen 2D, se comporta exactamente igual que el resto de renders de mapas de bits. Si te acercas, pixela.

Atman

Cita de: "Mars Attacks"Atman, ¿qué programa de 3D usas? El render en el 3D lo efectúas cuando vas a crear una imagen 2D a partir de los modelos. Cuando amplíes esa imagen 2D, obviamente también la verás pixelada.

Internamente, a su vez, en el 3D se está haciendo un render de la geometría 3D para su representación en los visores, que se recalcula cuando modificas el punto de vista desde el que ves dicha geometría. La geometría está internamente formada por vértices, aristas y caras, que son vectoriales, por eso no pierde resolución en el recalculado de los visores al acercarse, pero en render tal y como se entiende en 3D, el que te genera la imagen 2D, se comporta exactamente igual que el resto de renders de mapas de bits. Si te acercas, pixela.

Usar...usar...estoy aprendiendo. Tengo el Anim8r y el Blender. Y la verdad, me suenan a chino. Pero poco a poco aprenderé. El unico inconveniente es que no me gusta aprender mirando libros. Me gusta más copiar ejemplos y luego ir yo probando.

Lo que más me gustaria hacer, es poner un dibujo 2D como fondo y a partir de ahí, ir recreando el 3D. Es decir, no quiero hacer jarrones ni floreros. Quiero poner un dibujo echo por mi y que luego se vea en 3D. No quiero hacer cosas complejas, ni puentes ni obras de embergadura.

tewe76

Mírate estos tutoriales ( http://www.geardome.com/gimovj/ )
El Wings3D es muy fácil de usar y hay varios tutos que hacen justo lo que dices de sacar el 3D a partir de tus dibujos (manualmente, claro, lo tienes que hacer tú, no esperes un botón "Hacer milagro") :wink:
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

Atman

Cita de: "tewe76"Mírate estos tutoriales ( http://www.geardome.com/gimovj/ )
El Wings3D es muy fácil de usar y hay varios tutos que hacen justo lo que dices de sacar el 3D a partir de tus dibujos (manualmente, claro, lo tienes que hacer tú, no esperes un botón "Hacer milagro") :wink:

¡Tiene buena pinta ese enlace! Y encima en la lengua de Cervantes. Eso si que es un milagro :D

Me los guardaré para leerlo con tranquilidad. Muchas gracias :wink:

Por cierto el Wings3D ¿Es gratis ó freeware?

Atman

Sobre el Wings3d, en la página oficial de descarga ponen dos opciones:

1. Latest Stable Rel: 0.99.00b
2. Development Rel: 0.99.01

¿Cuál descargo? Yo tengo Windows XP

:?:  :?:  :?:

Atman

En la página de GIMOVJ sección "tutoriales", hay de 2 a 3 iconos. Uno es la descarga del video, otro las carpetas y el otro un enlace para Stratos. Bien. ¿El icono donde aparece la carpeta tambien lo tengo que bajar?

Lo comento por que si pulso sobre él, me direcciona a una página donde salen un chorro de archivos ¿Los bajo todos? :?:

tewe76

Allá vamos... :wink:

Citar¡Tiene buena pinta ese enlace! Y encima en la lengua de Cervantes. Eso si que es un milagro  
Esos tutos están hechos por Jove, uno del foro (aunque lleva un tiempo desaparecido...)

CitarPor cierto el Wings3D ¿Es gratis ó freeware?
Gratis y freeware es lo mismo, pero sí, es gratis y freeware :)

Citar1. Latest Stable Rel: 0.99.00b
2. Development Rel: 0.99.01

¿Cuál descargo? Yo tengo Windows XP
Descárgate la Stable mejor. La otra no cambiará mucho y hay más probabilidad de que tenga bugs.

CitarLo comento por que si pulso sobre él, me direcciona a una página donde salen un chorro de archivos ¿Los bajo todos?
Sí, son los archivos necesarios para hacer los tutos (texturas, imagen base, etc). Te recomiendo que los organices por carpetas, si no después igual te lías.

Por cierto, los vídeos vienes comprimidos en "7zip". Una vez descargados, tendrás que bajarte el descompresor de http://www.7-zip.org/
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

Atman

Gracias. Ahora me estoy bajando la Stable 0.99.00b. Con las prisas habia instalado la 0.99.01.

Haber si con este programa voy cogiendo la base al 3D. El Blender, pienso, será el siguiente paso. Creo que para empezar es un poco duro. Con los iconos que tiene, parece que este dentro de la cabina de un avión :lol:

Salu2

Tei

Cita de: "Atman"Cuando escucho "Render" me viene a la cabeza el 3D. Yo por Render entiendo una imagen que aunque la ampliemos con el zoom, no pierda calidad. Es decir, no se vea pixelada. Pero, ¿Esto se puede hacer con imagenes en 2D? Es decir, un Sprite de un videojuego cuando se ve pequeño queda gracioso. Pero cuando lo ampliamos es horrible ¿Cómo se puede hacer que aún ampliandolo, no pierda calidad? No sé, si me he explicado.

Se puede ampliar un sprite bitmap y a partir de un punto tratar de ampliar un filtro de mediana, o de antialias. Para suavizar los pixeles. Asi no se nota tanto que esta compuesto de pixeles.

Los sprites bitmap en un entorno vectorial no solo dan problemas cuando son mas grandes. Si se los reduce, si no se tiene cuidado con el algoritmo que elige que pixeles escoger, pueden aparecer patrones periodicos y otros efectos indeseables. Por ejemplo, una textura de barro, podria durante un instante parecer azul, en lugar de marron, porque se escogiera por casualidad ciertos pixeles. Para evitar esto, tambien se utilizan algoritmos que suavizan y median los pixeles. Son los conocidos filtros de textura (Mipmap, Linear, trilinear, etc...). (Sospecho que estos suavizados tambien operan sobre las texturas que se amplian. En el caso de filtrado linear o trilinear, nunca veras el pixel en toda su fastuosa gloria cuadrada.)

O se puede hacer el sprite vectorial. Algunos escritorios, como KDE, suportan iconos en un formato vectorial (SVG), de modo que se pueden ampliar a cualquier resolucion y tamaño, sin que se vean pixelados.
Por razones de eficacia, a la hora de la verdad lo que se hace es una vez que se sabe el tamaño, se vectorizan a un bitmap, y se usa ese bitmap. Para no estar re-renderizandolo cada vez desde un modelo vectorial.

En el 3D me da la sensacion que los sprites se utilizan para cosas lejanas, o cuando el realismo total no es importante. Por ejemplo, se da mucho esto de renderizar los arboles 3D a una textura 2D, para dibujar estos impostores en lugar de los verdaderos 3D, ahorrando asi operaciones de dibujo.
Probablemente muchos HUD's esten hechos a base de sprites, aunque otros pocos son sinteticos renderizados a pedales de primitivas vectoriales. Los textos suelen ser tambien sprites, renderizando diferentes partes de una textura donde estan todas las letras.  Estos textos nos los vas a escribir tu en la pantalla tal cual, te lo montas tu.
Es una pena que esos juegos koreanos MMO F2P tengan fuentes tan mala, arrrggh. Se lo podian currar un poco mas, joder, aunque sea poner Comic Sans ;-D    
Hay herramientas por ahi para renderizar en una imagen una fuente ttf (que en si misma son vectoriales).  El sistema operativo deberia ser lentisimo para dibujar cosas como fuentes TTF, pero como en realidad son operaciones que llevan tiempo aceleradas por hardware, pues no da problemas. Por otra parte, cada sistema operativo dibuja las fuentes de una forma ligeramente distinta, por diferentes interpretaciones. De todos modos en los OS todabia quedan fuentes bitmap, pero estas casi no se usan, pues los algoritmos de renderizado de fuentes vectoriales son muy exquisitos y tienen features de gran buen gusto como kerning, etc..  y superan, *snif*, .. cualquier fuente monoespacio.

Atman

Cita de: "tewe76"Mírate estos tutoriales ( http://www.geardome.com/gimovj/ )
El Wings3D es muy fácil de usar y hay varios tutos que hacen justo lo que dices de sacar el 3D a partir de tus dibujos (manualmente, claro, lo tienes que hacer tú, no esperes un botón "Hacer milagro") :wink:

¡Joer...! El tutorial de las piezas de ajedrez tiene un pase. Pero el tuto para hacer un coche tiene sorna. Va a la velocidad del diablo y no me entero de nada. Hay que tener la vista de Superman. Nunca habia visto nada igual  :?:  El cursor se mueve a un ritmo que no se sigue ni con la vista. Me he quedado un poco decepcionado, la verdad :cry:

Tendre que buscar algún tuto un poco más claro y lento. :roll:  :roll:  :roll:

Mars Attacks

Atman, tu filosofía de aprender por ti mismo, va a provocar principalmente que malentiendas por ti mismo muchas de las funcionalidades del programa y del 3D en general. Máxime si hablamos de Blender.

No es poco común que, cuando alguien pregunta una duda de Blender en www.3dpoder.com (lugar donde te recomiendo que busques los (vídeo)tutoriales de Blender a porrillo que hay), de vez en cuando alguien le responda con una solución de quince líneas... totalmente equivocadas tanto en concepto como en resolución. Luego, tiene que llegar Caronte y decir "pulsa F3, anda".

Lo primero es lo primero, no intentes correr antes de aprender a andar. Coge el programa, sigue todas las guías de iniciación que encuentres (y en Blender tienes varias muy buenas, recomendado el libro de Merce Galán (megacat) o la guía de Carlos González (Morcy) que puedes bajar de su web.

Lo segundo es lo segundo: después de ver cada apartado único del libro, no pases al siguiente: ponte a investigar sobre ese apartado todo lo que puedas; haz pruebas, juguetea con los botones, observa cambios. No trates de hacer nada productivo hasta que no sientas que has desentrañado todas las dudas acerca de cómo funciona esa herramienta y para qué sirve (por ejemplo, ¿sabrías replicar el entorno de ventanas de Blender si te pusieran una captura de ejemplo? Si crees que no, ni siquiera deberías pensar en modelar; si crees que sí, probablemente te equivocas ;)).

Haz los malditos aburridos jarrones. Es la mejor forma de empezar con buen pie.

Atman

Cita de: "Mars Attacks"Atman, tu filosofía de aprender por ti mismo, va a provocar principalmente que malentiendas por ti mismo muchas de las funcionalidades del programa y del 3D en general. Máxime si hablamos de Blender.

No es poco común que, cuando alguien pregunta una duda de Blender en www.3dpoder.com (lugar donde te recomiendo que busques los (vídeo)tutoriales de Blender a porrillo que hay), de vez en cuando alguien le responda con una solución de quince líneas... totalmente equivocadas tanto en concepto como en resolución. Luego, tiene que llegar Caronte y decir "pulsa F3, anda".

Lo primero es lo primero, no intentes correr antes de aprender a andar. Coge el programa, sigue todas las guías de iniciación que encuentres (y en Blender tienes varias muy buenas, recomendado el libro de Merce Galán (megacat) o la guía de Carlos González (Morcy) que puedes bajar de su web.

Lo segundo es lo segundo: después de ver cada apartado único del libro, no pases al siguiente: ponte a investigar sobre ese apartado todo lo que puedas; haz pruebas, juguetea con los botones, observa cambios. No trates de hacer nada productivo hasta que no sientas que has desentrañado todas las dudas acerca de cómo funciona esa herramienta y para qué sirve (por ejemplo, ¿sabrías replicar el entorno de ventanas de Blender si te pusieran una captura de ejemplo? Si crees que no, ni siquiera deberías pensar en modelar; si crees que sí, probablemente te equivocas ;)).

Haz los malditos aburridos jarrones. Es la mejor forma de empezar con buen pie.

Gracias por tu consejo :wink:

Además, esta cargado de sabiduria. El libro de Galán ya lo compré. Pero hay conceptos que aún no los entiendo. Me parecio el Wings un primer paso para luego "atacar" al Blender.

Estarás deacuerdo conmigo que son programas para dedicarles un poquito de tiempo todos los dias. Y eso a veces es dificil. Pero el primer jarrón que haga, te prometo que lo posteare para que lo veas :wink:

Tu consejo es simple, pero directo. Ya lo decia Lao Tse, todo gran camino comienza por un primer paso...






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.