Khronos Releases OpenGL ES 3.1 Specification

What he means is that lack of API support for certain features fundamental to Unreal Engine 4 (such as geometry shaders and tessellation) creates both hurdles and compromises in bringing UE4 PC/console games to the ultra mobile space (even without accounting for any performance profiling that would be needed for ultra mobile hardware).
 
OpenGL ES 3.1 is clearly a great step forward for the ultra mobile space, but it may be challenging to quickly and easily bring console games to the ultra mobile space without full OpenGL 4.x support (including support for tessellation and geometry shaders).
Geometry shaders sound like a much better idea than they actually are. It's very hard to find an use case for them, because there's almost always an alternative that is faster. I have measured a 2.8x performance drop (for primitive/triangle bound cases) by adding a pass-through geometry shader (that doesn't do anything) on a high end PC GPU. Unless you intend to use geometry shaders for low polygon meshes, this rules out most use cases regarding to mesh rendering.

Even the "best case" scenarios such as particle rendering are actually faster when you instead run a compute shader + vertex shader combination (or just the vertex shader using modulo of vertex id to expand the quads). Exotic use cases (I have encountered) such as DOF (bokeh shape quads) rendering using geometry shaders are also (much) slower using a geometry shader than a compute shader.
They claim " > 50x Triangle Savings vs Brute Force ES2.0"
Marketing departments obviously like corner cases that provide big numbers. Reality is obviously different. I don't think many next gen games use tessellation yet, so the lack of tessellation doesn't affect porting to mobile devices much right now. In the future games tessellation might be used more, and that's when you might want to have it on mobiles as well (assuming the performance is good enough).
 
Marketing departments obviously like corner cases that provide big numbers. Reality is obviously different. I don't think many next gen games use tessellation yet, so the lack of tessellation doesn't affect porting to mobile devices much right now. In the future games tessellation might be used more, and that's when you might want to have it on mobiles as well (assuming the performance is good enough).

One of the biggest issues with Dx11 style tessellation is that LOD is not continuously variable across a patch, i.e any LOD difference between the edges of a patch is resolved at its edges. This means that in order to get better LOD management surfaces need to be pre-broken down into smaller patches, which means that it's entirely probable that in real use cases Dx11 style tessellation actually increases the amount of input geometry instead of reducing it.
 
One of the biggest issues with Dx11 style tessellation is that LOD is not continuously variable across a patch, i.e any LOD difference between the edges of a patch is resolved at its edges. This means that in order to get better LOD management surfaces need to be pre-broken down into smaller patches, which means that it's entirely probable that in real use cases Dx11 style tessellation actually increases the amount of input geometry instead of reducing it.
Agreed completely. That's one of the big design problems in DX11-style tessellation. Unfortunately that's quite hard to change without completely new design and new hardware.
 
I don't think many next gen games use tessellation yet, so the lack of tessellation doesn't affect porting to mobile devices much right now. In the future games tessellation might be used more, and that's when you might want to have it on mobiles as well (assuming the performance is good enough).

Yes, but that transition is happening as we speak. Now that AAA game developers will be targeting next gen consoles rather than ancient prior gen consoles, features such as tessellation will be used in more and more new games (with variable degrees of tessellated detail of course). Tessellation is a key feature in the latest UnrealEngine, CryEngine, etc. And lack of full API parity with PC's and next gen consoles means that a separate mobile renderer would be needed for the ultra mobile space (on top of any additional performance profiling needed to optimize performance on said hardware).
 
Agreed completely. That's one of the big design problems in DX11-style tessellation. Unfortunately that's quite hard to change without completely new design and new hardware.

In theory it's just a change to the fixed function tessellato the rest of the pipeline could stay the same, although no one, including NV, has done this of their own backs yet.

The other thing that that I see as red flag against tessellation is that mobile space still doesn't really have compute capacity to spare running tesellation shaders i.e. tessellation will likely be to the detriment of higher quality pixel lighting.
 
Yes, but that transition is happening as we speak. Now that AAA game developers will be targeting next gen consoles rather than ancient prior gen consoles, features such as tessellation will be used in more and more new games (with variable degrees of tessellated detail of course). Tessellation is a key feature in the latest UnrealEngine, CryEngine, etc. And lack of full API parity with PC's and next gen consoles means that a separate mobile renderer would be needed for the ultra mobile space (on top of any additional performance profiling needed to optimize performance on said hardware).
https://docs.unrealengine.com/latest/INT/Platforms/iOS/DeviceCompatibility/index.html

Aren't engines supposed to abstract some of the need to worry about the low level rendering code? UE4 continues to support OpenGL ES 2.0, I'm not sure if it supports OpenGL ES 3.0 at all yet, and even runs on an iPhone 4, although only with a low dynamic range profile at non-retina resolution. It may be more work for engine programmers to support various OpenGL ES versions rather than focusing just on the latest DirectX and OpenGL standards, but it should be less of an impact on game designers, which is why even big game studios are standardizing on a few popular game engines rather than building their own. Yes it won't be as simple as setting some checkboxes and additional work and testing will be required to get things looking right on mobile, but presumably games would need to be optimized for mobile anyways with changes to level design, graphical assets, input, etc. even if DX11/OGL4 were available since there's more to mobile than just being a slower console.

https://docs.unrealengine.com/latest/INT/Programming/Rendering/index.html

UE4 also has SM4 DX10 and OpenGL 3 rendering paths so while tessellation and compute shaders are integral parts of UE4, they aren't required, and that wasn't just an exception made for mobile.
 
https://docs.unrealengine.com/latest/INT/Platforms/iOS/DeviceCompatibility/index.html

Aren't engines supposed to abstract some of the need to worry about the low level rendering code? UE4 continues to support OpenGL ES 2.0, I'm not sure if it supports OpenGL ES 3.0 at all yet, and even runs on an iPhone 4, although only with a low dynamic range profile at non-retina resolution. It may be more work for engine programmers to support various OpenGL ES versions rather than focusing just on the latest DirectX and OpenGL standards, but it should be less of an impact on game designers, which is why even big game studios are standardizing on a few popular game engines rather than building their own. Yes it won't be as simple as setting some checkboxes and additional work and testing will be required to get things looking right on mobile, but presumably games would need to be optimized for mobile anyways with changes to level design, graphical assets, input, etc. even if DX11/OGL4 were available since there's more to mobile than just being a slower console.

https://docs.unrealengine.com/latest/INT/Programming/Rendering/index.html

UE4 also has SM4 DX10 and OpenGL 3 rendering paths so while tessellation and compute shaders are integral parts of UE4, they aren't required, and that wasn't just an exception made for mobile.

http://gamemob.com/articles/epic-games-shares-a-demo-of-unreal-engine-4-on-a-nexus-5-its-unreal/
 
Back
Top