From 8b91ec2885004434f817e98e8a554245b54edb93 Mon Sep 17 00:00:00 2001
From: Tobias Frisch <tfrisch@uni-koblenz.de>
Date: Fri, 21 Oct 2022 17:35:34 +0200
Subject: [PATCH] Add demo descriptions via README files

Signed-off-by: Tobias Frisch <tfrisch@uni-koblenz.de>
---
 demos/CubeMapping/README.md    | 13 +++++++++++++
 demos/InstancingDemo/README.md | 10 ++++++++++
 demos/NormalMapping/README.md  | 13 +++++++++++++
 demos/SSAO/README.md           | 14 ++++++++++++++
 screenshots/CubeMapping.png    |  3 +++
 screenshots/InstancingDemo.png |  3 +++
 screenshots/NormalMapping.png  |  3 +++
 screenshots/SSAO.png           |  3 +++
 8 files changed, 62 insertions(+)
 create mode 100644 demos/CubeMapping/README.md
 create mode 100644 demos/InstancingDemo/README.md
 create mode 100644 demos/NormalMapping/README.md
 create mode 100644 demos/SSAO/README.md
 create mode 100644 screenshots/CubeMapping.png
 create mode 100644 screenshots/InstancingDemo.png
 create mode 100644 screenshots/NormalMapping.png
 create mode 100644 screenshots/SSAO.png

diff --git a/demos/CubeMapping/README.md b/demos/CubeMapping/README.md
new file mode 100644
index 0000000..fff34fc
--- /dev/null
+++ b/demos/CubeMapping/README.md
@@ -0,0 +1,13 @@
+# CubeMapping
+A demo project to show how to implement cube maps with the VkCV framework
+
+![Screenshot of CubeMapping](../../screenshots/CubeMapping.png)
+
+## Details
+
+Cube maps can be used to create the illusion of a big environment, render a highly detailed sky 
+around the camera or to create very efficient reflections on smooth surfaces.
+
+The cube map texture will contain six different images which are stored on different layers of the
+image resource in Vulkan. The shaders can later simply access the pixel data via a 3D directional
+vector.
\ No newline at end of file
diff --git a/demos/InstancingDemo/README.md b/demos/InstancingDemo/README.md
new file mode 100644
index 0000000..304a366
--- /dev/null
+++ b/demos/InstancingDemo/README.md
@@ -0,0 +1,10 @@
+# InstancingDemo
+A demo project to show how to render meshes using instancing with the VkCV framework
+
+![Screenshot of InstancingDemo](../../screenshots/InstancingDemo.png)
+
+## Details
+
+Recording many draw calls can be expensive for your GPU because each draw call has to manage a lot
+of data to work properly. But in cases you want to render the same vertex data multiple times with
+only slight variations, you can use instancing to save up resource cost.
\ No newline at end of file
diff --git a/demos/NormalMapping/README.md b/demos/NormalMapping/README.md
new file mode 100644
index 0000000..7069282
--- /dev/null
+++ b/demos/NormalMapping/README.md
@@ -0,0 +1,13 @@
+# NormalMapping
+A demo project to show how to use normal maps with the VkCV framework
+
+![Screenshot of NormalMapping](../../screenshots/NormalMapping.png)
+
+## Details
+
+Ideally we want to render highly detailed meshes with a GPU. But that can be very expensive in terms
+of processing power. It is much more efficient to load such details like normal vectors from a
+texture instead of using only interpolation between vertices to calculate them.
+
+So we get a lot of visual details without many vertices actually processed. It is a great tradeoff 
+between processing power and memory usage.
\ No newline at end of file
diff --git a/demos/SSAO/README.md b/demos/SSAO/README.md
new file mode 100644
index 0000000..a05e4f9
--- /dev/null
+++ b/demos/SSAO/README.md
@@ -0,0 +1,14 @@
+# SSAO
+A demo project to show how to use screen-space ambient occlusion with the VkCV framework
+
+![Screenshot of SSAO](../../screenshots/SSAO.png)
+
+## Details
+
+Using rasterization for rendering has one huge drawback. We usually don't have proper indirect 
+lighting. That also means that we don't get any ambient occlusion or indirect shadows for the 
+rendered scene.
+
+This project shows off a technique which utilizes deferred shading to calculate the amount of 
+occlusion by other geometry for each pixel. The technique will only use information from the 
+screen-space. So keep in mind it is limited in accuracy.
\ No newline at end of file
diff --git a/screenshots/CubeMapping.png b/screenshots/CubeMapping.png
new file mode 100644
index 0000000..3013478
--- /dev/null
+++ b/screenshots/CubeMapping.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a68b5ce3ff65ee4d1ef24885a95bbe359bc33e944db0ab99219bf4e174b1c750
+size 1288458
diff --git a/screenshots/InstancingDemo.png b/screenshots/InstancingDemo.png
new file mode 100644
index 0000000..2fbc522
--- /dev/null
+++ b/screenshots/InstancingDemo.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b72f6e5bd8b35af08e15453be84c3e8df7c4b8a80b62f6f55541a095741745f1
+size 202572
diff --git a/screenshots/NormalMapping.png b/screenshots/NormalMapping.png
new file mode 100644
index 0000000..969b000
--- /dev/null
+++ b/screenshots/NormalMapping.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:25b95d7d195ef64eb68155defcd4e7c14fcdf9a34050d9fddfdfcd2eb37e73bf
+size 156313
diff --git a/screenshots/SSAO.png b/screenshots/SSAO.png
new file mode 100644
index 0000000..32aa50d
--- /dev/null
+++ b/screenshots/SSAO.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:346b195d4868e9c39e15c28282dad21c8f4de4b836ef4be41567a9dffac70040
+size 359407
-- 
GitLab