Topic: bgfx - Cross-platform rendering library

Bgfx is a Cross-platform rendering library. The link is here -> https://github.com/bkaradzic/bgfx
Bgfx supports:
    Direct3D 9
    Direct3D 11
    OpenGL 2.1
    OpenGL 3.1
    OpenGL ES 2
    OpenGL ES 3
Platforms:

    Android
    asm.js/Emscripten
    iOS
    Linux
    Native Client
    OSX
    Windows

What do you think about this renderer? What about replacing the Maratis render with an external one? The benefits means that no more maintaining the render. Support for HDR, Lod, shadowvolumes, Image based lighting, MRT rendering and deferred shading. Your opinions?

Re: bgfx - Cross-platform rendering library

From this forum posts http://www.godotengine.org/forum/viewto … p;start=10 the author of BGFX says a lot of good things about it:

Major differences between other rendering engines is that bgfx is not trying to be engine, but rather just rendering library (bring your own engine). It doesn't do lighting, it doesn't do shadows, object culling, loading assets, or any of higher level concepts.

it has API thread, and rendering thread, or all can be single-threaded on platforms that don't support it. And it's all implemented inside library so running multi-threaded or single-threaded is completely invisible to user of library.

Actually that's the whole point of bgfx. bgfx is made to be portable without sacrificing performance. For example, if you made game with bgfx for mobile (using GLES2 backend) and used ETC2 textures for you content, and you want to port your game to desktop and use DX11, you don't need to change anything about those textures, because bgfx internally handles them properly. So even DX11 doesn't support ETC2 textures, it will display them correctly. That allows you to do port as quickly as possible, and then deal with content if that's necessary. It works the same in other direction too. For example you compress something with DXT5 and mobile GPU doesn't support it, texture will be uncompressed and used that way.

bgfx uses single shader source which is written in GLSL style syntax, and then it gets translated to ESSL, HLSL, GLSL, etc

bgfx philosophy is to be graphics API agnostic. So if someone wants DX9 for any reason, like shipping games on XP in 2015, they can do that.

Re: bgfx - Cross-platform rendering library

Bgfx is a very good library,
I actually exchanged some mails with the author one year ago, it's something worth considering.

The port may or may not be easy to do, we can probably create a MRenderingContext Bgfx port, but right now we don't have the need. The question will arise if we want a directx port, here it will be a good idea to implement it.

Re: bgfx - Cross-platform rendering library

Its good to know, but i thought, that the "Image based lighting, MRT rendering and deferred shading" is a big plus, for today standards.

Re: bgfx - Cross-platform rendering library

Its good to know, but i thought, that the "Image based lighting, MRT rendering and deferred shading" is a big plus, for today standards.

These are not part of the library, you can do it with bgfx and there is examples to show how to do it, but you still need to implement it like with opengl or directx.

Re: bgfx - Cross-platform rendering library

I see, thx for the info.