Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Porque Usar Direct3d En Lugar De Opengl

Iniciado por javiel, 10 de Enero de 2005, 09:31:27 AM

« anterior - próximo »

Minos

 Yo uso OpenGL por las ventajas de multiplataforma, no es propietario (o por lo menos de una compañia) y por que lo veo de un uso mas general para mas cosas que juegos (por ejemplo aplicaciones cientificas). Las dos APIs son igual de potentes en cuanto a gráficos.

Pero he de admitir que DirectX te da muchas mas facilidades en cuando a utilidades y código ya programado (como las librerias matematicas, los archivos FX, carga de imagenes, carga de modelos, etc) que OpenGL no trae de 'serie'. Es cierto que hay muchas librerias por ahi que te ofrecen similitudes e incluso son mas potentes (cal3D...) pero eso supone tener que trastear con diferentes APIs.

Creo que por esto mismo con OpenGL se aprende muchisimo ya que mucho tienes que currartelo tu, pero esto tambien relantiza. Como siempre, todo depende de lo que se quiera.

senior wapo

 Hoy tengo vena posteadora y no voy a pasar una  (twist)

% de las distintas plataformas (basándose en las trazas que dejan los navegadores web al visitar sitios web, fecha Noviembre 2004):
Indie Wiki

Linkando con el SDK de DX7 (de serie con W2k) alcanzas al 70%+ de la base instalada, con sistema operativo de fábrica sin instalar nada extra. Nada.

Si programas para DX9 pues si que tienes rollos de instalación para el usuario, pero si no estas desarrollando un AAA no se que pintas linkando con el DX9, a lo mejor quieres hacer un revolucionario comecocos con todo el código metido en shaders de la GPU xD

Es mucho suponer que si quieren jugar ya tendrán instalado lo ultimisimo.

Creo que alguno no es consciente de la cantidad de personas que juega desde ordenadores poco potentes o sin actualizar. Por ejemplo, desde el trabajo, alli no intalas OpenGL ni DX  actualizado ni nada, juegas con lo que hay. Y si, compran juegos solamente para eso. ¿ Alguna vez has tenido un curro de 9 horas con 1 para comer y te sobren 40 minutos ? ¿ O tu jefe se pira 1 hora antes que tu? O vete a saber que...

Hace poco alguien mencionaba en otro hilo que su hermana estaba mosqueada porque le regalaron un maghjong 3D y le pedía que instalara DX9. Esa reacción no es poco común en absoluto. No todos los que juegan (y compran) se ajustan al perfil varón, 16-23, friki del counterstrike+nosekecraft+quakeX ni sabe lo que significa overclocking ni usa el PC todos los dias. Y si, compran software, que no todos ellos son españoles =p

Y eso para un PC, no entro ya en el mundo de los portátiles (yo voy ya por mi tercero, y he configurado bastantes cuando me dedicaba a ello). OpenGL = kk, desde el punto de vista de soporte técnico.

El mercado de los juegos no lo conforman sólo la trinidad HL2+Warcraft3+FIFA (AAA FPS+RTS+deportivos), ni se mide solamente por quién mueve más polígonos, usa más shaders o más horas de voz digitalizada. Puedes hacer juegos chulos con DX7 (soporta HW T&L) y venderlos tu o con publisher share.

Ojo, que no soy un fan de DX, me gusta más el API OpenGL y mi código en general es multiplataforma (por manía mía, mas que nada), pero hay que ser objetivo.

Una vez más, si se trata solo de aprender, o por hobby, usas lo que te sea más cómodo o te apetezca. claro.  :D

PD: Amenazo con pegar links guiris a diestro y siniestro, abramos otro hilo.

AgeR

 Yo empecé como casi todos por OpenGL, y ahora mismo sólo uso DirectX. Por qué?
DirectX tiene un SDK completísimo, con ejemplos, código, y documentación (más o menos buena, pero suficiente la mayoría de veces).
Tiene funciones para carga de imágenes de casi cualquier tipo, sin necesidad de librerías externas. En el caso de OpenGL te has de hacer tú mismo tus funciones de carga de texturas o usar una librería, por ejemplo.

En OpenGL además está todo el tema de las extensiones, mientras que con DirectX puedes comprobar con una simple llamada "cualquier" característica de tu tarjeta.

Las DirectX tienen en contra que no son multiplataforma. Bien, si quieres algo multiplataforma, usa OpenGL, si te da lo mismo, yo te recomendaría DirectX sin dudarlo. No es nada difícil aprender (y como dicen ahora con C# y MDX mucho menos), y en la práctica, cualquiera que tenga interés en ver lo que hagas, lo verá.

Bueno, es mi opinión (basada en mi corta experiencia)  :ph34r:  

MA]Mestre

 OGL y DX... para gusto los colores.

Si bien en rendimiento, el tema debe ser inapreciable usar una o otra, la API de OGL es más 'salvaje' mientras que DX esta más 'domesticado'. Las DX estan convertidas en un semi-motor para programación grafica, mientras que OGL no, solo aporta lo básico.

CitarEn OpenGL además está todo el tema de las extensiones, mientras que con DirectX puedes comprobar con una simple llamada "cualquier" característica de tu tarjeta.

Ese es el pro de las DX ... el contra es que hasta que actualizan la versión de DX no puedes utilizar la 'capacidades' de la tarjeta aunque las tengas. Por cierto sacaran Dx10 ? o le cambiaran el nombre ?   (apuesto por lo primero, acordaros del descalabro de Max Mix 10, fue el numero !!! )

Helius

Cita de: "MAMestre"] Por cierto sacaran Dx10 ? o le cambiaran el nombre ?
Yo creia que iban a llamarlo XNA a partir de la siguiente versión, e iba a ser una solución aún más completa.

En fin, comparto la opinión de Ager y habiendo visto las dos opciones recomiendo DX, si bien es cierto que con la versión managed tienes cosas interesantes funcionando en dos patadas, como bien dice Haddd.

En mi opinión la aparente facilidad de ogl se convierte luego en un lío de extensiones y librerías...
Geardome Devlog
Tutoriales sobre DirectX 9, Nintendo DS y PSP.

martiño

 Creo que una razón importante para usar OpenGL y no DX, cuando lo que quieres es aprender, es que DX en cada versión se tira a la basura y se rehace de nuevo (esto da una idea de lo bien diseñada que esta el API).

Así que si tienes código en DX8 y quieres utilizar alguna capacidad que se incorporó en DX9, tienes que portar todo a DX9 (y a DX10 cuando salga, etc...). En OpenGL el código es compatible hacia atras, OpenGL 2.0 por ejemplo añade nuevas funciones, pero las antiguas siguen funcionando igual.

Hoy en día las tarjetas ATI+Nvidia suman el 90% del mercado y soportan OpenGL perfectamente, asi que lo de que con DX llegas a mas gente no creo que sea una razón.

A mi el API de OpenGL me parece mucho mas elegante y cómoda (yo no diria mas fácil, diria menos latosa), el único problema que le veo es la falta de una documentación de referencia seria, cosa que DX si que tiene.

Vicente

 Hola,

de graficos nada, pero para mi tocayo vincent aqui hay otro tutorial de MDX y C# que me parece bastante bueno. Un saludo!

Vicente

Lord Trancos 2

 
Cita de: "martiño"Creo que una razón importante para usar OpenGL y no DX, cuando lo que quieres es aprender, es que DX en cada versión se tira a la basura y se rehace de nuevo
Yo tb estoy deacuerdo con eso....

Ademas de que te sirve que te pongan las cosas ya hechas (como por ejemplo los skinned meshes) si despues para poder usarlas no hay informacion, o hay bugs, o....  Ahi estan Hadd y Bersk q son unos hachas y han optado por ponerle soporte MD5 a su motor, pq usar los X era mas dificil/enrevesao.

Si se quieren las cosas hechas, casi mejor tirar de un motor ya hecho :P

Y volviendo a las versiones de DX,.... cuantos de aqui siguen programando en DX7 y cuantos lo hacen en DX9 ? :^P
Da igual que los usuarios se hayan quedado en DX7. Los developers de DX tienden a programar en la ultima version; lo se pq yo lo he hecho.

Yo desde que me pase a OpenGL no tengo agobios cada vez que DX cambia de version (he usado desde DX3 hasta DX8). La de codigo que habre reescrito cada vez... ¬¬
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Zaelsius

 Yo he usado ambas APIs. Mi conclusión es que segun lo que quieras hacer, es mejor elegir una u otra. Si no sabes cual elegir, es porque no sabes qué quieres hacer.

Mi otro consejo es que si quieres hacer un juego y terminarlo, es no uses niguna API directamente y vayas a por una libreria o motor 3d.

Pero sé que al final cada uno hace lo que le place.. no será por avisar (twist)

[EX3]

 
Cita de: "Lord Trancos 2"Y volviendo a las versiones de DX,.... cuantos de aqui siguen programando en DX7 y cuantos lo hacen en DX9 ? :^P
Da igual que los usuarios se hayan quedado en DX7. Los developers de DX tienden a programar en la ultima version; lo se pq yo lo he hecho.
Si hubiese logrado implementar de manera eficaz los efectos en sprites (o poligonos en mis ultimos intentos) como espejados (esto no lo logre en Direct3D7) y cosas asi en DirectDraw o Direct3D7 y ke hubiese alcanzado unos resultados aceptables y no 20fps a 640x480x16 dibujando 4 sprites en pantalla hubiese seguido con DirectX7 ya que para mi era mucho mas comodo aunque tuve problemas a la hora de implementar cosas como modo ventana en DirectDraw y trabajar con colores en modos de 16/24/32 bits de manera ke fuesen el mismo valor en cualquier modo de resolucion (no se si me explico)

Ojo, no estoy diciendo ke no se pueda hacer, BlitzBasic lo hace y muy bien, seguro ke si lo intentase ahora lo lograria, pero mi trabajo lo pase a DirectX 8, donde solucione la mayoria de problemas que tenia en DirectDraw y Direct3D7: espejados, modo ventana, conversion de colores de 16 o 32 bits, velocidad (aunque no mucha)... y ganando problemas como el ultimo con lo de la perdida del Device en D3D8 y ke sigo sin lograr solucionar y sin encontrar ayuda, cosa ke en DirectDraw esta tirado de hacer.

Por lo demas con Direct3D8 me va bien, no de lujo como me iba con DirectDraw pero de sobra y no tengo intencion de pasar a DirectX9 ni nada nuevo.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






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.