As far as I can see, a lot of restrictions, especially in materials, on Macs are results of the lack of SM5. I googled and there’s no specific info about this. Does anyone know?
AFAIK Metal is a separate API. That is, no more OpenGL, Mantle, DirectX, ShaderModel, etc. when using the Metal API.
The Apple Metal documentation is here:
It appears for 2015-2020+ for iOS and OS X Unity and Unreal will have to focus on output to Metal and NOT OpenGL or DirectX… so as to get maximum performance (and features) on those platforms.
Luckily for us, the “headache” is on the Unity and Unreal engine developers.
So for UE4 looks like the target APIs will be:
iOS + OSX - Metal.
Android - OpenGL, OpenGL ES, Vulkan.
Windows - DirectX.
Consoles, Linux - As accordingly.
BTW, this article says Apple may “destroy” OpenGL: http://www.developer-tech.com/news/2014/sep/22/metal-apple-may-destroy-opengl-and-boost-directx-12/ …Which IMO is a bit premature since Android will carry the OpenGL torch for quite some time and over the next several years Android will attempt to transition from OpenGL to Vulkan.
The initial release of Mac Metal support in UE4 will definitely offer Shader Model 4 and the plan is to add Shader Model 5 support eventually. We are still working with Apple to implement Shader Model 5 support for Mac Metal so I can’t say when it will be ready for release.
OpenGL will eventually be deprecated by Apple, but that won’t be for quite some time so OpenGL will remain a target API for Mac UE4. Not least because it will provide backward compatibility with Mac users running Yosemite (10.10) and those using AMD 6xx0 series GPUs that don’t support Metal.
Wow that sounds like Apple didn’t really thought about this when developing Mac Metal and SM5 will not be supported until something like Metal for Mac 2.0 is released…
Thanks for the info. If I am not mistaken though when you say Mac Metal “Shader Model 4”… you mean the equivalent Mac Metal implementation of the DirectX Shader Model 4?
As I understand Apple does things the Apple way, and Metal is a totally new API. So whatever equivalent of DirectX will take time for Apple to implement.
As per @marksatt though, he’s right, Apple and Android will still have to offer OpenGL for some time… And OpenGL has always not been as cutting-edge as DirectX IMO.
Metal is a new API and it is different to Direct3D, so inevitably there are some things that Mac Metal in UE4 won’t support initially. That applies to both SM4 and SM5.
We are working with Apple to get Shader Model 5 implemented with Mac Metal in UE4 just as soon as we can. It isn’t tied to a future OS X update, though some specific rendering features may be as noted above.