DX9 may be dropped in Ogre 2.0 Final 4

So, I’ve been working on a fork. There’s also another one. Both will eventually merge

The code is far from finished at the time of writing. But the direction where we’re heading to is already quite clear.

You can even glimpse a bit of what’s coming:

uniform sampler2DArray	texDiffuseMap;
uniform sampler2DArray	texNormalMap;
uniform sampler2DArray	texSpecularMap;
uniform samplerCubeArray	texEnvProbeMap;

Yeah, we’re going bindless in 2.0.

The HLMS is being developed (High Level Material System) will generate shader code for you based on a template. You can create your own templates or modify existing ones; though probably the less experienced users will just not change it as the default template we’ll be embedding uses Cook Torrance, reflection probes, energy conserving, and in linear space (Physically Based Shading, or PBS for short).

In other words the defaults will look really pretty.

But so far the biggest problem holding us back is DirectX 9. I’m strongly considering on dropping it. Ogre 2.0 is already targetting DX 10 hardware for DX9 (i.e. rely on good VTF support). GL 3.3 support is very decent by now, and it is supported in Windows XP; whereas you can choose between DX11 & GL 3+ in Windows Vista/7.

But DX9 doesn’t support texture arrays, which can cause a huge API bottleneck (not to mention more advanced features). Having to support 3 APIs is very time consuming. Specially when one of them largely differs from the other two.

Supporting ES 2.0 is not a big headache because it’s already constrained in many ways, so using non-array textures isn’t that big of a deal. The template shaders for ES 2.0 will also probably be much smaller.

So that’s why. DX9 will probably not make it to 2.0

Leave a comment

Your email address will not be published. Required fields are marked *

4 thoughts on “DX9 may be dropped in Ogre 2.0 Final

  • al2950

    Well this has been coming for a while, and I guess Ogre 2.0 is a sensible time to do it. However there might be a bit of resistance on the forums, so the Ogre team need a clear set of reasons and advantages why. I have not done any tests myself but would I be correct in saying general support for GL and therefore performance is improving for windows, and it would be an appropriate option for those who have old hardware and/or running XP. When I say appropriate I mean an attractive alternative to DX9, and not just saying “Well you can use GL on windows as well you know..”!?

  • Christopher

    I agree too, i don’t understand why many Ogre users want to keep the DX9 renderer, i never liked it, i always used DX10 and 11 or OpenGL, gives more features about when you write shaders, the team say will compete with AAA engines in the graphics departament, these commercial engines dropped DX9 in some time, the upcoming Ogre 2.x will be next-gen enough to attract newcomers no another 1.x update with some additional features, if they want DX9, stay with 1.x versions.

    I still waiting for OGRE 2.x since if write my game and tools using an 1.x version i need to rewrote it again.

    • Matias Post author

      As a former DX9 lover, I can tell you why.

      For a very long time GL has been inferior to DX9 (trouble getting GLSL working on all vendors, idiotic stuff like MRTs failing to work if the attachments mixed integer with floating point, unintuitive naming conventions like “varying”, etc).

      DX11 on the other hand, has been very WIP for a long time; and trivial stuff like UI rendering meant to roll your own shader because there is now FF.

      Now, this has changed. The last GSoC drastically improved DX11 renderer, the HLMS & RTSS make up for the lack of FF; and on GL side, the drivers have improved a lot; and modern GL3+ programming is a breeze to work with. Defining #version 330 makes our life much easier.