| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
mamntc02
Registrado: 30 Abr 2007 Mensajes: 277
| Publicado: 09/08/2007 4:43 am | | | Título: Tipos y clases de librerías gráficas. |
| Hola a todos, Hace tiempo q tengo pensado meterme a hacer cosas en programación gráfica... como no, en juegos. Había pensado en empezar en por algo simple como Double Bubble (unas pocas bolitas, y unos algoritmos de colisión bien facilitos), pero mis problemas empiezan por el tema de gráficos, de los cuales sé más bien poco o nada. Me gustaría si alguien me podría aclarar q librerías existen y en q consisten. Por ejemplo, tengo entendido q OpenGL es más q una librería (no sé en q sentido), q no es lo mismo q allegro o SDL o DirectX, etc.... En definitiva busco si alguien me podría explicar en q consisten estas librerías, q hace cada una, sus diferencias, etc... O q me referencien a algún sitio por donde empezar. No sé si me he explicado bien. Por ejemplo he leído en algún artículo q SDL tiene acceso a OpenGL. Qué quiere decir esto? Q SDL es como una capa por encima de OpenGL? Ya veis q en esto estoy más perdido q un pez en un garaje 
Muchas gracias y saludos. |
| | Volver arriba | |  | Killrazor
Registrado: 24 Ene 2006 Mensajes: 1182 Ubicación: Barcelona
| Publicado: 09/08/2007 6:03 am | | | Título: |
| Es bastante sencillo en realidad. Tu sistema tiene un sistema grafico de bajo nivel, en general con un hardware asociado que es la targeta de video. Para llegar a el en general te basaras en drivers especificos de cada fabricante. En ese sentido se parece al sistema de ficheros o a la targeta de comunicaciones, pero eso tampoco te importa al principio. Para poder usar estos servicios lo puedes hacer a traves de un API grafico. En estos momentos existen 2 muy conocidos: opengl y direct3D (fijate que no he dicho directX), aunque tambien estan mesa, GDI, etc, etc. Estas son librerias que puedes usar para crear graficos de alta calidad y a este nivel puede llegar cualquier programador sin necesidad de otras librerias.
Pero resulta que un juego va mas alla de graficos y necesita mas soporte como I/O, sonido, etc etc. Entonces entran en juego otras librerias que añaden una capa de abstraccion mas. Esto significa que usan las librerias graficas para pintar ademas de otras librerias para comunicaciones I/O etc.
Estas librerias son SDL, DirectX y otras. Cuando te dicen que SDL llega a OpenGL se refieren a que puedes usar SDL con sus funciones para dibujar (en general lo haras con 2D) pero si deseas, puedes usar SDL simplemente para abrir la ventana donde se ejecuta, teclado, sonido y usar directamente OpenGL para crear el sistema de dibujado. Esto se hace en 3D por que SDL no tiene sistema de 3D propio.
DirectX es otra alternativa (solo en windows), que incluye directSound (sonido), directShow(video), directInput (teclado, raton, joystick), etc ademas de el direct3D para dibujado.
Pero tambien se pueden hacer mas cosas: hay librerias que combinan todo directX menos direct3D y como sistema de dibujado usan opengl. O otras librerias como glut solo manejan teclado, ventanas y poca cosa mas y tu te encargas de meterle las librerias que necesites para sonido, sistema de ficheros, etc, aunque glut solo sirve con opengl. _________________ I wanna heal i wanna feel like I'm close to something real. I wanna find something I've wanted all along somewhere i belong |
| | Volver arriba | |  | mamntc02
Registrado: 30 Abr 2007 Mensajes: 277
| Publicado: 10/08/2007 2:22 am | | | Título: |
| Bien, una explicación así quería yo Muchas gracias.
A pesar de todo me salen algunas dudillas más.... Q se entiende por sistema de dibujado? Son aquellas funciones q se encargan de pintar las primitivas (puntos, rectas, elipses, etc...) por pantalla? Por otro lado, si entiendo bien tus explicaciones, SDL es una librería por encima de OpenGL, al q le añade otros servicios como sonido, I/O, etc..., no? Pero al mismo tiempo no le saca todo el partido 'gráfico' de OpenGL... Entonces que es mejor? Y también más sencillo para empezar?
Hace mucho tiempo ya había tocado algo de estos temas, usando BGI (q era un bodrio) y una libreria llamada SVGALib (creo recordar) para viejos sistemas MS-DOS, q era muy simple pero fácil de uso para el manejo de primitivas, sprites, movimientos, etc.... Por eso estoy buscando alguna lo más simple posible para empezar. Alguna recomendación en particular? Por ejemplo, sólo aprendiendo SDL se puede empezar? O además necesito aprender OpenGL?
Muchas gracias y saludos. |
| | Volver arriba | |  | | Killrazor
Registrado: 24 Ene 2006 Mensajes: 1182 Ubicación: Barcelona
| Publicado: 10/08/2007 3:06 am | | | Título: |
| | mamntc02 escribió: | Bien, una explicación así quería yo Muchas gracias.
A pesar de todo me salen algunas dudillas más.... Q se entiende por sistema de dibujado? Son aquellas funciones q se encargan de pintar las primitivas (puntos, rectas, elipses, etc...) por pantalla?
|
Cuando hablo de sistema de dibujado, en este caso em refiero al conjunto de funciones que usa cada uno de los sistemas para dibujar. En este sentido, SDL tiene 2 sistemas posibles. El primero es propio y se basa en funciones donde pintas sobre lienzos o "surfaces" y los vas poniendo en pantalla. Esto va muy bien para 2D. El otro sistema es dejar que el programador use las funciones de OpenGL para dibujar. Son un juego de funciones muy diferente y tienen mucha mas utilidad en 3D. Eso no quiere decir que no puedas hacer lo mismo con OpenGL en 2D que harias con SDL, pero usando muchas mas lineas de codigo.
| mamntc02 escribió: | Por otro lado, si entiendo bien tus explicaciones, SDL es una librería por encima de OpenGL, al q le añade otros servicios como sonido, I/O, etc..., no? Pero al mismo tiempo no le saca todo el partido 'gráfico' de OpenGL... Entonces que es mejor? Y también más sencillo para empezar?
|
Esta montada encima de OpenGL, pero eso no significa que no le saque todo el partido a OpenGL. Es decir, cuando entras en modo OpenGL lo programas directamente sin funciones que añadan abstraccion por lo tanto no le quitas ninguna funcionalidad a OpenGL
| mamntc02 escribió: | Hace mucho tiempo ya había tocado algo de estos temas, usando BGI (q era un bodrio) y una libreria llamada SVGALib (creo recordar) para viejos sistemas MS-DOS, q era muy simple pero fácil de uso para el manejo de primitivas, sprites, movimientos, etc.... Por eso estoy buscando alguna lo más simple posible para empezar. Alguna recomendación en particular? Por ejemplo, sólo aprendiendo SDL se puede empezar? O además necesito aprender OpenGL?
Muchas gracias y saludos. |
Evidentemente para 2D te recomiendo SDL, y para 3D OpenGL aunque hay mas combinaciones. La idea es ir poco a poco y decidir que quieres hacer y que te gustaria. _________________ I wanna heal i wanna feel like I'm close to something real. I wanna find something I've wanted all along somewhere i belong |
| | Volver arriba | |  | kingfoslide54
Registrado: 25 Dic 2006 Mensajes: 75
| Publicado: 10/08/2007 5:57 am | | | Título: |
| Yo empecé con SDL, con los tutoriales de Lazy Foo, es muy fácil y aprendes porque te empiezan a salir cosas desde el primer momento. Una vez tuve las nociones básicas de SDL controladas, me metí con OpenGL, usando los tutoriales de NeHe (que es con lo que estoy ahora). Me parece un camino bastante recomendable.
Un saludo. |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |