NOTE: There is currently an issue with git lfs, which was enabled on this repo, I need to disable it and make sure all files are still availabe,
in the meanwhile some meshes and or textures might not pull correctly
This is my attempt to a DirectX 12/Vulkan engine, this is my third iteration of a so called engine.
My first one was a poor Opengl viewport, then a more serious approach to a dx11 engine, but mostly geared toward getting stuff on screen quickly.
Finally this is my third attempt trying to use modern API and a more sane code.
It is my pleasure to introduce you to Sir Engine, the 3rd of his name.
This should take a while, some beefy dependnecies in there. Dependencies came pre-built, but especially if in debug you might need to rebuild them. I highly recomand you do it anyway.
create a folder build inside vendors, and from inside there run:
cmake ../ && cmake --build . --config Debug
I have omitted the generator to be Visual Studio 2019 because that is my default and what you MUST use for all build operations.
If you wish to build the engine in debug you will need to run the same command but change the config from Debug to Release.
Everything will be built and put where the engine expects, both headers and libraries for linking.
Engine
Go in the root of the project (inside SirEngineThe3rd) create a build folder, go inside that and build the engine with the following command
IMPORTANT
Several thing happens during the cmake generation and build. First of all, building Vulkan is mandatory, I did not finish yet the work to have it competely optional. I hope to get around to do it soon.
Few dlls will be copied (or tried to) during creation, specifically the dxil library from the windows SDK. Hopefully all should work, otherwise open an issue with the cmake's log.
The vulkan SDK needs to be in the path for cmake to find it, the installer should take care of that, but you might need to reboot.
Build the resources
To know more how the resource compiler works refer to the engine structure document. The resource compiler should have been built during the build of the engine.
This tool is in charge of compiling some resources, you won't need to do that but if interested in how to poke around have a look at the execute.json file.
I will be providing a prebuilt mesh (nothing fancy a sphere) such that you should be able to skip this step.
Run the demo scene
Altough I said I don't expect you to use the engine, being able to at least run a demo scene might help to use the debugger and follow the code flow.
The demo scene is really simple with a PBR sphere and the grass shader.
To run it you can download the resources from here: https://github.com/giordi91/SirEngineThe3rd/releases/tag/resources-data .
IMPORTANT: It is critical that you download the data from the link above, and not simply copy the data folder from inside the root of the project. The data folder inside the project contains the un-processed raw data, which the engine does not load. The folder in the archive instead contains the necessary data that has be pre-compiled to engine ready data.
I used a temporary release to host the zip. Download it, unzip it and make sure to put the data folder inside build/bin. You should see something like this:
Once that is done you can double click the Editor.exe file from inside either Debug or Release.
Development releases
Here a I will keep a chronological list of the progress:
请发表评论