Hace 10 años | Por nacho_lobez a phoronix.com
Publicado hace 10 años por nacho_lobez a phoronix.com

Para ayudar a otros desarrolladores de juegos, Valve ha liberado el código de su capa de traducción gráfica. ToGL es el nombre del último proyecto de Valve que admite traducciones de Direct3D 9.0c y HLSL a OpenGL.

Comentarios

oliver7

Valve esto, Valve lo otro... a ver si se dejan de milongas y sacan el HL3. lol

D

#7: Antes retrasaban HL3 cada vez que alguien hablaba del peso de Gabe. Ahora directamente cada vez que se menciona su nombre. Tienes que decir: Ricochet 2.
O Ricocherino.
#6MesesMás

o

Sigo sin entender porque la desarrolladoras siguen usando DirectX...

DirectX: Windows, Xbox.
OpenGL: Windows, Playstation, Nintendo, iOS, Android, etc...

meneandro

#3 Normalmente un programa de pc no sabe qué hardware corre por debajo, así que se usan librerías de abstracción que funcionen sobre todo y nos permitan hacer nuestro trabajo, unas que funcionan sobre una sola plataforma (directx en windows) y otras que funcionan sobre todas las plataformas que quieran implementarla (opengl, openglES). Las consolas son mundo aparte, no porque no se puedan usar implementaciones de opengl/directx en ellas, sino porque al ser un hardware único e inmutable se pueden optimizar cosas para ese hardware y acceder más directamente a los recursos, pues ya no hace falta abstraer nada. Así que o se hacen librerías de bajo nivel desde cero o se hacen implementaciones de algo que ya está hecho adaptadas a ese hardware. Lo normal en las consolas es un mixto: los primeros kits de desarrollo traerán una adaptación de librerías como opengl al hardware dado que la implementación base suele estar hecha y se ahorra tiempo de desarrollo y testeo; más adelante, los kits de desarrollo suelen evolucionar y traer herramientas más específicas y de bajo nivel para hacer lo mismo (o se evoluciona en la adaptación hasta crear algo realmente atado al hardware y que se parece bastante poco a la implementación original). Así que ambos tienen razón y ambos están equivocados.

Sobre mantle, pues bueno, es una api diseñada específicamente para una familia reducida de hardware, no sé de qué forma piensan abstraerlo para que tire más adelante en hard nuevo y/o permitir que otros fabricantes usen la api. Lo de las nuevas versiones de directx y opengl... no creo que dejen de abstraer, por lo que yo sé o simplifican las capas de abstracción "forzando" a que el hardware o los drivers añadan la suya propia en caso de no ser compatibles con unas especificaciones dadas o hacen lo que han anunciado que van a hacer, que es limar esas capas de abstracción lo máximo posible para que las sobrecargas que añadan a cada llamada y el número de llamadas a la api para hacer cada cosa se minimicen todo lo posible. Es decir, se hacen más cosas con menos presencia de intermediarios, acelerando todo el conjunto.

D

#2 Normal que no lo entiendas cuando es el único argumento que se te ocurre.

r

Funciona con DirectX9... ¿Hasta que punto es util esto ahora que vamos a recibir DirectX12? ¿Siguen saliendo juegos compatibles con DirectX9?

Durante muchos años los juegos salían con compatibilidad con DirectX9 ya que ofrecía mejor rendimiento que las versiones superiores y compatibilidad con XP, pero no conozco la situación actual.

#2 Por lo que he leído, OpenGL empezó a sufrir problemas de diseño y lentitud en el desarrollo mientras DirectX resolvía muchos de sus problemas internos, lo que convirtió al ultimo en la API lider.

Zipitostio_Baneado

#8 Si, es un gran paso pero es mas publicidad efectista que algo con vision de futuro.

Con la llegada de Mantle, las nuevas versiones de DirectX y OpenGL se esforzaran igualmente por igualar sus caracteristicas y ya se sabe que DirectX 12,que presentaran en breve, mira en esa direccion.

Esta muy bien que se pueda traducir del antiguo DirectX 9, pero me da que el furor por las nuevas versiones de DirectX, hara poco sostenible en el tiempo este movimiento.

Se ve que le corre prisa a Valve aumentar el catalogo existente. Se entiende porque tal como esta ahora mismo Linux, se pasaria mucha hambre.

Que ironia presentar una alternativa al "enemigo" Microsoft y tener la mayor parte de tus ingresos y catalogo, precisamente derivandose de ese enemigo. roll

meneandro

#22 Valve ha conseguido su objetivo de portar su software (menos el último CS), su nueva versión de source tendrá soporte opengl nativo, ya no necesita la herramienta y puede serle de utilidad a alguien... ¿para qué iba a guardársela celósamente si ya no tiene el valor que tenía para la propia empresa? la liberan y así quedan como chachisguays

Zipitostio_Baneado

#30 Una cosa esta clara, no es un gesto demasiado costoso y por contra, les puede reportar beneficios en forma de catalogo para su incipiente SteamOS.

Catalogo con API antigua, pero catalogo al fin y al cabo.

ny80

#6 La mayoría de los juegos son para DirectX 9, supongo que por mantener la compatibilidad con Windows XP, que sólo admite hasta la versión 9 de DirectX.

D

#6 Hay varios juegos que tienen ejecutables DX 11 y DX9 por lo que dice #16.
#16

Aokromes

#6 World of warcraft mist of pandaria por ejemplo corre en dx9 y puede correr en dx11, si lo pones en dx11 en una tarjeta medianamente antigua el wow no para de crashear. (y estoy hablando de windows 7)

meneandro

#6 Se usaba directx9 principalmente porque es lo que el hardware de las consolas admitía; hacer un motor dx10 te limitaba a juegos de pc (que luego tenías que portar a dx9 para llevarlos a consola; añadir costes de portar un motor dx9 de consola a dx10 para vender juegos en pc no les salía a cuentas). También influye que la primera generación de tarjetas dx10 tenía más interés en competir con las generaciones anteriores en rendimiento dx9 que en ser un portento en dx10 (además de que dx10 es un cambio muy grande en hard y si se centraban en dx10 el rendimiento dx9 podía haber caído considerablemente), lo cual si lo sumamos a la exclusividad con vista y a que pese a sus promesas ms olvidó el mercado del pc (dejó de hacer juegos, su games for windows nunca estuvo a la altura, etc) y el hecho de que la forma de programar las nuevas tarjetas para aprovechar las nuevas capacidades requería cambiar de mentalidad y forma de hacer las cosas, tenemos el por qué dx10 nunca fue popular. Luego con su versión remozada y optimizada que es dx11 las cosas empezaron a cambiar... muy poco a poco. La tendencia del gpu computing y las nuevas herramientas para aprovechar/programar esas nuevas capacidades que introdujo dx10 ayudaron a acercar a los programadores de juegos.

chemari

#2 Tu mismo te respondes: Windows y XBox. Microsoft tiene bastante cuota de mercado como para usar su propia libreria gráfica y arrastrar a los desarrolladores.

D

#2 como te explica #19 todo se debe a un FUD de microsoft:

Dijeron que OpenGL iba a funcionar sobre una capa que funcionaba sobre DirectX -diciendo que se iban a calzar el rendimiento de opengl por diseño de SO, vaya-

Luego fue falso pero sirvio para que nadie desarrollara con opengL...

meneandro

#19 En realidad opengl va tan por delante o tan por detrás de directx como los fabricantes quieran. Cada fabricante puede añadir extensiones vía drivers a opengl y las aplicaciones pueden usarlas o no (como ciertas extensiones que añadieron tardíamente a la ps3 para permitir ciertos efectos). Lo que quiero decir es que si un hardware permite una cosa, con la extensión adecuada opengl puede hacerlo. Otra cosa es aprobar esas extensiones y que el resto de fabricantes las adopten (las distintas subversiones de opengl solo añaden más extensiones, no suelen modificar el lenguaje y/o otras características que si añaden las versiones mayores). Los casos más llamativos de esto puede que lo hayan sufrido las tarjetas ati radeon (¿alguien recuerda el truform? ¡teselación en dx8! pero que no fue adoptada por ningún otro fabricante dado que los resultados no eran óptimos -daba fallos en modelos con filos muy pronunciados- y chupaban un huevo de recursos, y no me sale ahora pero había un par de novedades novedosas más que introdujo en su época y que solo aprovecharon un par de juegos)

D

Siempre dije que el día que pueda jugar en linux como en windows, por los directx me iría para siempre y éste sería mi primer S.O. a ver cuando llega ese día, por lo que parece pronto

D3S1GN

Valve otra vez derribando puertas. El autor del artículo lo ha centrado en el mundo del juego, pero esto va muchísimo más allá: facilita la portabilidad de aplicaciones de diseño gráfico y CAD: las "killer apps" a nivel usuario que faltan en sistemas GNU/Linux.
Mis respetos.

meneandro

#14 Toda aplicación CAD/CAM que se precie debería tener ya su propio motor opengl. Que narices, opengl se hizo para ellos, en sus estaciones silicon graphics haciendo virguerías. La potencia de opengl son las extensiones y te puedo asegurar que hay un montón enfocadas directamente para la indústria del diseño asistido por ordenador.

D

#14 OpenGL se usa para CAD desde siempre. DX no pinta nada.

D

Grande Valve!

Zopokx

#24 Lo has vuelto a hacer jijijijij

p

Honestamente, se agradece el esfuerzo, pero creo que a día de hoy no hay ningún engine gráfico que soporte DirectX y no OpenGL, nativamente o con sus propios wrappers.

Por otro lado, sino estoy equivocado, todas las consolas actuales, salvo Xbox, utilizan sus propias versiones levemente modificadas de OpenGL. Una se llamará GX2, otra PLGL, etc... pero al final acaba siendo todo lo mismo.

D

Otra buena noticia para Linux, llevo tiempo diciendo que Valve hace las cosas bien pero algo lentas, por lo que da sensación de dejadez, pero también es cierto que cada vez que sueltan una noticia suele ser buena o muy buena, a ver si cuando salgan al mercado sus Steam Machines lo hace junto a un Steam OS bien pulido y unas posibilidades que a más de uno le hagan plantearse si dejar sin instalar Windows (ya que las Steam Machines son PC's y como tal se les puede instalar Windows sin problema).

Zipitostio_Baneado

#24 Era facil advertir el error leyendo a continuacion " lo tengamos más fácil/accesible para jugar en Gnu-Linux "

¿A que usuario de Mac se le puede ocurrir semejante disparate si tiene mucho mas catalogo de videojuegos que Linux?

Si, ya sabemos que tambien hay masoquistas entre los maqueros, pero lo normal es quedarto como estas, no ir a peor

D

#25 "¿A que usuario de Mac se le puede ocurrir semejante disparate si tiene mucho mas catalogo de videojuegos que Linux?"

Si, portados con Cyder (Un port directo de Wine encapsulado).

Total, que con Linux y PlayOnLinux obtienes el mismo rendimiento, si no mayor, al ser el soporte de OpenGL en Mac un chiste, la version soportada está cuasi obsoleta. Hasta OpenBSD tiene mejor soporte con Mesa 9.2.

D

bienvenido sea otro traductor de hlsl a glsl.

Gol_en_Contra

Al principio me alegré.
Luego recordé que sigo sin poder configurar direct rendering en mi tarjeta gráfica.

A ver si hacen algo para que los "manzanas" lo tengamos más fácil/accesible para jugar en Gnu-Linux.

Brimstone

#21 Compra una iOuija y pídeselo a Steve Jobs

Gol_en_Contra

#23 Vale, que acabo de caer en que al decir manzanas quise decir manazas y acabo de quedar como usuario de Mac. No obstante fue un buen chiste

DarKSchneideR

Por lo visto Microsoft ha anunciado tambien su DirectX 12. Sacado de la web de xataka ->
"Los medios más especializados están especulando que DirectX 12 bajará el nivel para centrarse en una interacción más cercana con el hardware, posiblemente más compleja pero también capaz de sacarle más partido. También se habla de la fuerte competencia de Mantle, de AMD, que se ha posicionado como una buena opción capaz de sacarle buen partido a los componentes siempre y cuando se den cumplan ciertos requisitos (principalmente, que tanto hardware como software sean compatibles).
DirectX 12 será una opción mucho más agresiva que Mantle, siendo una API mucho más utilizada que cualquier otra: disponible en cualquier PC Windows y dependiente de Microsoft, una compañía de mayor envergadura que AMD. Se presentará en un par de semanas, sí, pero no confiéis en tenerla hasta dentro de unos cuantos meses más."

sdar

#31 DirectX 12 se presenta el día 20 en el GDC, ese mismo día hay otra presentación sobre opengl de la que pocos medios se han molestado en mencionar:

http://schedule.gdconf.com/session-id/828316

Reducir el overhead 10 veces es, sobre el papel, mas que lo que Mantle dice reducir.

También cabe destacar que John Carmack cuando se le pregunto acerca de Mantle dijo que 9x veces mas draw calls sobre Direct3d era una cifra realista teniendo en cuenta que Nvidia ya obtenía mejoras similares usando Opengl con extensiones.

P

No tengo ni idea del mundo de directX y OpenGL, pero lo último que leí hace sobre el tema hace algo más de un año es que OpenGL estaba estancada desde hacía tiempo y que era un problema gordo. ¿Esto significa que han avanzado con estas librerías desde entonces?

Zipitostio_Baneado

#35 Depende de a quien preguntes te dira que es una mierda, una maravilla o que tal o cual derivacion del mismo es un trillon de veces mejor. Ya podria OpenGL ser lo mejor de lo mejor que las decisiones de las desarrolladoras siempre se centraran en el coste/beneficio.

Por tanto, si hay suficiente demanda de productos OpenGL y su consiguiente beneficio economico, no tardaras en ver florecer su uso como una primavera opensource.

Y si resulta que es como hasta ahora, se comera una mierda y se desarrollara para aquello que mas reditos de.

meneandro

#35 Opengl es una api donde la compatibilidad hacia atrás acarrea un peso muy grande. Así, opengl2 es un opengl1 que permite shaders y alguna cosa más. Ahí se quedó la cosa un poco estancada porque habían dos corrientes, la que quería aún compatibilidad hacia atrás pese a que opengl2 demostró que el opengl tradicional estaba suponiendo un lastre (al fin y al cabo openglES es un opengl2 sin la mitad de funciones, en parte porque eran muy pesadas para los dispositivos móviles y en parte porque realmente no se usaban) y los que querían renovar por completo el lenguaje. Tras mucha batalla se lanzó opengl3, que (aunque tampoco estoy realmente puesto) vino a ser un paso en falso, ni chicha ni limonada (no hubieron refrescos para opengl2, por tanto debate y falta de consenso salió tarde, cuando ya dx9 estaba más que asentado y dx10 estaba comiéndose el mercado... en aplicaciones de computación más que en juegos). Supuestamente, opengl4 lima las cosas chungas de opengl3 y es lo que debería haber sido y blablablá, pero ahí no te puedo comentar porque no estoy lo suficientemente al día. Ahora tanto dx como opengl van a la par en el sentido de que dx se ha estancado un tanto (dx9 fue estandar de facto durante mucho tiempo y casi nadie había dado el salto a dx superiores hasta hace no mucho -salvo productos de corte empresarial y cómputo gpu-) y porque opengl se puso las pilas (ya en la versión 3 fueron sacando hasta 4 versiones menores añadiendo extensiones propuestas por los fabricantes y en la versión 4 otras tantas), poniéndose al día en relación al hard bastante rápido. Aparte de que el soporte opengl en plataformas alternativas a windows ha madurado muy muy rápido (ahora mismo algunas gamas de tarjetas radeon tienen mejor soporte y permiten hacer más cosas con drivers libres que con privativos, algo casi impensable hace tan solo un año, y ya no digo dos; el soporte de intel es impecable e incluso se ven ligeros movimientos aperturistas por parte de nvidia y otras). Habrá que ver las novedades de las siguientes versiones a ver quien se ha adaptado mejor a los cambios y requerimientos del mercado.