Browse Source

Added AO and MetallicRoughness map support

Jef Belmans 2 years ago
parent
commit
4b3da357ab

+ 26 - 43
.idea/workspace.xml

@@ -32,28 +32,11 @@
   </component>
   </component>
   <component name="ChangeListManager">
   <component name="ChangeListManager">
     <list default="true" id="e2ea9cb6-a6b7-419f-9266-e5263673b6e6" name="Changes" comment="Fixed MaterialUBO memory alignment. All variables are now correctly aligned and read in the shader.">
     <list default="true" id="e2ea9cb6-a6b7-419f-9266-e5263673b6e6" name="Changes" comment="Fixed MaterialUBO memory alignment. All variables are now correctly aligned and read in the shader.">
-      <change afterPath="$PROJECT_DIR$/coral_renderer/skybox_system.cpp" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/coral_renderer/skybox_system.h" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/shaders/compiled/skybox.frag.spv" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/shaders/compiled/skybox.vert.spv" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/shaders/skybox.frag" afterDir="false" />
-      <change afterPath="$PROJECT_DIR$/shaders/skybox.vert" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/build/debug/CMakeFiles/clion-Debug-log.txt" beforeDir="false" afterPath="$PROJECT_DIR$/build/debug/CMakeFiles/clion-Debug-log.txt" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/build/debug/build.ninja" beforeDir="false" afterPath="$PROJECT_DIR$/build/debug/build.ninja" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/build/release/.ninja_deps" beforeDir="false" afterPath="$PROJECT_DIR$/build/release/.ninja_deps" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/build/release/.ninja_log" beforeDir="false" afterPath="$PROJECT_DIR$/build/release/.ninja_log" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/build/release/CMakeFiles/clion-Release-log.txt" beforeDir="false" afterPath="$PROJECT_DIR$/build/release/CMakeFiles/clion-Release-log.txt" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/build/release/Testing/Temporary/LastTest.log" beforeDir="false" afterPath="$PROJECT_DIR$/build/release/Testing/Temporary/LastTest.log" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/build/release/assets/shaders/compiled/simple_shader.frag.spv" beforeDir="false" afterPath="$PROJECT_DIR$/build/release/assets/shaders/compiled/simple_shader.frag.spv" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/build/release/assets/shaders/compiled/simple_shader.vert.spv" beforeDir="false" afterPath="$PROJECT_DIR$/build/release/assets/shaders/compiled/simple_shader.vert.spv" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/build/release/build.ninja" beforeDir="false" afterPath="$PROJECT_DIR$/build/release/build.ninja" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coral_renderer/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/CMakeLists.txt" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/build/debug/CMakeCache.txt" beforeDir="false" afterPath="$PROJECT_DIR$/build/debug/CMakeCache.txt" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/coral_renderer/coral_mesh.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/coral_mesh.cpp" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/coral_renderer/coral_mesh.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/coral_mesh.cpp" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/coral_renderer/coral_mesh.h" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/coral_mesh.h" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/coral_renderer/coral_mesh.h" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/coral_mesh.h" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/coral_renderer/first_app.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/first_app.cpp" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/coral_renderer/first_app.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/first_app.cpp" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coral_renderer/first_app.h" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/first_app.h" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/coral_renderer/point_light_system.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/point_light_system.cpp" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/shaders/compiled/simple_shader.frag.spv" beforeDir="false" afterPath="$PROJECT_DIR$/shaders/compiled/simple_shader.frag.spv" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/shaders/compiled/simple_shader.frag.spv" beforeDir="false" afterPath="$PROJECT_DIR$/shaders/compiled/simple_shader.frag.spv" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/shaders/simple_shader.frag" beforeDir="false" afterPath="$PROJECT_DIR$/shaders/simple_shader.frag" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/shaders/simple_shader.frag" beforeDir="false" afterPath="$PROJECT_DIR$/shaders/simple_shader.frag" afterDir="false" />
     </list>
     </list>
@@ -109,32 +92,32 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
   </component>
-  <component name="PropertiesComponent">{
-  &quot;keyToString&quot;: {
-    &quot;ASKED_ADD_EXTERNAL_FILES&quot;: &quot;true&quot;,
-    &quot;ASKED_MARK_IGNORED_FILES_AS_EXCLUDED&quot;: &quot;true&quot;,
-    &quot;ASKED_SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
-    &quot;RunOnceActivity.OpenProjectViewOnStart&quot;: &quot;true&quot;,
-    &quot;RunOnceActivity.ShowReadmeOnStart&quot;: &quot;true&quot;,
-    &quot;RunOnceActivity.cidr.known.project.marker&quot;: &quot;true&quot;,
-    &quot;SHARE_PROJECT_CONFIGURATION_FILES&quot;: &quot;true&quot;,
-    &quot;WebServerToolWindowFactoryState&quot;: &quot;false&quot;,
-    &quot;cf.advertisement.text.has.clang-format&quot;: &quot;true&quot;,
-    &quot;cf.advertisement.text.overridden&quot;: &quot;true&quot;,
-    &quot;cf.first.check.clang-format&quot;: &quot;false&quot;,
-    &quot;cidr.known.project.marker&quot;: &quot;true&quot;,
-    &quot;git-widget-placeholder&quot;: &quot;cubemap&quot;,
-    &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
-    &quot;last_opened_file_path&quot;: &quot;E:/Game Development/Visual Studio Solutions/Coral3D/coral_renderer&quot;,
-    &quot;node.js.detected.package.eslint&quot;: &quot;true&quot;,
-    &quot;node.js.detected.package.tslint&quot;: &quot;true&quot;,
-    &quot;node.js.selected.package.eslint&quot;: &quot;(autodetect)&quot;,
-    &quot;node.js.selected.package.tslint&quot;: &quot;(autodetect)&quot;,
-    &quot;settings.editor.selected.configurable&quot;: &quot;CPPToolchains&quot;,
-    &quot;structure.view.defaults.are.configured&quot;: &quot;true&quot;,
-    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
+  <component name="PropertiesComponent"><![CDATA[{
+  "keyToString": {
+    "ASKED_ADD_EXTERNAL_FILES": "true",
+    "ASKED_MARK_IGNORED_FILES_AS_EXCLUDED": "true",
+    "ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
+    "RunOnceActivity.OpenProjectViewOnStart": "true",
+    "RunOnceActivity.ShowReadmeOnStart": "true",
+    "RunOnceActivity.cidr.known.project.marker": "true",
+    "SHARE_PROJECT_CONFIGURATION_FILES": "true",
+    "WebServerToolWindowFactoryState": "false",
+    "cf.advertisement.text.has.clang-format": "true",
+    "cf.advertisement.text.overridden": "true",
+    "cf.first.check.clang-format": "false",
+    "cidr.known.project.marker": "true",
+    "git-widget-placeholder": "main",
+    "ignore.virus.scanning.warn.message": "true",
+    "last_opened_file_path": "E:/Game Development/Visual Studio Solutions/Coral3D/coral_renderer",
+    "node.js.detected.package.eslint": "true",
+    "node.js.detected.package.tslint": "true",
+    "node.js.selected.package.eslint": "(autodetect)",
+    "node.js.selected.package.tslint": "(autodetect)",
+    "settings.editor.selected.configurable": "CPPToolchains",
+    "structure.view.defaults.are.configured": "true",
+    "vue.rearranger.settings.migration": "true"
   }
   }
-}</component>
+}]]></component>
   <component name="RecentsManager">
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
     <key name="CopyFile.RECENT_KEYS">
       <recent name="E:\Game Development\Visual Studio Solutions\Coral3D\coral_renderer" />
       <recent name="E:\Game Development\Visual Studio Solutions\Coral3D\coral_renderer" />

+ 1 - 1
build/debug/CMakeCache.txt

@@ -170,7 +170,7 @@ CMAKE_INSTALL_SYSCONFDIR:PATH=etc
 CMAKE_LINKER:FILEPATH=C:/Program Files/JetBrains/CLion 2023.2/bin/mingw/bin/ld.exe
 CMAKE_LINKER:FILEPATH=C:/Program Files/JetBrains/CLion 2023.2/bin/mingw/bin/ld.exe
 
 
 //make program
 //make program
-CMAKE_MAKE_PROGRAM:FILEPATH=C:/Program Files/JetBrains/CLion 2023.2/bin/ninja/win/x64/ninja.exe
+CMAKE_MAKE_PROGRAM:FILEPATH=C:/PROGRA~1/JETBRA~1/CLION2~1.2/bin/ninja/win/x64/ninja.exe
 
 
 //Flags used by the linker during the creation of modules during
 //Flags used by the linker during the creation of modules during
 // all build types.
 // all build types.

+ 2 - 2
build/debug/CMakeFiles/rules.ninja

@@ -108,7 +108,7 @@ rule RERUN_CMAKE
 # Rule for cleaning all built files.
 # Rule for cleaning all built files.
 
 
 rule CLEAN
 rule CLEAN
-  command = "C:\Program Files\JetBrains\CLion 2023.2\bin\ninja\win\x64\ninja.exe" $FILE_ARG -t clean $TARGETS
+  command = C:\PROGRA~1\JETBRA~1\CLION2~1.2\bin\ninja\win\x64\ninja.exe $FILE_ARG -t clean $TARGETS
   description = Cleaning all built files...
   description = Cleaning all built files...
 
 
 
 
@@ -116,6 +116,6 @@ rule CLEAN
 # Rule for printing all primary targets available.
 # Rule for printing all primary targets available.
 
 
 rule HELP
 rule HELP
-  command = "C:\Program Files\JetBrains\CLion 2023.2\bin\ninja\win\x64\ninja.exe" -t targets
+  command = C:\PROGRA~1\JETBRA~1\CLION2~1.2\bin\ninja\win\x64\ninja.exe -t targets
   description = All primary targets available:
   description = All primary targets available:
 
 

BIN
build/release/.ninja_deps


+ 88 - 57
build/release/.ninja_log

@@ -1,7 +1,7 @@
 # ninja log v5
 # ninja log v5
-5	1226	7183934723194807	coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj	9032090700129b1a
+110	1453	7183974413341189	coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj	9032090700129b1a
 55	1725	7183022336983463	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_thread.c.obj	1d3576b97de4dcfd
 55	1725	7183022336983463	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_thread.c.obj	1d3576b97de4dcfd
-120	1793	7183874533614760	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	2b1afc763cc7fd7d
+93	1408	7183974412887959	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	2b1afc763cc7fd7d
 223	1227	7183022331958345	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	ebb5501fcd7328ce
 223	1227	7183022331958345	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	ebb5501fcd7328ce
 81	1905	7183022338800220	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	149f73e3b2fe6a10
 81	1905	7183022338800220	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	149f73e3b2fe6a10
 37	1800	7183022337689163	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	2200c22e2fbf5f9b
 37	1800	7183022337689163	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	2200c22e2fbf5f9b
@@ -9,7 +9,7 @@
 65	1877	7183022338494917	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_init.c.obj	6d7558a01a2b92c3
 65	1877	7183022338494917	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_init.c.obj	6d7558a01a2b92c3
 86	1781	7183022337343800	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_time.c.obj	e692993acf9f94ac
 86	1781	7183022337343800	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_time.c.obj	e692993acf9f94ac
 92	1810	7183022337824274	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	54773fed0db7e7b1
 92	1810	7183022337824274	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	54773fed0db7e7b1
-1226	1437	7183934725250521	coral_renderer/coral_renderer.exe	465b0c480365adc3
+15917	16063	7183974559400930	coral_renderer/coral_renderer.exe	465b0c480365adc3
 159	1850	7183874534196497	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	976f54a312d4fda
 159	1850	7183874534196497	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	976f54a312d4fda
 75	1799	7183022337674141	third_party/GLFW/src/CMakeFiles/glfw.dir/vulkan.c.obj	1d1eab9fa8d7eeed
 75	1799	7183022337674141	third_party/GLFW/src/CMakeFiles/glfw.dir/vulkan.c.obj	1d1eab9fa8d7eeed
 29	1877	7183022338504965	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	da1b97f86a6f1881
 29	1877	7183022338504965	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	da1b97f86a6f1881
@@ -27,68 +27,99 @@
 2214	2298	7183022342738867	third_party/GLFW/src/libglfw3.a	fc48f5f1f632859b
 2214	2298	7183022342738867	third_party/GLFW/src/libglfw3.a	fc48f5f1f632859b
 164	1558	7183874531258795	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	c0771ce2d8c57d44
 164	1558	7183874531258795	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	c0771ce2d8c57d44
 140	1592	7183874531615144	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	cb2e4f201849c024
 140	1592	7183874531615144	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	cb2e4f201849c024
-144	1729	7183874532985137	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	3e1fca21fb1049ab
-151	1800	7183874533684842	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	3426bcb39c57484b
-126	1947	7183874535165519	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	c97492ac4e9c2f4f
+104	1339	7183974412190718	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	3e1fca21fb1049ab
+107	1396	7183974412767658	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	3426bcb39c57484b
+96	1475	7183974413561708	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	c97492ac4e9c2f4f
 87	3107	7165258684040000	coral_renderer/CMakeFiles/coral_renderer.dir/coral_material.cpp.obj	432ccaf3a8cd54b8
 87	3107	7165258684040000	coral_renderer/CMakeFiles/coral_renderer.dir/coral_material.cpp.obj	432ccaf3a8cd54b8
-96	15702	7183882422016801	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
+101	15917	7183974557956429	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
 132	2021	7183874535878383	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	9f4b5b8fbef6fb7c
 132	2021	7183874535878383	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	9f4b5b8fbef6fb7c
 18	4738	7183022367136384	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	f6b337d1309e9955
 18	4738	7183022367136384	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	f6b337d1309e9955
 28	1202	7183091372760031	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	9f969c086058a660
 28	1202	7183091372760031	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	9f969c086058a660
+14	115	7183960764854377	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv	27df2aed8354088c
 136	2310	7183874538792649	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f22c3ebb3984eea4
 136	2310	7183874538792649	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f22c3ebb3984eea4
-89	2062	7183906839669855	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-13	1418	7183896909334047	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
+98	2236	7183974421176773	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
+134	1273	7183960776463801	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
 4739	4785	7183022367622250	third_party/libvkbootstrap.a	c71ed427a7b8907
 4739	4785	7183022367622250	third_party/libvkbootstrap.a	c71ed427a7b8907
 155	4018	7183874555858953	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	8b51063e5bc12069
 155	4018	7183874555858953	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	8b51063e5bc12069
-3	552	7183934780004459	build.ninja	fa936e3b47cbade3
-0	1524	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+1	191	7183960763519711	build.ninja	ba309abf78566697
+0	1447	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
 22	4062	7183022360380247	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	fd1983a21fbb7956
 22	4062	7183022360380247	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	fd1983a21fbb7956
-4	115	7183874516795372	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	3c7e702a8a128f67
+4	103	7183960764719818	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	3c7e702a8a128f67
 4062	4108	7183022360855718	third_party/libtinyobjloader.a	99fa9adb75ddfe5c
 4062	4108	7183022360855718	third_party/libtinyobjloader.a	99fa9adb75ddfe5c
-4	90	7183908676282737	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-0	1524	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-9	1200	7183934722933983	coral_renderer/CMakeFiles/coral_renderer.dir/skybox_system.cpp.obj	61e37bed93cb18c0
-4	94	7183934826350361	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv	27df2aed8354088c
-4	90	7183934882864579	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.frag.spv	e8977b9a0247b84a
-4	1980	7183935661140589	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-1980	2123	7183935662534432	coral_renderer/coral_renderer.exe	465b0c480365adc3
-0	1511	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1511	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-8	101	7183950971976022	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.frag.spv	e8977b9a0247b84a
-4	102	7183950971976022	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv	27df2aed8354088c
-11	105	7183950972031499	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-114	1391	7183950984917007	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	3e1fca21fb1049ab
-121	1449	7183950985499105	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	3426bcb39c57484b
-112	1462	7183950985637333	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	2b1afc763cc7fd7d
-127	1481	7183950985828131	coral_renderer/CMakeFiles/coral_renderer.dir/skybox_system.cpp.obj	61e37bed93cb18c0
-124	1510	7183950986118943	coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj	9032090700129b1a
-105	1524	7183950986259229	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	c97492ac4e9c2f4f
-109	2323	7183950994245397	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-118	16610	7183951137093018	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
-16610	16760	7183951138577354	coral_renderer/coral_renderer.exe	465b0c480365adc3
-0	1540	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1540	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	1953	7183951934387223	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-1953	2095	7183951935771950	coral_renderer/coral_renderer.exe	465b0c480365adc3
-0	1467	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1467	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	1959	7183953159323236	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-1959	2107	7183953160764341	coral_renderer/coral_renderer.exe	465b0c480365adc3
-1	1561	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-1	1561	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-5	91	7183955224504330	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv	27df2aed8354088c
+5	92	7183974399706760	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+0	1447	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+114	1422	7183974413023486	coral_renderer/CMakeFiles/coral_renderer.dir/skybox_system.cpp.obj	61e37bed93cb18c0
+11	110	7183960764805848	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.frag.spv	e8977b9a0247b84a
 0	1528	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
 0	1528	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
 0	1528	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
 0	1528	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1518	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1518	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-5	94	7183957103722327	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv	27df2aed8354088c
-0	1517	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1517	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	89	7183957281452681	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv	27df2aed8354088c
-0	1480	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1480	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	90	7183957432492827	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv	27df2aed8354088c
-1	1541	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-1	1541	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-1	1481	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-1	1481	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+5	1965	7183974887641629	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
+1965	2107	7183974889023427	coral_renderer/coral_renderer.exe	465b0c480365adc3
+0	1551	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1551	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1460	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1460	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+4	91	7183975392272552	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+0	1568	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1568	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+4	91	7183975644644228	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+91	2026	7183975664021614	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
+2026	2169	7183975665410346	coral_renderer/coral_renderer.exe	465b0c480365adc3
+0	1568	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1568	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+4	90	7183975873598782	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+0	1488	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1488	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1508	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1508	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+4	1969	7183978041690873	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
+1969	2112	7183978043093592	coral_renderer/coral_renderer.exe	465b0c480365adc3
+0	1566	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1566	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+4	89	7183979612969875	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+98	1289	7183979624987147	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	3e1fca21fb1049ab
+104	1359	7183979625685074	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	3426bcb39c57484b
+92	1386	7183979625955884	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	2b1afc763cc7fd7d
+110	1398	7183979626081178	coral_renderer/CMakeFiles/coral_renderer.dir/skybox_system.cpp.obj	61e37bed93cb18c0
+107	1435	7183979626447422	coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj	9032090700129b1a
+95	1452	7183979626622728	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	c97492ac4e9c2f4f
+89	2225	7183979634353690	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
+4	15762	7183979819324664	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
+15762	15905	7183979820738008	coral_renderer/coral_renderer.exe	465b0c480365adc3
+0	1493	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1493	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+5	16188	7183981856507360	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
+16188	16332	7183981857927434	coral_renderer/coral_renderer.exe	465b0c480365adc3
+1	1483	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+1	1483	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+4	90	7183984418460520	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+0	1494	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1494	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+5	91	7183984578166245	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+0	1503	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1503	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+4	91	7183984836168935	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+0	1527	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1527	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+4	93	7183985324325436	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+0	1520	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1520	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+4	91	7183985467075848	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+91	2104	7183985487226756	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
+2104	2260	7183985488739617	coral_renderer/coral_renderer.exe	465b0c480365adc3
+0	1807	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1807	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+5	1954	7183985763213952	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
+1954	2097	7183985764609679	coral_renderer/coral_renderer.exe	465b0c480365adc3
+0	1455	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+0	1455	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+19	1263	7184001234844957	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	3e1fca21fb1049ab
+22	1334	7184001235548983	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	3426bcb39c57484b
+29	1347	7184001235689274	coral_renderer/CMakeFiles/coral_renderer.dir/skybox_system.cpp.obj	61e37bed93cb18c0
+5	1360	7184001235819558	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	2b1afc763cc7fd7d
+25	1417	7184001236386666	coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj	9032090700129b1a
+12	1419	7184001236416695	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	c97492ac4e9c2f4f
+9	2241	7184001244629723	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
+15	15887	7184001381060342	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
+15887	16029	7184001382472864	coral_renderer/coral_renderer.exe	465b0c480365adc3
+1	1424	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
+1	1424	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866

+ 1 - 1
build/release/CMakeCache.txt

@@ -170,7 +170,7 @@ CMAKE_INSTALL_SYSCONFDIR:PATH=etc
 CMAKE_LINKER:FILEPATH=C:/Program Files/JetBrains/CLion 2023.2/bin/mingw/bin/ld.exe
 CMAKE_LINKER:FILEPATH=C:/Program Files/JetBrains/CLion 2023.2/bin/mingw/bin/ld.exe
 
 
 //make program
 //make program
-CMAKE_MAKE_PROGRAM:FILEPATH=C:/Program Files/JetBrains/CLion 2023.2/bin/ninja/win/x64/ninja.exe
+CMAKE_MAKE_PROGRAM:FILEPATH=C:/PROGRA~1/JETBRA~1/CLION2~1.2/bin/ninja/win/x64/ninja.exe
 
 
 //Flags used by the linker during the creation of modules during
 //Flags used by the linker during the creation of modules during
 // all build types.
 // all build types.

+ 2 - 2
build/release/CMakeFiles/rules.ninja

@@ -108,7 +108,7 @@ rule RERUN_CMAKE
 # Rule for cleaning all built files.
 # Rule for cleaning all built files.
 
 
 rule CLEAN
 rule CLEAN
-  command = "C:\Program Files\JetBrains\CLion 2023.2\bin\ninja\win\x64\ninja.exe" $FILE_ARG -t clean $TARGETS
+  command = C:\PROGRA~1\JETBRA~1\CLION2~1.2\bin\ninja\win\x64\ninja.exe $FILE_ARG -t clean $TARGETS
   description = Cleaning all built files...
   description = Cleaning all built files...
 
 
 
 
@@ -116,6 +116,6 @@ rule CLEAN
 # Rule for printing all primary targets available.
 # Rule for printing all primary targets available.
 
 
 rule HELP
 rule HELP
-  command = "C:\Program Files\JetBrains\CLion 2023.2\bin\ninja\win\x64\ninja.exe" -t targets
+  command = C:\PROGRA~1\JETBRA~1\CLION2~1.2\bin\ninja\win\x64\ninja.exe -t targets
   description = All primary targets available:
   description = All primary targets available:
 
 

+ 2 - 2
build/release/Testing/Temporary/LastTest.log

@@ -1,3 +1,3 @@
-Start testing: Oct 07 17:33 Romance Daylight Time
+Start testing: Oct 07 18:42 Romance Daylight Time
 ----------------------------------------------------------
 ----------------------------------------------------------
-End testing: Oct 07 17:33 Romance Daylight Time
+End testing: Oct 07 18:42 Romance Daylight Time

+ 41 - 5
coral_renderer/coral_mesh.cpp

@@ -228,6 +228,18 @@ void coral_mesh::Builder::load_materials(tinygltf::Model &input)
             materials[i].normal_texture_index = glTFMaterial.additionalValues["normalTexture"].TextureIndex();
             materials[i].normal_texture_index = glTFMaterial.additionalValues["normalTexture"].TextureIndex();
         }
         }
 
 
+        // Get the occlusion map texture index
+        if (glTFMaterial.additionalValues.find("occlusionTexture") != glTFMaterial.additionalValues.end())
+        {
+            materials[i].occlusion_texture_index = glTFMaterial.additionalValues["occlusionTexture"].TextureIndex();
+        }
+
+        // Get the metallic roughness map texture index
+        if (glTFMaterial.values.find("metallicRoughnessTexture") != glTFMaterial.additionalValues.end())
+        {
+            materials[i].metallic_roughness_texture_index = glTFMaterial.values["metallicRoughnessTexture"].TextureIndex();
+        }
+
         materials[i].alpha_mode = glTFMaterial.alphaMode;
         materials[i].alpha_mode = glTFMaterial.alphaMode;
         materials[i].alpha_cutoff = (float) glTFMaterial.alphaCutoff;
         materials[i].alpha_cutoff = (float) glTFMaterial.alphaCutoff;
         materials[i].double_sided = glTFMaterial.doubleSided;
         materials[i].double_sided = glTFMaterial.doubleSided;
@@ -423,11 +435,32 @@ void coral_mesh::load_materials(coral_descriptor_set_layout& material_set_layout
     {
     {
         auto color_desc = get_texture_descriptor(material.base_color_texture_index);
         auto color_desc = get_texture_descriptor(material.base_color_texture_index);
         auto normal_desc = get_texture_descriptor(material.normal_texture_index);
         auto normal_desc = get_texture_descriptor(material.normal_texture_index);
+        auto occlusion_desc = get_texture_descriptor(material.occlusion_texture_index);
+        auto metallic_roughness_desc = get_texture_descriptor(material.metallic_roughness_texture_index);
+
+        coral_descriptor_writer writer{material_set_layout, material_set_pool};
+
+        if(material.base_color_texture_index != -1)
+        {
+            writer.write_image(0, &color_desc);
+        }
 
 
-        coral_descriptor_writer(material_set_layout, material_set_pool)
-                .write_image(0, &color_desc)
-                .write_image(1, &normal_desc)
-                .build(material.descriptor_set);
+        if(material.normal_texture_index != -1)
+        {
+            writer.write_image(1, &normal_desc);
+        }
+
+        if(material.occlusion_texture_index != -1)
+        {
+            writer.write_image(2, &occlusion_desc);
+        }
+
+        if(material.metallic_roughness_texture_index != -1)
+        {
+            writer.write_image(3, &metallic_roughness_desc);
+        }
+
+        writer.build(material.descriptor_set);
     }
     }
 }
 }
 
 
@@ -568,8 +601,11 @@ void coral_mesh::create_index_buffers(const std::vector<uint32_t>& indices)
     device_.copy_buffer(staging_buffer.get_buffer(), index_buffer_->get_buffer(), buffer_size);
     device_.copy_buffer(staging_buffer.get_buffer(), index_buffer_->get_buffer(), buffer_size);
 }
 }
 
 
-VkDescriptorImageInfo coral_mesh::get_texture_descriptor(const size_t index)
+VkDescriptorImageInfo coral_mesh::get_texture_descriptor(const int index)
 {
 {
+    if(index == -1)
+        return VkDescriptorImageInfo{};
+
     return images_[index].texture->get_descriptor_info();
     return images_[index].texture->get_descriptor_info();
 }
 }
 
 

+ 8 - 3
coral_renderer/coral_mesh.h

@@ -76,9 +76,14 @@ namespace coral_3d
     struct Material
     struct Material
     {
     {
         glm::vec4 base_color_factor = glm::vec4{1.f};
         glm::vec4 base_color_factor = glm::vec4{1.f};
-        uint32_t base_color_texture_index;
-        uint32_t normal_texture_index;
 
 
+        // TEXTURES
+        int base_color_texture_index{-1};
+        int normal_texture_index{-1};
+        int occlusion_texture_index{-1};
+        int metallic_roughness_texture_index{-1};
+
+        // PROPERTIES
         std::string alpha_mode = "OPAQUE";
         std::string alpha_mode = "OPAQUE";
         float alpha_cutoff;
         float alpha_cutoff;
         bool double_sided = false;
         bool double_sided = false;
@@ -134,7 +139,7 @@ namespace coral_3d
 		void draw(VkCommandBuffer command_buffer, VkPipelineLayout pipeline_layout);
 		void draw(VkCommandBuffer command_buffer, VkPipelineLayout pipeline_layout);
 
 
 	private:
 	private:
-        VkDescriptorImageInfo get_texture_descriptor(size_t index);
+        VkDescriptorImageInfo get_texture_descriptor(int index);
 
 
         void draw_node(VkCommandBuffer command_buffer, VkPipelineLayout pipeline_layout, coral_3d::Node* node);
         void draw_node(VkCommandBuffer command_buffer, VkPipelineLayout pipeline_layout, coral_3d::Node* node);
 
 

+ 9 - 1
coral_renderer/first_app.cpp

@@ -49,6 +49,8 @@ void first_app::run()
     auto material_set_layout = coral_descriptor_set_layout::Builder(device_)
     auto material_set_layout = coral_descriptor_set_layout::Builder(device_)
             .add_binding(0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT)
             .add_binding(0, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT)
             .add_binding(1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT)
             .add_binding(1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT)
+            .add_binding(2, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT)
+            .add_binding(3, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT)
             .build();
             .build();
 
 
     // Combined descriptor set layouts
     // Combined descriptor set layouts
@@ -92,6 +94,11 @@ void first_app::run()
 		{
 		{
             const int frame_index{ renderer_.get_frame_index() };
             const int frame_index{ renderer_.get_frame_index() };
 
 
+            auto rotation = glm::rotate(glm::mat4(1.f), frame_time, {0.f, -1.f, 0.f});
+
+            auto& obj = gameobjects_.at(0);
+            obj->transform_.translation = glm::vec3(rotation * glm::vec4(obj->transform_.translation, 1.f));
+
             FrameInfo frame_info
             FrameInfo frame_info
             {
             {
                 frame_index,
                 frame_index,
@@ -133,7 +140,7 @@ void first_app::load_gameobjects(coral_descriptor_set_layout& material_set_layou
     // MESHES
     // MESHES
     std::shared_ptr<coral_mesh> sponza_mesh
     std::shared_ptr<coral_mesh> sponza_mesh
     {
     {
-        coral_mesh::create_mesh_from_file(device_,"assets/meshes/Helmet/Scene.gltf", sponza_scene.get())
+        coral_mesh::create_mesh_from_file(device_,"assets/meshes/SciFiHelmet/SciFiHelmet.gltf", sponza_scene.get())
     };
     };
 
 
     // CREATE MESH MATERIALS AND PIPELINES
     // CREATE MESH MATERIALS AND PIPELINES
@@ -145,6 +152,7 @@ void first_app::load_gameobjects(coral_descriptor_set_layout& material_set_layou
             pipeline_layout);
             pipeline_layout);
 
 
     sponza_scene->mesh_ = sponza_mesh;
     sponza_scene->mesh_ = sponza_mesh;
+    sponza_scene->transform_.translation = glm::vec3(0.f, 0.f, 0.f);
     gameobjects_.emplace(sponza_scene->get_id(), sponza_scene);
     gameobjects_.emplace(sponza_scene->get_id(), sponza_scene);
 
 
     // LIGHTS
     // LIGHTS

BIN
shaders/compiled/simple_shader.frag.spv


+ 12 - 3
shaders/simple_shader.frag

@@ -26,6 +26,8 @@ layout (set = 0, binding = 0) uniform GlobalUBO
 layout (set = 0, binding = 1) uniform samplerCube samplerCubeMap;
 layout (set = 0, binding = 1) uniform samplerCube samplerCubeMap;
 layout (set = 1, binding = 0) uniform sampler2D samplerColorMap;
 layout (set = 1, binding = 0) uniform sampler2D samplerColorMap;
 layout (set = 1, binding = 1) uniform sampler2D samplerNormalMap;
 layout (set = 1, binding = 1) uniform sampler2D samplerNormalMap;
+layout (set = 1, binding = 2) uniform sampler2D samplerOcclusionMap;
+layout (set = 1, binding = 3) uniform sampler2D samplerMetallicRoughness;
 
 
 // CONSTANTS
 // CONSTANTS
 layout (constant_id = 0) const bool ALPHA_MASK = false;
 layout (constant_id = 0) const bool ALPHA_MASK = false;
@@ -72,7 +74,7 @@ vec3 calculate_fresnel(vec3 N, vec3 V, vec3 C)
 {
 {
 	float fresnelPower = 1.f;
 	float fresnelPower = 1.f;
 	float fresnelMultiplier = 1.f;
 	float fresnelMultiplier = 1.f;
-	float fresnelHardness = 0.f;
+	float fresnelHardness = 1.f;
 
 
 	float fresnel = pow(1.f - max(abs(dot(N, V)), 0), fresnelPower) * fresnelMultiplier;
 	float fresnel = pow(1.f - max(abs(dot(N, V)), 0), fresnelPower) * fresnelMultiplier;
 	vec3 fresnelMask = pow(1.f - max(vec3(0.0f, -1.0f, 0.0f) * N, 0.f), vec3(fresnelHardness));
 	vec3 fresnelMask = pow(1.f - max(vec3(0.0f, -1.0f, 0.0f) * N, 0.f), vec3(fresnelHardness));
@@ -100,6 +102,7 @@ void main()
 	vec3 ambient = ubo.ambientLighting.xyz * ubo.ambientLighting.w;
 	vec3 ambient = ubo.ambientLighting.xyz * ubo.ambientLighting.w;
 	vec3 diffuse = calculate_diffuse(N, ubo.globalLightDirection.xyz, color.rgb * ubo.globalLightDirection.w);
 	vec3 diffuse = calculate_diffuse(N, ubo.globalLightDirection.xyz, color.rgb * ubo.globalLightDirection.w);
 	vec3 specular = calculate_specular(N, V,  ubo.globalLightDirection.xyz, vec3(1,1,1) *  ubo.globalLightDirection.w);
 	vec3 specular = calculate_specular(N, V,  ubo.globalLightDirection.xyz, vec3(1,1,1) *  ubo.globalLightDirection.w);
+	vec3 occlusion = texture(samplerOcclusionMap, fs_in.texcoord).rgb;
 
 
 	// POINT LIGHTS
 	// POINT LIGHTS
 	for(int i = 0; i < ubo.numLights; i++)
 	for(int i = 0; i < ubo.numLights; i++)
@@ -113,7 +116,13 @@ void main()
 		specular += calculate_specular(N, V, directionToLight, lightColor);
 		specular += calculate_specular(N, V, directionToLight, lightColor);
 	}
 	}
 
 
+	// ROUGHNESS
+	float roughness = texture(samplerMetallicRoughness, fs_in.texcoord).b;
+	specular *= roughness;
+
+	// ENVIRONMENT MAPPING
 	vec3 environment = texture(samplerCubeMap, R).rgb;
 	vec3 environment = texture(samplerCubeMap, R).rgb;
-	environment = calculate_fresnel(N, V, environment);
-	outFragColor = vec4(ambient + diffuse + specular + environment, color.a);
+	environment = calculate_fresnel(N, V, environment) * roughness;
+
+	outFragColor = vec4((ambient + diffuse + specular + environment) * occlusion, color.a);
 }
 }