Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: JunXCosio en 01 de Enero de 1970, 01:00:00 AM

Título: OpenGl o Direct3D
Publicado por: JunXCosio en 01 de Enero de 1970, 01:00:00 AM
                                Lo primero decir que no realizo esta pregunta para crear ninguna polemica en el foro ya que esta es una pregunta que me estoy haciendo, estoy iniciandome en esto de las 3D, me he empezado a iniciar en la OpenGL y se me ha pasado la pregunta de si deviera iniciarme en la Direct3D...

Que me recomendais,...

Un saludo
                               
Título: OpenGl o Direct3D
Publicado por: synchrnzr en 01 de Enero de 1970, 01:00:00 AM
                                Depende de lo que quieras dedicarte. Si vas a por las DirectX te limitas a entornos Windows y X-Box. Si quieres expandirte a otras plataformas (como Unix) es más recomendable que utilices el OpenGL...                                
Título: OpenGl o Direct3D
Publicado por: Drácula en 01 de Enero de 1970, 01:00:00 AM
                                Yo hice primero el motor en DX, después en OGl y ahora he vuelto a DX. Lo he hecho porque DX me da la sensación de que es la que va a dirigir a las tarjetas sobre qué se tiene que hacer, y la información está mucho más empaquetada:DX puede hacer lo que puede hacer y punto. En OGL, puedes hacer mucho más, pero dependes de las tarjetas y drivers. Si tuviera que hacer juegos para una tarjeta, cogería OGL, porque las extensiones te permiten hacer mucho más que con DX. Pero creo que es mas standard DX.                                
Título: OpenGl o Direct3D
Publicado por: Ithaqua en 01 de Enero de 1970, 01:00:00 AM
                                Lo de las extensiones molaba antes, ahora es un despiporre.

                               
Título: OpenGl o Direct3D
Publicado por: ProD en 01 de Enero de 1970, 01:00:00 AM
                                Dracula: Con DX puedes hacer todo lo que puedas hacer con OGL, además no tienes que estar dependieno de extensiones para por ejemplo poder usar multitextura...., con DX lo tienes todo sin tener que preocuparte de extensiones... simplemente chekeas si la feature que quieres usar la soporta la tarjeta y punto.
                               
Título: OpenGl o Direct3D
Publicado por: samsaga2 en 01 de Enero de 1970, 01:00:00 AM
                                Lo de las extensiones del OpenGL la mayoría se arregla con la version 2.0 del estandar.

Por otro lado, para comenzar a hacer tus pinitos en 3d creo que es más recomendable OpenGL. ¿Porque? Por dos razones, el API del OpenGL es una pedazo de maravilla y porque los mejores tutoriales para empezar a programar 3d que hay por internet estan basados en OpenGL (vease por ejemplo http://nehe.gamedev.net/)                                
Título: OpenGl o Direct3D
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                Vaya argumentos...

Direct3D es otro pedazo de API, y también hay tutoriales muy buenos, además en español, como los de BeRSeRKeR.
                               
Título: OpenGl o Direct3D
Publicado por: samsaga2 en 01 de Enero de 1970, 01:00:00 AM
                                Pues a mi me parecen buenos argumentos
Haz un programa en opengl y haz el mismo programa en direct3d. En direct3d tendras que escribir el doble o el triple de código que con gl.

Podeis decir lo que querais pero el API de OpenGL es la decimoquarta maravilla del mundo.

Aunque si quieres una comparación más independiente pasate por http://www.xmission.com/~legalize/d3d-vs-opengl.html , es la primera web que me ha salido buscando con el google.

De todas formas escoger uno o otro siempre depende al final del gusto de cada uno. Aunque tarde o temprano si te gusta la programación de juegos en 3d tendrás que acabar aprendiendote los dos API si quieres aprovechar el máximo partido al ordenata.
                               
Título: OpenGl o Direct3D
Publicado por: samsaga2 en 01 de Enero de 1970, 01:00:00 AM
                                Joder, tengo que aprender a no reeler mis comentarios, no paro de ver fallos de ortografía por todas partes.                                
Título: OpenGl o Direct3D
Publicado por: ProD en 01 de Enero de 1970, 01:00:00 AM
                                samsagaz: Que un programa tenga más líneas en d3D que en ogl casi siempre es debido al código de inicialización de d3d ya que te da un montón de posibilidades y si quieres tratarlas todas te salen bastantes líneas de codigo, pero quitando esta parte el código para pintar triangulos, etc, dará casi el mismo número de líneas.
                               
Título: OpenGl o Direct3D
Publicado por: Drácula en 01 de Enero de 1970, 01:00:00 AM
                                Tengo que decir una cosa:D3DX. Es una librería BRUTAL que facilita MUCHO, MUCHO las cosas, y además tienes:
Progressive Mesh
Optimizaciones de Mesh.
Código optimizado para el microprocesador que se utilice.
Esto fue lo que me decidió. Ahora mismo creo LOD sin apenas coste, cuando antes buscaba por internet y no encontraba ninguna librería gratuita que me permitiera esta optimización tan necesaria hoy en día.
Todavía le faltan cosas que tiene la GLUT a nivel de geometrías, pero creo que es una librería en la que puedo confiar que tendrá un buen futuro!                                
Título: OpenGl o Direct3D
Publicado por: BeRSeRKeR en 01 de Enero de 1970, 01:00:00 AM
                                Mis comienzos fueron con OpenGL...estuve como 2 años programando con él y me pasé a Direct3D8 y pufff sinceramente fue un alivio...poder pasar de todo el rollo de las extensiones (que cada vez se fue agrabando más). Las cosas me salían mejor y más rápidamente que con OpenGL...y el código muy limpio...nada de esas barbaridades que se dicen por ahí de que si Direct3D es un API sucia y liosa...son todo chorradas (hombre siempre que hablemos de D3D7 para arriba claro). Sí es cierto que si quieres controlar bien todo el tema de la inicialización pues tienes unas cuantas líneas más de código pero tampoco es para basar la superioridad de OpenGL sobre Direct3D en ese argumento...y bueno hasta el momento no he encontrado nada que no pueda hacer con Direct3D que sí se pudiera hacer con OpenGL y he podido comprobar que en el tema de calidad gráfica y velocidad pues como que no hay diferencia...como siempre todo depende de lo bien o lo mal que lo hagas...lo demás son argumentos sin ningún tipo de fundamento...

Saludos

_________________
"Ninguna lágrima rescatará nunca a este mundo que se muere ni al sueño que se desvanece..."
DiGiTALYS TEAM

[ Este Mensaje fue editado por: BeRSeRKeR el 2002-06-13 21:26 ]                                
Título: OpenGl o Direct3D
Publicado por: Galimay en 01 de Enero de 1970, 01:00:00 AM
                                ya que estais con todo esto...

que os parece la iniciativa de nvidia y microsoft.

"Cg, un estandar grafico para C"

podeis ver la noticia completa en

http://www.nvidia.com

primera plana... tratandose de nvidia (me refiero al desarrollo opengl) y microsoft (directx) parece casi seguro que este va a ser el nuevo estandard.

que os parece?                                
Título: OpenGl o Direct3D
Publicado por: Lord Trancos en 01 de Enero de 1970, 01:00:00 AM
                                Ero logico que se pasara de un lenguaje tipo ensamblador a un lenguaje tipo C para crear los shaders... pq Cg es solo para crear los shaders, ¿no? :loco:

Vaya, parece ser que incluso han creado un site solo para el Cg...

http://www.cgshaders.org/
_________________
SaludoteZ de Lord Trancos!
www.dxlab.tk - programación de DirectX con Delphi.


[ Este Mensaje fue editado por: Lord Trancos el 2002-06-14 12:59 ]                                
Título: OpenGl o Direct3D
Publicado por: samsaga2 en 01 de Enero de 1970, 01:00:00 AM
                                He leido las especificaciones del Cg por encima y si lo he entendido bien todo es precompilado, es decir, las limitaciones de la tarjeta (por ejemplo tamaño de la memoria) se especifican durante la compilación. El Cg resuelve la cuestión de tener que aprenderse el código ensamblador pero no se encarga de estas limitaciones en tiempo de ejecución de la aplicación que sería lo realmente interesante, el poder olvidarse de las diferencias entre tarjetas.
Aunque por otro lado al principio del documento ponen que se han codigo ideas de Java, ¿se referirá a una máquina virutal o a un jit?
¿Alguien lo ha provado?
                               
Título: OpenGl o Direct3D
Publicado por: BeRSeRKeR en 01 de Enero de 1970, 01:00:00 AM
                                Yo no es que me lo haya mirado bien pero creo que puedes compilar los shaders en tiempo de ejecución y éste se compilará con unas optimizaciones u otras dependiendo de la aceleradora (evidentemente de nVidia aunque también funcione para las no nVidia pero está claro que en las Radeon no aprovecharás la versión 1.4...siempre de 1.1 a 1.3)

De todas maneras esto no es un standar ya que ATI sacará el suyo, 3DLabs el suyo, Matrox el suyo y MS el suyo (que no sé si se parecerá al de nVidia ya que al parecer han trabajado codo con codo con el Cg)...de todas maneras yo utilizaré el de MS cuando salga DX9 ya que ese aprovechará cualquier aceleradora...digamos que será un standar...

Saludos
                               
Título: OpenGl o Direct3D
Publicado por: NeLo en 01 de Enero de 1970, 01:00:00 AM
                                Yo voy a hacer lo mismo que BeRSeRKeR: esperar a DirectX 9.1 y usar su lenguaje de shaders, que al igual que Cg, se parecerá bastante a C.

También habrá que probar OpenGL 2.0 y su lenguaje de shaders. Asi, probando las dos API's (muy importante :sonriendo:) podré hablar con conocimiento de causa y elegir cual me agrada mas y/o se adecua a mis necesidades. Y si no, pues a usar las dos, que al fin y al cabo sería lo mejor :lengua: