Hi there,
maybe this is a stupid question, but I’ve to ask it for a better understanding:
Right now (Unity 5.4) it is so, that a lot of graphic effects only works on Windows, because of DirectX. So if I want to build a game with high-quality-graphics I have to use Windows for development, because it’s the only way to see this graphic, because of DirectX (like the Adam-Demo).
So there’s no other way to build AAA-Games without Windows (because of DirectX). Right?
In the next release of Unity (5.6) it will support Apple Metal on Mac. Does this mean things like the Adam-Demo could realized on a Mac without DirectX? So could I develop AAA-Grafic-Games on a Mac and get the same results like on Windows with DirectX (and just use Windows in a virtual machine for stuff like XBOX & co)?
Or will Windows be the only option for “real” AAA-Game-Development (Graphics, Consoles, Motion-Capture, …)?
I did see “DirectX 11 only” on the Adam demo, but it didn’t say what effects are DX11 only (Eye adaption?). They did a lot of custom work on the demo, and you’ll probably be able to get the same/similar effect that works for OpenGL. I guess you could open the project and see what fails for OpenGL, then remove one at a time.
All of the effects in the Cinematic Effect library made by Unity, except one (+ a useful editor feature), works for both DirectX and OpenGL. This was under development when they worked on Adam, and most of the effects are now close to finished.
Exceptions: Home · Unity-Technologies/PostProcessing Wiki · GitHub
I’m pretty sure you can get what you need with OpenGL on a Mac, unless it’s something very specific. A while ago they did some adjustments to support OpenGL 4.1 on Mac, so you can use tesselation. You can’t use Compute Shaders yet though, if that’s what you want.
Metal do support Compute shaders… But I don’t know what they are using in the Adam Demo.
To me, OpenGL is going to slowly die over the years. The only very good thing about it is being supported by every gaming platforms: Android, IOS, Windows, OSX, web browser…
But there is always an alternative to it now:
Windows: DirectX / Vulkan
OSX: Metal
IOS: Metal
Android: Vulkan (android 7)
Web browser: WebGL
Vulkan seems to be a real threat to DirectX on Windows since it can use multi-threading for rendering. It annonce way more performances.
Every graphics API are very specifics, imagine an AAA game made without an engine like Unity.
If they want to support DirectX & Metal, they have to integrate both API in their game and their integration have to be both optimized in their own ways to achieve similar performances on both API on the same hardware.
Using Unity, it depend on how Unity optimized their API integration.
It’s much easier for them to optimize for DirectX because when you create your own Shader or Compute Shader in Unity, you write it in CGFX/HLSL which mean almost no conversion at all.
Ah yes, I didn’t see the part about Metal for some reason. Still beyond annoyed that Apple developed a proprietary standard, even though they’re members of the Khronos Group, but I digress …
Agreed. OpenGL will disappear eventually once Vulkan takes over.
MacOSX OpenGL driver limitations
As a new feature, the OS X Editor and Standalone now support the new OpenGL backend, which enables the use of OpenGL 3.x and 4.x features such as tessellation and geometry shaders.
However, as Apple restricts the OpenGL version on OS X desktop to 4.1 at most, it does not support all DirectX 11 features (such as Unordered Access Views or Compute Shaders). This means that all shaders that are configured to target Shader Level 5.0 (with #pragma target 50) will fail to load on OS X.
Does this mean that Metal will supports Shader Level 5 and all the features which are possible with DX in Unity 5.6?
In 5.5, the only API that support Compute Shaders is DirectX. That’s probably why Adam is DX11 only. (Well OpenGL 4.3 support it too, I don’t really know nor check why not OpenGL on Win or Linux).
Ok, so would you say there’s no reason to “have to use Windows” for AAA-Quality-Games with high-end-graphic like the Adam-Demo if Unity 5.6 releases with Metal on Mac?
And the only reason to use Windows is VR (and XBOX, but this works in a VM too)
I would say DirectX is currently the most optimized because of his age.
Metal is still young and I can’t predict what an export from Unity to OSX with Metal api will look like.
But I guess, the final goal is to do what you just said. Having AAA quality games on OSX and Windows.
I’ve not seen any demo on Metal for desktop. Anything I can find are about Metal on IOS.
So… wait & see…
If Unity is indeed capable of exporting a AAA quality project to DirectX & Metal with similar quality & performance, It will certainly be a game changer for gaming on OSX.
If you find a great demo of Metal API on Desktop, share it !