-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
044c9ff
commit c07951e
Showing
92 changed files
with
919 additions
and
624 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# Documentation | ||
|
||
## Math | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
# Tasks | ||
|
||
|
||
## To-Do | ||
|
||
* Finish vertex pulling <- | ||
* Shader reflection | ||
* Reverse Z | ||
* Provide material indices in path tracing | ||
* Output albedo/normals with RTX mode | ||
* Add indirect draw for forward pipeline | ||
* Add console commands | ||
* UI input func | ||
* Add GPU frustum culling | ||
* Finish shader hot reload | ||
* Invest in robustness | ||
* Add, delete gltf objects | ||
* Resize window / fullscreen / vsync | ||
* Output all stats - textures, vertex, index buffer | ||
* Improve camera | ||
* Remove wil::com_ptr and shared ptr as much as possible | ||
* Dispatch rays SRV issue | ||
* Invest into better abstraction | ||
* Add GPU occlusion culling - HZB | ||
* Finish path tracing | ||
* Add VBuffer and GBuffer | ||
* Add more lights - spot and point | ||
* Add gizmos and scene description to actually manipulate it | ||
* Add loading saving of the scene | ||
|
||
## Visual fancy stuff | ||
|
||
* ACES | ||
* Bloom | ||
* SSAO | ||
* SSR | ||
* TAA | ||
* Motion Blur | ||
* Depth Of Field | ||
* DDGI | ||
* Area lights | ||
* OIT | ||
* Magnify pixels (steal from AMD) | ||
* GPU Particles | ||
|
||
## Hardware fancy stuff | ||
|
||
* Sampler feedback | ||
* Work Graph | ||
* Direct SR | ||
* | ||
|
||
|
||
|
||
## Known issues: | ||
|
||
* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#pragma once | ||
|
||
namespace ysn | ||
{ | ||
using RenderObjectId = std::uint32_t; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,16 @@ | ||
#include "RenderScene.hpp" | ||
|
||
namespace ysn | ||
{ | ||
RenderObjectId RenderScene::AddObject() | ||
{ | ||
|
||
return 0; | ||
} | ||
|
||
|
||
void RenderScene::DeleteObject(RenderObjectId object) | ||
{ | ||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,56 @@ | ||
#pragma once | ||
|
||
#include <DirectXMath.h> | ||
|
||
#include <vector> | ||
#include <memory> | ||
|
||
#include <Graphics/Material.hpp> | ||
#include <Graphics/Mesh.hpp> | ||
#include <Graphics/RenderObjectId.hpp> | ||
#include <Yasno/Lights.hpp> | ||
#include <Yasno/CameraController.hpp> | ||
|
||
class RenderSceneNode | ||
namespace ysn | ||
{ | ||
struct NodeTransformation | ||
{ | ||
DirectX::XMFLOAT4X4 model; | ||
}; | ||
|
||
}; | ||
// Model desciption info | ||
struct Model | ||
{ | ||
std::string name = "Unnamed Model"; | ||
bool should_cast_shadow = false; | ||
}; | ||
|
||
class RenderScene | ||
{ | ||
public: | ||
std::vector<RenderSceneNode> nodes; | ||
struct RenderScene | ||
{ | ||
std::shared_ptr<Camera> camera; | ||
FpsCameraController camera_controler; | ||
|
||
DirectionalLight directional_light; | ||
EnvironmentLight environment_light; | ||
|
||
std::vector<Model> models; | ||
std::vector<NodeTransformation> transformations; | ||
std::vector<Mesh> meshes; | ||
std::vector<Material> materials; | ||
|
||
RenderObjectId AddObject(); | ||
|
||
// Switches pointers between current object and last one, decrement num_objects and deletes it later. | ||
void DeleteObject(RenderObjectId object); | ||
|
||
uint32_t GetModelCount() const | ||
{ | ||
return num_objects; | ||
} | ||
|
||
private: | ||
// Keep track of live objects to render | ||
uint32_t num_objects = 0; | ||
}; | ||
} | ||
|
||
bool SaveToDisk(); | ||
bool LoadFromDisk(); | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#include "RtxMaterial.hpp" | ||
|
||
namespace ysn | ||
{ | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#pragma once | ||
|
||
namespace ysn | ||
{ | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
#include "SurfaceMaterial.hpp" | ||
|
||
namespace ysn | ||
{ | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#pragma once | ||
|
||
#include <DirectXMath.h> | ||
|
||
namespace ysn | ||
{ | ||
#define ALBEDO_ENABLED_BIT 0 | ||
#define METALLIC_ROUGHNESS_ENABLED_BIT 1 | ||
#define NORMAL_ENABLED_BIT 2 | ||
#define OCCLUSION_ENABLED_BIT 3 | ||
#define EMISSIVE_ENABLED_BIT 4 | ||
|
||
|
||
// Default PBR material | ||
struct SurfaceShaderParameters | ||
{ | ||
DirectX::XMFLOAT4 base_color_factor; | ||
float metallic_factor; | ||
float roughness_factor; | ||
|
||
// Encods which textures are active | ||
int32_t texture_enable_bitmask; | ||
|
||
int32_t albedo_texture_index; | ||
int32_t metallic_roughness_texture_index; | ||
int32_t normal_texture_index; | ||
int32_t occlusion_texture_index; | ||
int32_t emissive_texture_index; | ||
}; | ||
} |
Oops, something went wrong.