assiduous
|
|
« on: December 11, 2018, 08:29:21 PM » |
|
Hello! I would like to introduce the project I've been working on for a while and that you may find useful. It is a modern low-level graphics library called Diligent Engine designed to take advantage of next-gen graphics APIs (Diect3D12, Vulkan, Metal). The engine supports Windows, Linux, Android, Mac and iOS platforms. It has Direct3D11, Direct3D12, Vulkan, and OpenGL/GLES backends. For all supported platforms and backends, shaders can be written in HLSL. Full source code is available on GitHub: https://github.com/DiligentGraphics/DiligentEngineAt the moment it is a purely low-level graphics API, but higher-level features such as PBR renderer are in plans.
|
|
|
Logged
|
|
|
|
goob256
|
|
« Reply #1 on: December 12, 2018, 09:06:43 AM » |
|
Fellow low level gfx lib creator here. This looks pretty decent. Nice to see support for modern apis (d3d12, vulkan, metal.) Just chiming in to say "nice job".
|
|
|
Logged
|
|
|
|
ThemsAllTook
|
|
« Reply #2 on: December 12, 2018, 09:28:05 AM » |
|
Same here, looks pretty nice!
|
|
|
Logged
|
|
|
|
assiduous
|
|
« Reply #3 on: December 12, 2018, 11:24:20 PM » |
|
@goobliata, @ThemsAllTook Thanks!
|
|
|
Logged
|
|
|
|
assiduous
|
|
« Reply #4 on: January 06, 2019, 07:53:20 PM » |
|
Diligent Engine now supports Vulkan on MacOS (enabled with MoltenVK) Here is the full list of supported platforms and APIs: Platform | Supported APIs | Windows Desktop | Direct3D11, Direct3D12, OpenGL4.2+, Vulkan | Universal Windows | Direct3D11, Direct3D12 | Linux | OpenGL4.2+, Vulkan | Android | OpenGLES3.0+ | MacOS | OpenGL4.1, Vulkan | iOS | OpenGLES3.0 |
Check out the latest release on GitHub: https://github.com/DiligentGraphics/DiligentEngine
|
|
|
Logged
|
|
|
|
kason.xiv
|
|
« Reply #5 on: February 05, 2019, 06:21:57 PM » |
|
Is this done mostly by your hand? Do you have a slack or discord where development plans are discussed?
|
|
|
Logged
|
|
|
|
assiduous
|
|
« Reply #6 on: February 05, 2019, 09:42:49 PM » |
|
Is this done mostly by your hand?
It is. Do you have a slack or discord where development plans are discussed?
There is gitter chat ( https://gitter.im/diligent-engine), though it is not super crowded for the time being. People mostly ask questions via GitHub issues.
|
|
|
Logged
|
|
|
|
|
assiduous
|
|
« Reply #8 on: March 08, 2019, 10:03:31 AM » |
|
New release v2.4.b is out that features improved shader resource reflection, improved pipeline resource layout definition, better OpenGLES3.0 support, DiligentFX module, new Render Target tutorial and more.
|
|
|
Logged
|
|
|
|
|
|
InfiniteStateMachine
|
|
« Reply #11 on: May 07, 2019, 05:05:51 PM » |
|
How did you like working with the format. Can FBX die soon?
|
|
|
Logged
|
|
|
|
assiduous
|
|
« Reply #12 on: May 07, 2019, 10:53:56 PM » |
|
GLTF is designed to be a run-time format, unlike FBX, so I don't think the comparison is really fair. The format has a number of good features: state of the art PBR material description, animation, etc. It has limitations too, so it may not work for all use cases. However I think it is a very reasonable open standard format that should be useful for a wide range of applications.
|
|
|
Logged
|
|
|
|
fluffrabbit
Guest
|
|
« Reply #13 on: May 07, 2019, 11:50:31 PM » |
|
PBR is pretty well documented and straightforward if your renderer supports multiple texture slots, cubemaps, and a way to pre-process textures with framebuffers. glTF is simple to load, though it has a lot of nuanced features that have tripped me up such as animation.
On the other hand, that epipolar light scattering makes me question everything I know about computers. Wow. I don't even know what I'm looking at but it looks amazing. Atmospheric haze scattering the sunlight miles into the distance. This is really far ahead.
|
|
|
Logged
|
|
|
|
assiduous
|
|
« Reply #14 on: May 20, 2019, 08:15:18 AM » |
|
The viewer now also supports Android! It technically runs on iOS too, but due to some issues (could be MoltenVK), the image looks corrupted.
|
|
|
Logged
|
|
|
|
InfiniteStateMachine
|
|
« Reply #15 on: May 22, 2019, 06:08:14 PM » |
|
GLTF is designed to be a run-time format, unlike FBX, so I don't think the comparison is really fair. The format has a number of good features: state of the art PBR material description, animation, etc. It has limitations too, so it may not work for all use cases. However I think it is a very reasonable open standard format that should be useful for a wide range of applications.
What are the limitations compared to FBX? Can it not be compared somewhat? I ask because unreal engine is in the process of supporting gltf and it seems to fit the standard pipeline flown as FBX. The fact it's runtime ready seems even better since every studio I've ever worked at was hit with pipeline/loading issues due to how FBX is structured.
|
|
|
Logged
|
|
|
|
fluffrabbit
Guest
|
|
« Reply #16 on: May 22, 2019, 09:54:45 PM » |
|
glTF gives you an option of either arrays of structs or structs of arrays, plus several exporters don't include tangents, so in practice you can't just drop the glTF blob into graphics memory, there is still a loading step. (Unless your workflow is extremely synchronized with exporters and importers using the exact same glTF configuration.)
|
|
|
Logged
|
|
|
|
assiduous
|
|
« Reply #17 on: July 23, 2019, 11:40:31 PM » |
|
Diligent Engine now implements some shadow rendering BKMs: - Cascaded shadow maps with cascade stabilization - PCF - Variance shadow maps - Two and four-component exponential variance shadow maps - Optimized fixed-size or world-sized filter kernels - Best cascade search based on projection into light space - Filtering across cascades - Various artifact removal techniques The techniques are implemented as a standalone shadow map manager and few shader functions that can be easily integrated into an application. Check it out on GitHub: https://github.com/DiligentGraphics/DiligentEngine#high-level-rendering-components-1https://github.com/DiligentGraphics/DiligentSamples/tree/master/Samples/ShadowsI am planning to add exponential shadow maps and moment shadow maps later. Are there any state-of-the-art shadowing techniques that I am missing?
|
|
|
Logged
|
|
|
|
fluffrabbit
Guest
|
|
« Reply #18 on: July 28, 2019, 10:23:14 AM » |
|
That's amazing, and I don't have a clue about buffered shadow techniques as I have yet to implement them in my own code. No seams? That's great!
However, I'm not fond of the project organization. You use a lot of little files as well as submodules, which is hardly keeping with the philosophy of compactness and simplicity. Aside from graphical quality, how does Dilligent compare against Ogre3D and Panda3D?
|
|
|
Logged
|
|
|
|
assiduous
|
|
« Reply #19 on: August 05, 2019, 09:12:23 PM » |
|
Speaking about code organization, there are adherents of two principal schools: the first one puts everything into a giant file so that everything is in one place. I've seen files with 50,000+ lines of code. This is definitely convenient from integration point of view, however supporting or working with such files is a nightmare. This file is essentially a black box of code.
The second school breaks everything into small components. As you can tell, I am from the second school. I do believe that modular organization tells a lot about the project structure, while copying a folder is just little bit more extra work than copying a single file. In Diligent Engine, different modules can be enabled/disabled as necessary: all backends, samples, tutorials, demo project can be turned on/off as needed. Projects are organized into hierarchy where more complex are built on top of more basic ones. The folder structure is easy and natural to navigate even though it contains many files.
Speaking about Ogre3D, Diligent Engine is more low-level library. It does not have an editor, but provides low-level functionality and a set of basic building blocks (PBR shaders, shadows, post-processing, etc.)
|
|
|
Logged
|
|
|
|
|