DirectX11

If you are a new Irrlicht Engine user, and have a newbie-question, this is the forum for you. You may also post general programming questions here.
Post Reply
realmsinthemists
Posts: 28
Joined: Mon Mar 27, 2017 7:29 am

DirectX11

Post by realmsinthemists »

Searching the forum I see support for DX10 (finally, as the title said) and also notifications of 11 but I am missing how to create those. Nothing at the tutorials and irr::video::E_DRIVER_TYPE hasn't got anything beyond EDT_DIRECT3D9.

Oh I am so confused, who'd do I speak to to get my brain straight?
For my end result I am working on:
- Volume Voxel System
- Simple light weight physics engine
CuteAlien
Admin
Posts: 9634
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: DirectX11

Post by CuteAlien »

There was a development branch for DX10 which you can find in svn under branches/shader-pipeline. I can't tell much about what it does and how it works - unfortunately the programmer who created it is no longer active and I was never involved in that in any way. Nadro who took this over for a while decided to create a new approach for shaders instead. So basically... right now this development branch is dead due to having 0 maintainers left :-(
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
realmsinthemists
Posts: 28
Joined: Mon Mar 27, 2017 7:29 am

Re: DirectX11

Post by realmsinthemists »

At least there is dx9 support. But still a bummer.
For my end result I am working on:
- Volume Voxel System
- Simple light weight physics engine
CuteAlien
Admin
Posts: 9634
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: DirectX11

Post by CuteAlien »

Sorry, we'll get there again some day.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
realmsinthemists
Posts: 28
Joined: Mon Mar 27, 2017 7:29 am

Re: DirectX11

Post by realmsinthemists »

The fun thing about time is, keep standing still and time will come along cheerfully anyway. So no apologies are needed.
For my end result I am working on:
- Volume Voxel System
- Simple light weight physics engine
Mel
Competition winner
Posts: 2292
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: DirectX11

Post by Mel »

Sadly, currently it would be more productive to create a vulkan driver than a DX11 one :/
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
CuteAlien
Admin
Posts: 9634
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: DirectX11

Post by CuteAlien »

@Mel: I suspect that might have played a role in Nadro's decision to rewrite the shader branch.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
realmsinthemists
Posts: 28
Joined: Mon Mar 27, 2017 7:29 am

Re: DirectX11

Post by realmsinthemists »

Although I have said I've used some engines for the past time, truth is, that was two years back. Now re-entering digits in games again, I have noticed things have changed more over time then apparently can be seen (from my perspective).
Having read a wiki-page about Vulcan, it seems we are going back to the 2D graphics which is the other way around compared to DX. Well, it's probable not so.

Anyway the word 'neat', as the word 'cool', 'fat', 'awesome' and 'can't wait I've mastered it' are spelled as:

----------------------------------------
[source] Intended advantages of Vulkan over previous-generation APIs include:
  • Vulkan API is well suited for high-end graphics cards as well as for graphics solutions present on mobile devices (OpenGL has a specific subset for mobile devices called OpenGL ES; it's still an alternative API in Vulkan supporting devices).
  • In contrast to Direct3D 12, Vulkan is available on multiple modern operating systems; like OpenGL, the Vulkan API is not locked to a single OS or device form factor. As of release, Vulkan runs on Windows 7, Windows 8, Windows 10, Tizen, Linux, and Android (third party support for iOS and macOS is also available)
  • Reduced driver overhead, reducing CPU workloads.
  • Reduced load on CPUs through the use of batching, leaving the CPU free to do more computation or rendering than otherwise.
  • Better scaling on multi-core CPUs. Direct3D 11 and OpenGL 4 were initially designed for use with single-core CPUs and only received augmentation to be executed on multi-cores. Even when application developers use the augmentations, the API regularly does not scale well on multi-cores.
  • OpenGL uses the high-level language GLSL for writing shaders which forces each OpenGL driver to implement its own compiler for GLSL that executes at application runtime to translate the program's shaders into the GPU's machine code. Vulkan drivers are supposed to ingest instead shaders already translated into an intermediate binary format called SPIR-V (Standard Portable Intermediate Representation), analogous to the binary format that HLSL shaders are compiled into in Direct3D. By allowing shader pre-compilation, application initialization speed is improved and a larger variety of shaders can be used per scene. A Vulkan driver only needs to do GPU specific optimization and code generation, resulting in easier driver maintenance, and eventually smaller driver packages (currently GPU vendors still have to include OpenGL/CL).
  • Unified management of compute kernels and graphical shaders, eliminating the need to use a separate compute API in conjunction with a graphics API.

----------------------------------------

rewritten: On the other hand, if like me you're not going for the best visuals imaginary is possible, going for DX9 or OpenGL should be sufficient. And if you do it right and wrap your code around the graphics, physics, sound and perhaps AI library you can concentrate on the storyline while changing any library is as easy as it can be. Just fiddle your own code if necessary.
Last edited by realmsinthemists on Mon Apr 24, 2017 8:05 pm, edited 2 times in total.
For my end result I am working on:
- Volume Voxel System
- Simple light weight physics engine
Mel
Competition winner
Posts: 2292
Joined: Wed May 07, 2008 11:40 am
Location: Granada, Spain

Re: DirectX11

Post by Mel »

I am afraid that the only DirectX version to one up OpenGL is 11 better than 9. To add to it, DX9C support in Irr is incomplete and GL has much more support in comparison. But I agree, for most applications, DX9/GL is currently enough. Vulkan is unstable at the moment, and DX12 isn't in its best moment, with a lot of the userbase still (metal is a world apart, as most of Apple's tech and products XD) relying on DX11 (or even DX9C, such as for instance, the latest game released by Platinum Games, Bayonetta; who does DX9C in 2017??)

In any case, Irrlicht, as it is currently, i think isn't suited for DX12 or Vulkan. It would need to rewrite the materials system, as materials become objects on DX12 and VK and add support for command batching and execution. the good part is that it would mainly affect the video driver, being posible to leave the the rest of the engine logic (loaders, scene management, even the GUI) as it is, except for the interaction with the video driver, which should, definitely, change.
"There is nothing truly useless, it always serves as a bad example". Arthur A. Schmitt
Post Reply