Ayer fue la WWDC 2018 de Apple y, como siempre, se centró en el lanzamiento de nuevo software para los diferentes dispositivos que posee en su catálogo. Del lanzamiento de la nueva versión de macOS 10.14 o macOS Mojave destacó una cosa y es la pérdida de soporte para OpenGL y OpenCL, algo que ha preocupado a partes iguales a desarrollador Apple anima a los desarrolladores de juegos y aplicaciones que requieren de un gran potencial gráficos, construidas con OpenGL, a adoptar Metal antes del lanzamiento de la actualización del sistema operativo.
|
etiquetas: apple , opengl , opengl , metal
OpenGL se creó para hacer una capa que te abstrayera del hardware gráfico de la maquina y evitar asi tener que programar para cada GPU un código diferente. Y no tenias alternativa, o usabas OpenGL o Microsoft DirectX que solo funcionaba en Windows.
El problema de las capas de abstraccion es que a la larga te estan quitando libertad y rendimiento. Ademas OpenGL no es Open Source como dice el articulo, en todo caso lo controla un consorcio formado por muchas empresas, pero las implementaciones finales de OpenGL las hace cada fabricante de hardware (NVidia, AMD, Apple, etc) y acabas en situaciones donde un juego funciona mejor con GPU NVIDIA no porque sea mejor la GPU sino porque dentro de los drivers (que ocupan 300 MBs) hay un sitio donde pone: si el juego es X entonces ejecuta Y optimizacion que el programador no usó, o problemas como…...
A juego del resto de software de Mac.
en.wikipedia.org/wiki/MoltenVK
Desde luego no conozco ningún gamer que use Mac. Tienen sus juegos, pero vamos, que el que quiere jugar se compra una consola o se monta un PC.
OpenGL lleva años estando anticuado.
Hace no mucho lanzó Metal (y Metal2) que venía a solucionar este problema. Librerías muy independientes que pueden avanzar a buen ritmo sin que el sistema pueda resentirse por ello. Aquí el problema ha sido no tirar por el estandar de la industria Vulkan, y montárselo por su cuenta. Un movimiento muy Apple.
En cuanto a lo de tener que hacer dos versiones del juego, pues antes ya era así porque casi todos los desarrolladores se plantean de primeras ir a por la plataforma mayoritaria, Windows, y por supuesto DirectX. Luego si interesa ya se busca cómo portar a otras plataformas.
Lo importante es que los desarrolladores de motores y entornos de programación de juegos den soporte a la librería que tengas en tu plataforma (de momento los más importantes si lo hacen) y después que al desarrollador del juego en concreto le interese o no sacarlo para ella, porque no es un tema de recompilar y listo.
Las tipografías se vuelven enormes, los grises desaparecen y se vuelven blancos, las cosas empiezan a no entrar en algunas resoluciones, etc...
Le obligue a instalarse una pantalla 16:9 normalita de hace 6 años para que pruebe contrastes, alturas y vea las cosas como la gente normal.
Ha crecido mogollón como profesional desde entonces.
El problema es que el resto de los mortales no tienen una pantalla 5k para verlo como él.
El problema es cuando bajas a la realidad, en el pantallote todo es perfecto, en casa del usuario no.
OpenGL está anticuado aunque mañana te saquen la versión 4.7, como tantos otros softwares (seguro que te suena Flash).
Apple lleva años pidiendo que se cree un único estandard que unifique todos los sitemas, y ha creado metal a la espera de este estándard
OpenGL está anticuado y DirectX es sólo Windows
"Unity has worked closely with Apple and Valve to optimize Metal 2 to run against Unity’s current VR rendering paths, Multi-Pass, and variants of Single-Pass."
En Mac Apple dice lo que va y lo que no.
PS: como ejemplos de como no deben hacerse UI tienes a Gnome. Lo tenía todo en gnome2 y le daba al usuario las cosas mascadas siendo un entorno fácil y amigable para todo y al pasar a gnome3 era el usuario el que tenía que adaptarse a la interfaz.
www.phoronix.com/scan.php?page=article&item=dota2-mac-vulkan&n
OpenGL se creó para hacer una capa que te abstrayera del hardware gráfico de la maquina y evitar asi tener que programar para cada GPU un código diferente. Y no tenias alternativa, o usabas OpenGL o Microsoft DirectX que solo funcionaba en Windows.
El problema de las capas de abstraccion es que a la larga te estan quitando libertad y rendimiento. Ademas OpenGL no es Open Source como dice el articulo, en todo caso lo controla un consorcio formado por muchas empresas, pero las implementaciones finales de OpenGL las hace cada fabricante de hardware (NVidia, AMD, Apple, etc) y acabas en situaciones donde un juego funciona mejor con GPU NVIDIA no porque sea mejor la GPU sino porque dentro de los drivers (que ocupan 300 MBs) hay un sitio donde pone: si el juego es X entonces ejecuta Y optimizacion que el programador no usó, o problemas como que si un fabricante no saque drivers buenos para un cierto OS.
Todo esto ha degradado mucho el panorama del desarollo de gráficos. Por suerte hace unos años AMD,Apple y Microsoft se pusieron las pilas y decidieron deshacerse de la capa intermedia creando Mantel, Metal y DX12 respectivamente. Estos APIs son de mas bajo nivel con lo que son algo mas crudos de trabajar con ellos que OpenGL pero simplifican mucho ciertas partes y evitan errores habituales al desarrollar aplicaciones 3D, ademas de tener menos overhead con lo que son algo mas rapidos en comparacion con OpenGL o DX11 (solo a nivel de CPU).
AMD cedió Mantel hace unos años y gracias a eso Kronos (los que llevan OpenGL) sacaron Vulkan, que es el equivalente a los anteriormente mencionados, es decir, un API para acceder a la GPU de manera directa, simple (y donde necesitas entender bien como funciona internamente).
Hoy por hoy programar en OpenGL se considera casi obsoleto, y en dispositivos moviles donde los recursos son mas limitados esta claro que nadie quiere tirar CPU tontamente usando OpenGL.
Todos los motores existentes (Unity, Unreal, etc) ya han migrado a Vulkan/Mantel, no porque lo diga Apple, sino porque quieren exprimir mejor el hardware, ademas de que es mas cómodo que usar un API que aun arrastra funciones de hace mas de 20 años. Ademas que no les ha supuesto un trabajo muy complejo (Unreal dice que les llevó una semana).
Ahora bien, qué pasa con el tema multiplataforma? De momento Metal solo sirve en OSX/iOS y DX12 solo en Windows. Vulkan funciona en Windows y Linux y hay versiones desarrollandose para OSX (no por Apple). Luego hay proyectos como ANGLE que traducen entre APIs ya que las llamadas son muy parecidas (a fin de cuentas la GPUs son identicas). No deberia tardar en estar soportado Vulkan en OSX.
Apple lo que quiere es poder desprenderse ya de tener que dar soporte a OpenGL, ya que les consume tiempo de sus desarrolladores y hace que sus juegos vayan mas lentos, pero eso no significa que no puedan existir ports de OpenGL a Mantel (de hecho ya hay de OpenGL a Vulkan), asi que si realmente es un problema ya habrá algun proyecto que permita sortear el problema. Solo que asi Apple se libera de ese problema.
Asi que lo dicho, no es un movimiento malvado ni una jugada maestra de Apple, solo un movimiento empresarial parecido a cuando dejaron de dar soporte a Flash. Si, para algunos fue una putada pero rapidamente la gente entendió por qué y pasó pagina.
Los juegos indies Usan Unity y Unreal. Y ambos soportan Metal. El problema principal que yo veo son las apps científicas que parece que estén hechas por orangutanes picando código y muchas de ellas usan OpenGL. Pero estoy bastante seguro que Apple habrá visto que ese nicho de mercado en comparación a lo que perdían en mantenerlo no era rentable. Que puede que se equivoquen, pero es que aquí hay de cada abuelo cebolleta dando lecciones a la empresa que más dinero gana del mundo como si fichasen a la gente en tómbolas...
Se te cuelga un ordenador al conectarse a la intranet, y lo que haces es considerar que el problema lejos de ser tuyo es del ordenador. Interesante.
Te dejo un regalito: www.xataka.com/componentes/asi-es-como-un-pc-con-amd-ryzen-de-1-530-do
ultraretinadebarridode
electronesescitaospuestos
decoca
1:1x101000000
¿Windows está diseñado para tener que funcionar sobre cuántos tipos de hardware diferentes? ¿Y Mac OS X? ¿Puede ser que si instalas un Windows en un ordenador, no estés sacando todo el partido de ese hardware porque no ha sido optimizado para él? ¿Puede ser que MacOS X saque un rendimiento muy superior al mismo hardware? ¿Qué sistema postventa te ofrecen unos y otros? Podría pasarme toda la noche escribiéndote preguntas para reflexionar.... pero te haré una recomendación: ponte las pilas.
No me hables de engaños, que creo que el que vive en la inopia eres tu, que no ve como Apple va a la deriva desde hace algunos años (Y con el la usabilidad/estabilidad de su software)
El ultimo modelo de Macbook Pro, el que tiene la touch bar? Una mierda pinchada en un palo, de los peores rendimientos que he visto en los últimos años, tal vez lo solucionaran con soft, pero por ahora, MIERDA, me tuve que volver a mi antiguo pro del año pasado.
www.apple.com/newsroom/pdfs/q110data_sum.pdf
www.apple.com/newsroom/pdfs/q210data_sum.pdf
www.apple.com/newsroom/pdfs/q310data_sum.pdf
www.apple.com/newsroom/pdfs/q410data_sum.pdf
www.apple.com/newsroom/pdfs/Q1FY17DataSummary.pdf
www.apple.com/newsroom/pdfs/Q2FY17DataSummary.pdf
www.apple.com/newsroom/pdfs/Q3FY17DataSummary.pdf
www.apple.com/newsroom/pdfs/fy17-q4/Q4FY17DataSummary.pdf
Jamás habían vendido tantos ordenadores como ahora pero se van a quedar haciendo solo iPhones por... razones
Photoshop
Firefox/Chrome
Krita
Netbeans
Keepass
In AfterEffects: 8-Core MacPro vs Ryzen 1700 www.youtube.com/watch?v=f9xuUkZ-eDg
In Premiere Pro: 8-Core MacPro vs AMD Ryzen 1700 PC www.youtube.com/watch?v=dh9waDDbrL8
Te lo escribo desde un iMac 27'' con windows como OS predeterminado... Apple no vale ni un duro para cosas serias, ya solo se fija en apps de itunes y ipads tamaño carpeta de arquitecto
De todas formas, teniendo en cuenta de cómo se van a acabar deshaciendo del soporte de 32 bits está claro que los juegos clásicos que tiran de OpenGL iban a acabar muertos sí o sí en la futura versión de macOS (Mojave sí que tendrá soporte tanto para aplicaciones de 32 bits como para OpenGL).
Porque tal como va ahora ("yo tengo razón", "no", "sí", "no") es poco interesante