1120
DirectX se "interpone" en el camino de los desarrolladores a la hora de hacer progresar a los PCs de la actualidad... "Es curioso, pero a menudo tenemos entre manos como mínimo 10 veces más potencia que en Xbox 360 o PlayStation 3 en términos de tarjetas gráficas de alta gama, y está muy claro que los juegos no se ven 10 veces mejor"... "Esto se debe a que, de un modo u otro, DirectX se está interponiendo en el camino".
menéame
Usando Unreal Engine 3 y tecnología actual sobre DirectX. Es tiempo real.
Y si no, que usen OpenGL, como bien dice #1.
Hace 4 años sacaron Crysis para pc y hoy en dia no hay nada que se le acerque. Eso no es problema del directX sino de los desarrolladores.
La 360 funciona con DirectX 9 mientras que Wii y PS3 con OpenGL y extensiones propias.
Otro problema es lo poco escalables que suelen hacer los motores gráficos. El UE 3 parece ser una excepción.
Yo he programado bastante usando ambas especificaciones (OpenGL y Direct3D) y muy a mi pesar hay que reconocer que OpenGL sí se ha quedado un poco atrás*. Y aunque no fuera así, los mismos motivos por los que Direct3D podría frenar el avance están presentes en OpenGL.
De todas formas que el salto de gráficos de consola a PC no sea más fuerte es porque:
a) Las empresas desarrollan un juego que pueda funcionar en todas (o las más importantes) plataformas en principio. Así que si un juego sale en PS3 y en PC la versión de PC no va a ser muy diferente.
b) Que haya tarjetas gráficas de 700 euros no significa que todo el mundo las tenga; es más importante llegar al mayor número de clientes posibles, y la mayor parte tienen gráficas de gama media/baja.
* No es que puedan hacerse cosas en Direct3D que no puedan hacerse en OpenGL, es que en OpenGL ciertas cosas están fuera de la especificación y toca usar extensiones que no forman parte del estándar.
Verás todo está relacionado. Si no se sacan juegos que puedan tirar al suelo tarjetas gráficas potentes, los fabricantes de gráficas no venderán tarjetas nuevas en grandes cantidades.
Si no venden tarjetas nuevas en grandes cantidades, tampoco tendrán mucho interés en desarrollar grandes avances.
Si no tienen mucho interés en desarrollar grandes avances, las consolas tampoco los verán, dado que éstas se benefician de lo que primero aparece en PC.
Así que si los desarrolladores se han acomodado es un problema que afecta a todos tanto ahora como en lo que podría venir en el futuro.
Por suerte para todos ATI y NVIDIA también están interesados en computación de altas prestaciones.
#15
Claro, DirectX no es sólo Direct3D
Lo que diga Carmack... bueno, tampoco es que haya precisado mucho, aunque seguramente tenga razón, quizá tampoco sea una diferencia abismal. A día de hoy tenemos OpenGL 4.1, pero pocas tarjetas lo soportan, sólo las que soportan Direct3D 11. El equivalente a Direct3D 10 es OpenGL 3.X y Direct3D 9 se corresponde con OpenGL 2.X.
quizás para ti es un problema que en la PlayStation 4 no podamos verle los pelos del culo a Solid Snake mediante Photon Mapping y radiosidad a 4000x3000 puntos en tiempo real.
Al usuario medio de consolas le preocupa más el acné o el follar poco o nada.
A los triunfadores no nos preocupa ni una cosa ni la otra.
Se te olvido esa nota sobre tu vida pero no pasa nada, yo estoy para ayudarte.
Estoy deseando saber cómo es eso de enviar "señales binarias por los puertos" en vez de usar una API... No me lo digas, programar en binario con 1 y 0... Madre de dios lo que hay que ver en estos tiempos que corren...
Respecto a OpenGL y DirectX, ni pienso que DirectX esté haciendo que los gráficos no avancen como debieran, ni creo tampoco que OpenGL esté a la altura de DirectX, y ojo, que no por falta de capacidad, sino por falta de interes en los desarrolladores. Para muestra, un botón, coge cualquier juego que pueda ejecutarse con DirectX y con OpenGL (hay muchos, Counter Strike, World of Warcraft...). Cuando hayas visto como se ve con DirectX y en qué se queda con us implementación con OpenGL, entenderás por qué de momento, OpenGL no gusta.
Si bien, OpenGL tiene muchos puntos a favor para ir creciendo, partiendo de la base de que empieza a ganar popularidad gracias al desarrollo de juegos para smartphones y quizás esto en un futuro no muy lejano, pueda mover la balanza a su favor con respecto a DirectX (y yo no apostaría porque fuese así finalmente) y se vean buenas implementaciones de juegos sobre OpenGL. Hasta entonces, a esperar.
os acordáis cuando los juegos de DOS venían con el sonido para una tarjeta en concreto ... pues seria algo parecido pero para gráficos... como que no ¿verdad ?
Por lo tanto, OpenGL podría ser objeto del mismo tipo de crítica. Y, aún así, la crítica no iría dirigida hacia estos estándares, sino hacia los sistemas operativos que obligan a su uso para que el software pueda interactuar con la gráfica.
En cualquier caso, dudo bastante de la veracidad de la noticia. DirectX se creó justo para que los programadores no tengan que adaptar el software a cada tipo de hardware, lo cual hoy en día más que nunca sería un disparate, dada la variedad del mismo y la frecuencia con la que salen nuevas piezas. Por otro lado, está claro que esta capa intermedia resta rendimiento, pero con 10 veces más potencia bruta que las consolas, sigue habiendo ventaja tecnológica para aburrir.
Y respecto a que Xbox usa una versión más antigua de DirectX, cierto, pero tiene la ventaja de que los desarrolladores pueden programar a bajo nivel, que es precisamente lo que no tienen en PC y es de lo que se quejan.
Para empezar a los dispositivos se accede escribiendo en memoria, el hecho de que no puedas acceder a esas direcciones es por estar usando un S.O. que protege el acceso a esos dispositivos a traves de llamadas al sistema.
Aqui nadie dice que tengas que escribir en 1's y 0's sino que se facilite mas flexibilidad a traves de dichas llamadas.
#24 perdona por el negativo, me equivoque.
Y para los talibanes, en este caso DirectX == Direct3D
El principal problema hoy en día radica en el coste tremendo que tendría un desarrollo a bajo nivel para aprovechar las capacidades del hardware al 100%. En el mundo multiplataforma en el que estamos eso es inviable completamente.
La solución pasa precisamente por lo contrario, tener cada vez mejores herramientas y frameworks que permitan explotar las capacidades del hardware pero centrándose en aquello que da valor, jugabilidad, espectacularidad, etc.
Sinceramente, o bien las declaraciones están sacadas de contexto o me parecen una soberana gilipollez. De gente diciendo que la solución pasa por OpenGL, cuando adolece exactamente de lo mismo que Direct3D ya que es una capa de abstracción de hardware, casi no merece la pena ni hablar.
Votaría como errónea esa afirmación de AMD, pero ya es demasiado tarde. El antimicrosoftismo que me reconcome las entrañas debido al injusto trato que tuvo el gobierno vasco a expensas de los ciudadanos a la hora de contratar un sistema de correo público basado en Exchange 2007 (sin IMAP ni POP ni pollas, de dominio bizkaia.eu) con dinero público, me pudo a la hora de menear.
Si algo hay que reconocerle a Microsoft es que hasta ahora hay al menos tres cosas que ha hecho muy bien en su historia reciente: DirectX, Xbox 360 y Windows 7. Al César lo que es del César.
www.novedoso.com.ve/2011/03/co-fundador-de-id-software-directx-es-mejo
“En realidad yo pienso que Direct3D es un mejor API hoy,” le dijo a bit-tech. “Microsoft tuvo el coraje de continuar haciendo significativos cambios incompatibles para mejorar el API, mientras que OpenGL se ha mantenido atrás por preocupaciones de compatibilidad. Direct3D maneja multi-threading mejor, y las versiones más nuevas manejan los estados mejor.”
Lo que está pidiendo AMD es la vuelta a la prehistoria de las aceleradoras graficas, ¿os acordais de Glide, la api propietaria de 3DFX? los juegos que la usaban eran espectaculares para su tiempo, muy superiores a sus ports para opengl/direct3d en todos los aspectos.. pero era una api PROPIETARIA y si no disponias de una tarjeta 3DFX no tenias nada que hacer, eso es lo que quiere AMD y seguramente también forma parte de los sueños humedos del CEO de Nvidia pero es la peor solucion para los usuarios, bastante problema hay ya con las "optimizaciones" que les meten a los juegos para una u otra marca gracias a iniciativas como "the way it's mean to be played" de nvidia, que hacen que juegos como arkham asylum apesten en AMD y lo mismo para Dragon Age 2 en Nvidia
Puede ser que una tarjeta grafica actual sea 10 veces mas potente que los chips graficos de una ps3 o 360, pero los programadores deben mantener la compatibilidad con tarjetas menos potentes, con Xbox 360, por ejemplo un programador sabe que dispone de 3 cores y de 48 shaders, tiene conocimiento absoluto de la memoria disponible y de la frecuencia a la que trabaja cada bus del sistema, sabe exactamente cuantos ciclos de cpu gasta la tarjeta de sonido cuando trabaja, y no tiene ningún sistema operativo pesado por debajo.
Y aún así, los juegos de pc son muy superiores a los de consola graficamente, las fotos engañan, cuando lo ves en movimiento te das cuenta entre la diferencia al pasar de 30 a 100fps, o de resoluciones mediocres a full hd por no hablar del antialiasing
El principal problema de D3D (y ventaja en OGL), en mi opinión, es la retrocompatibilidad, y su mayor ventaja (lo contrario en OGL) que su API es más sencilla y amigable para el desarrollador.
Esto no tiene por qué ser malo, quizá con esto OpenGL se ponga un poco más las pilas.
En PC se puede programar tan a bajo nivel como en consola. Si crees que en las consolas se meten los bytes a saco por los puertos, se manipula directamente la memoria, etc. estás muy equivocado. No en vano la PS3 y 360 tienen hypervisors y para desarrollar se emplean SDKs. Ejemplos de mala programación (con malos resultados en rendimiento) los tienes en cualquier plataforma.
Cualquier juego de consola en PC ya se ve desfasado en comparación con los que emplean efectos más avanzados, ya sea por librerías o por capacidades hardware disponibles.
En fin... gracias #11 , #27, #33 y como vosotros todos los que hablais desde el conocimiento y nos haceis aprender algo.
Vaya sandeces se leen en los comentarios a veces, y encima banyados en karma por sus semejantes, en fin...
Ese es precisamente el problema.
Este ejecutivo hace la observación por los juegos de PC; que se puede disponer de nuevo hardware cada dos por tres casi, para nada. Cuando juegas a un juego de PC que también esta en consola (la gran mayoría hoy día) casi no se diferencian entre si a pesar de que tengas un maquinón capaz de desayunarse las tres consolas a la vez.
MS y su vejestorio Xbox 360 de 6 vetustos años (valga la redundancia) lleva la voz cantante en la industria y MS usa esa posición para decirle a las 'desarrolladoras como desarrollar'. Entonces ¿Como se va a innovar cuando las consolas usan DX9 y la mayoría de las desarrolladoras trabajan con consolas y de hecho es su principal mercado? ¿Por que gastarían dinero para satisfacer los gustos gráficos y desempeño de cuatro gatos (los gamers de PC somos menos que de consolas) y que encima la mitad de esos lo pirateen?
DX10 pasó sin pena ni gloria y ni siquiera se utiliza como alternativo cuando el juego viene DX11 como nativo (en este caso sería DX11 o DX9). Aquí pasa como con el IE6; MS lo hace estándar a su conveniencia.
Ya verán como la cosa se repite cuando salga la nueva consola de MS con un 'DX12' o algo así; ese será el estándar, otra vez.
problema es de adobe flash player.
Estamos con lo de siempre, OpenGL y el Direct3D no son mas que herramientas, con sus limitaciones, si quieren mas potencia que ataquen al hardware directamente, pero claro, se encontraran con que la gente tiene harware diferente.
Decir que la calidad de un juego depende de las librerías es una tonteria como una catedral, la calidad gráfica depende del grafista y la calidad del engine depende del programador.
Un equipo bueno, que conozca la maquina, hará juegazos en una play 1, un equipo de becarios, putruños, por mucho que sean para la play 5.
Que OpenGL se ha quedado antiguo, seguro que si, que Direct3D no aprovecha el hardware actual, posiblemente, que eso no es excusa para que los juegos sean "peores" ni de coña.
Es como cuando hacían juegos de Amstrad o MSX y eran copias del spectrum, los juegos eran una mierda y a nadie se le ocurría culpar a la "aplicación de conversión" o a las "librerías", simplemente los programadores eran uno vagos o no tenían tiempo... quien sabe, pero era lo mas fácil.
Un ejemplo de algo bien hecho aprovechando la maquina: www.youtube.com/watch?v=fSbKv7wCKlU
Quien se queje de las librerías, no son mas que EXCUSAS, si no les gustan, que se las hagan ellos, pero uf! que curro! prefiero algo que funcione solo...
Pues 27# tiene un fallo garrafal en su segundo párrafo. Sobre OpenGL versus Direct3D no voy a opinar fervientemente.
En las consolas programan con los SDK's del fabricante PERO tienen la posibilidad de usar bajo nivel cuando lo necesitan. En PC solo "pueden" programar en alto nivel. Y cuando digo "pueden" me refiero a que actualmente, economicamente solo es viable desarrollar en alto nivel. Esa es la "queja" y de eso va esta noticia.
Lo siento, pero para decir estupideces mejor te quedas en casa. No me hagas perder el tiempo.
Ni de coña, no puedes desarrollar a bajo nivel para PC (algo que pretendas que use "cualquiera") por que "todos" los PC son diferentes, con hardware diferente.
En cambio las videoconsolas son idénticas entre si, todas las xbox son iguales entre ellas por ejemplo, lo que programes a bajo nivel para una, servirá para otra. (bueno vale, pueden tener bios distintas)
Si te estas refiriendo a que no hay información para programas a bajo nivel en las videoconsolas, este, es otro tema.
EDIT: te he leido en el anterior, y si, creo que tienes razón.
El artículo se olvida comentar que tanto Direct3D como OpenGL cumplen la función de abstraer el hardware desde el punto de vista del programador, de manera que una aplicación (por ejemplo un juego) programado para estas APIs funcionará en tarjetas gráficas de muchos fabricantes, tanto de ahora como en el futuro.
Si esta API desaparece, los juegos solo funcionan en una gráfica, ya que el hardware de diferentes fabricantes y generaciones de tarjetas gráficas puede ser muy distinto.
Esta empresa está llorando porque quieren que sus tarjetas gráficas de alta gama y por supuesto, más caras, sea el estandar; algo que obviamente no es así.
Si no avanza la industria es porque cada dia hacer un motor gráfico cuesta más, cuando no, pagas licencias a terceros.
Por eso los pro son iguales desde PS2 pero con mejores sombras. O los gears of wars... Hasta Nintendo con Mario Galaxy 2! Rentabilizan además que pasan la crisis.
La gente no necesita aun ps4, xbox540...
Sí que puedes desarrollar a bajo nivel para PC. Simplemente tienes que definir un objetivo de tecnologías a soportar. Por ejemplo, si quieres utilizar un determinado juego de instrucciones indicas que como mínimo necesitas tal familia de microprocesadores.
Si necesitas que tu gráfica soporte como mínimo toda la funcionalidad de Direct3D 10 pues dirás que cómo mínimo necesitas unas GeForce 8 o ATI HD3000. Luego además según las exigencias con las que quieras programar, dirás que necesitas X cantidad de memoria y tal capacidad de GPU, que podrán cumplir varias generaciones compatibles con las funcionaliades que requieras.
Además, en PC es muy común que los programas tengan varios caminos de código, y se usará cada uno según la máquina sobre la que se esté ejecutando el programa para utilizar las extensiones SIMD adecuadas. Del control de la tarjeta gráfica ya se encarga el driver del fabricante y no es raro que nuevas versiones de los drivers te den mejoras en el rendimiento. Tu accederás a esos drivers a través de las API Direct3D u OpenGL. Si quisieras también podrías hacerlo directamente, evidentemente, NVIDIA ya hace mucho que utiliza la UDA (Unified Driver Architecture). Del driver al hardware hay un paso.
En cuanto a las consolas, pues no se programa a bajo nivel, porque utilizan APIs igual que todos. Tienen su sistema operativo subyacente y el número de llamadas hasta llegar al hardware es prácticamente el mismo, las diferencias serán negligibles. Los juegos se programan bajo OpenGL ES, básicamente. Luego Sony añadió un par de modificaciones a OpenGL encaradas a un mejor uso de memoria (la cantidad de memoria incluida en las consolas es ridícula, tanto de sistema como de framebuffer, en comparación con las gráficas de PC y memoria principal), pero esto no significa que obtengan mejor rendimiento, simplemente se adaptan a un hardware con varias restricciones para que a ellos le salga lo más barato posible, y de hecho en algunos juegos que han sido debidamente portados a PC se notan diferencias (anti-aliasing, mejores texturas, etc. cosas que principalmente requieren memoria).
#48
Besos para tí tampien
Exacto, lo mismo que llevamos desde esta tarde diciéndote. Y te repito que hacer eso es técnicamente posible pero económicamente inviable. Un juego que sale para PC tiene que soportar el mayor hw posible. No van a complicarse la vida y limitar los potenciales compradores (cuanto menos HW compatible menos compradores) por mejorar los gráficos.
Si necesitas que tu gráfica soporte como mínimo toda la funcionalidad de Direct3D 10 pues dirás que cómo mínimo necesitas unas GeForce 8 o ATI HD3000. Luego además según las exigencias con las que quieras programar, dirás que necesitas X cantidad de memoria y tal capacidad de GPU, que podrán cumplir varias generaciones compatibles con las funcionaliades que requieras.
Excelente solución. De modo que quieren programar a más bajo nivel para librarse de DirectX y tu piensas programar a bajo nivel con... DirectX... wow. Ya nos dirás cómo se hace eso.
Exacto, lo mismo que llevamos desde esta tarde diciéndote. Y te repito que hacer eso es técnicamente posible pero económicamente inviable.
Pero si eso ya se hace
Además, instrucciones como SSE2 llevan desde la época de los Pentium 4 (2000), y SSE3 desde los Athlon 64 que salieron allá por el 2003-2004. Las SSSE3 fue con los Core 2 Duo allá por el 2006 y las SSE4 con los del 2008. Estamos en el 2011.
Excelente solución. De modo que quieren programar a más bajo nivel para librarse de DirectX y tu piensas programar a bajo nivel con... DirectX... wow. Ya nos dirás cómo se hace eso.
Si quieren hacer juegos multiplataforma (incluyendo consolas) tienen que programar con APIs para abstraerse, no pueden atacar directamente al driver. Y eso de que quieren librarse de DirectX, ¿de dónde lo sacas? ¿de la noticia?, ah sí, esta noticia no vale nada.
Como mucho lo que se puede intuir es que quieran librarse de .NET y otras cosas. Pero vamos, nada impide utilizar DirectX 10 o DirectX 11, pero el 10 no añade gran cosa al 9 y el 11 aún está por ver, así que básicamente se estarán refiriendo a que DirectX no avanza casi nada para todo el potencial que hay. Sin embargo juegos como el Metro 2033 o Crysis hacen buena muestra de lo que se puede hacer con lo que hay hoy día y 39# tiene razón en parte.
John Carmack: "Direct3D es ya mejor que OpenGL"
barrapunto.com/article.pl?sid=11/03/22/0711204&from=rss
(Nota de Prensa)
No, claro. Lo que necesitamos es anclar el mercado porque los accionistas han decidido que hasta que no haya un superávit del 50% en las videoconsolas actuales no se saca nada más que accesorios y sagas cuyo cambio es skyboxes nuevos y un pañuelo en el cuello (que es DLC, por supuesto).
Se llaman ingenieros de bar en todo su esplendor
Ganan los segundos por goleada en diversión . Los únicos juegos en 3d que me han entretenido de verdad , ahora , son :
Max Payne 1, y 2.
Deus EX
Half Life 1 y 2.
Colling MC rae Rally 2
Saga Cruisin , S.Francisco Rush y similares en arcade.
Crash Team Racing
Blade de Edge of Drakness
Eduke32/DukeNukem alta resolución .
Crazy Taxi (Diversión coño, diversión)
Neverball
Zelda 64.
Si pongo los 2D, entre los de recreativas de la infancia, los de SNK, Game Boy, y Super Nintendo, no acabo en 20 comentarios .
Tampoco es eso. Sería simplemente que los desarrolladores tendrían que volver ha hacer las cosas como antaño, esto es, hacer que en la instalación o configuración del juego el usuario diga qué hardware tiene (o hacerlo de manera automática) y ajustar la ejecución del juego a dicho hardware. El problema: Tardas más en desarrollar de esta manera que si tienes un conjunto de librerías portadas a cada tipo de hardware, por lo tanto, se incrementan los costos del proyecto, y se reduce el beneficio...
El desarrollador debería de soportar todas las tarjetas gráficas del mercado, ya que yendo a tocar el hardware directamente los drivers no sirven para nada.
Los juegos irian ligeramente más rápidos, pero funcionarian sólamente en dos o tres GPUs. Tendríamos pues que comprar tal o cual tarjeta para tal o cual juego.
No gracias.