Browse Source

Added a skybox system

Added a skybox system to render the cubemap to a skybox.
Jef Belmans 2 years ago
parent
commit
ce0dc14cc4

+ 19 - 1
.idea/workspace.xml

@@ -32,10 +32,28 @@
   </component>
   <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.">
+      <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$/coral_renderer/coral_cubemap.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/coral_cubemap.cpp" 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$/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/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/simple_shader.frag" beforeDir="false" afterPath="$PROJECT_DIR$/shaders/simple_shader.frag" afterDir="false" />
     </list>

+ 4 - 0
build/debug/CMakeFiles/clion-Debug-log.txt

@@ -7,6 +7,10 @@
 -- E:/Game Development/Visual Studio Solutions/Coral3D/shaders/simple_shader.frag
 -- BUILDING SHADER
 -- E:/Game Development/Visual Studio Solutions/Coral3D/shaders/simple_shader.vert
+-- BUILDING SHADER
+-- E:/Game Development/Visual Studio Solutions/Coral3D/shaders/skybox.frag
+-- BUILDING SHADER
+-- E:/Game Development/Visual Studio Solutions/Coral3D/shaders/skybox.vert
 -- Using Win32 for window creation
 -- Configuring done (0.1s)
 -- Generating done (0.0s)

+ 28 - 3
build/debug/build.ninja

@@ -245,6 +245,13 @@ build coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj: CXX_CO
   OBJECT_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
   OBJECT_FILE_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
 
+build coral_renderer/CMakeFiles/coral_renderer.dir/skybox_system.cpp.obj: CXX_COMPILER__coral_renderer_unscanned_Debug E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/coral_renderer/skybox_system.cpp || cmake_object_order_depends_target_coral_renderer
+  DEP_FILE = coral_renderer\CMakeFiles\coral_renderer.dir\skybox_system.cpp.obj.d
+  FLAGS = -g -std=gnu++23 -fdiagnostics-color=always -Wall -Wextra -Wpedantic -Werror
+  INCLUDES = -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/GLFW/include" -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/glm" -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/vkbootstrap" -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/tinyobjloader" -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/tinygltf" -isystem C:/VulkanSDK/1.3.250.0/Include -isystem "E:/Game Development/Visual Studio Solutions/Coral3D/third_party/vma" -isystem "E:/Game Development/Visual Studio Solutions/Coral3D/third_party/stb_image"
+  OBJECT_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
+  OBJECT_FILE_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
+
 
 # =============================================================================
 # Link build statements for EXECUTABLE target coral_renderer
@@ -253,7 +260,7 @@ build coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj: CXX_CO
 #############################################
 # Link the executable coral_renderer\coral_renderer.exe
 
-build coral_renderer/coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_Debug coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_utils.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj | C$:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib third_party/GLFW/src/libglfw3.a third_party/libvkbootstrap.a third_party/libtinyobjloader.a C$:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib || coral_renderer/Shaders third_party/GLFW/src/libglfw3.a third_party/libtinyobjloader.a third_party/libvkbootstrap.a
+build coral_renderer/coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_Debug coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_utils.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/skybox_system.cpp.obj | C$:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib third_party/GLFW/src/libglfw3.a third_party/libvkbootstrap.a third_party/libtinyobjloader.a C$:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib || coral_renderer/Shaders third_party/GLFW/src/libglfw3.a third_party/libtinyobjloader.a third_party/libvkbootstrap.a
   FLAGS = -g
   LINK_LIBRARIES = C:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib  third_party/GLFW/src/libglfw3.a  third_party/libvkbootstrap.a  third_party/libtinyobjloader.a  C:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
   OBJECT_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
@@ -267,7 +274,7 @@ build coral_renderer/coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_D
 #############################################
 # Utility command for Shaders
 
-build coral_renderer/Shaders: phony coral_renderer/CMakeFiles/Shaders E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv
+build coral_renderer/Shaders: phony coral_renderer/CMakeFiles/Shaders E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.vert.spv
 
 
 #############################################
@@ -344,7 +351,7 @@ build coral_renderer/install/strip: phony coral_renderer/CMakeFiles/install/stri
 #############################################
 # Phony custom command for coral_renderer\CMakeFiles\Shaders
 
-build coral_renderer/CMakeFiles/Shaders | ${cmake_ninja_workdir}coral_renderer/CMakeFiles/Shaders: phony E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv
+build coral_renderer/CMakeFiles/Shaders | ${cmake_ninja_workdir}coral_renderer/CMakeFiles/Shaders: phony E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.vert.spv
 
 
 #############################################
@@ -383,6 +390,24 @@ build E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/s
   restat = 1
 
 
+#############################################
+# Custom command for E:\Game Development\Visual Studio Solutions\Coral3D\shaders\compiled\skybox.frag.spv
+
+build E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.frag.spv: CUSTOM_COMMAND E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/skybox.frag
+  COMMAND = cmd.exe /C "cd /D "E:\Game Development\Visual Studio Solutions\Coral3D\build\debug\coral_renderer" && "C:\Program Files\JetBrains\CLion 2023.2\bin\cmake\win\x64\bin\cmake.exe" -E make_directory "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/" && C:\VulkanSDK\1.3.250.0\Bin\glslangValidator.exe -V "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/skybox.frag" -o "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.frag.spv""
+  DESC = Generating E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.frag.spv
+  restat = 1
+
+
+#############################################
+# Custom command for E:\Game Development\Visual Studio Solutions\Coral3D\shaders\compiled\skybox.vert.spv
+
+build E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.vert.spv: CUSTOM_COMMAND E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/skybox.vert
+  COMMAND = cmd.exe /C "cd /D "E:\Game Development\Visual Studio Solutions\Coral3D\build\debug\coral_renderer" && "C:\Program Files\JetBrains\CLion 2023.2\bin\cmake\win\x64\bin\cmake.exe" -E make_directory "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/" && C:\VulkanSDK\1.3.250.0\Bin\glslangValidator.exe -V "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/skybox.vert" -o "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv""
+  DESC = Generating E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv
+  restat = 1
+
+
 #############################################
 # Custom command for coral_renderer\CMakeFiles\copy_assets
 

BIN
build/release/.ninja_deps


+ 62 - 110
build/release/.ninja_log

@@ -1,7 +1,7 @@
 # ninja log v5
-112	1734	7183867963157293	coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj	9032090700129b1a
+5	1226	7183934723194807	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
-98	1674	7183867962552077	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	2b1afc763cc7fd7d
+120	1793	7183874533614760	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	2b1afc763cc7fd7d
 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
 37	1800	7183022337689163	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	2200c22e2fbf5f9b
@@ -9,15 +9,15 @@
 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
 92	1810	7183022337824274	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	54773fed0db7e7b1
-16393	16535	7183869488794476	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-145	2060	7183858163342437	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	976f54a312d4fda
+1226	1437	7183934725250521	coral_renderer/coral_renderer.exe	465b0c480365adc3
+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
 29	1877	7183022338504965	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	da1b97f86a6f1881
 33	1891	7183022338650093	third_party/GLFW/src/CMakeFiles/glfw.dir/context.c.obj	769cf2954fa9296c
 70	1892	7183022338650093	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	731e24eae4f6c3c0
 41	1899	7183022338735169	third_party/GLFW/src/CMakeFiles/glfw.dir/egl_context.c.obj	3d2a39fb62cc5d09
 46	2214	7183022341898103	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_window.c.obj	ac8316922cd6d380
-121	1050	7183858153237435	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	c70ea6a045b04a90
+129	1061	7183874526294255	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	c70ea6a045b04a90
 60	1982	7183022339565951	third_party/GLFW/src/CMakeFiles/glfw.dir/window.c.obj	a05896c745e87d4a
 293	1059	7183022330311772	coral_renderer/CMakeFiles/coral_renderer.dir/coral_utils.cpp.obj	6f14caec93e90570
 4	100	7183858143702629	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/point_light.frag.spv	6d3a602ccc13fa0e
@@ -25,118 +25,70 @@
 25	2089	7183022340631937	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	a690aad864a072ff
 8	108	7183858143785593	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/point_light.vert.spv	87717d1f7db06f5d
 2214	2298	7183022342738867	third_party/GLFW/src/libglfw3.a	fc48f5f1f632859b
-149	1824	7183858160951519	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	c0771ce2d8c57d44
-127	1835	7183858161067273	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	cb2e4f201849c024
-103	1585	7183867961658051	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	3e1fca21fb1049ab
-109	1665	7183867962466742	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	3426bcb39c57484b
-94	1773	7183867963538306	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
-8	16393	7183869487376989	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
-117	2234	7183858165082435	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	9f4b5b8fbef6fb7c
-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
-124	2636	7183858169102355	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f22c3ebb3984eea4
-4	2312	7183869346597571	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-5	1081	7183865988806190	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
-4739	4785	7183022367622250	third_party/libvkbootstrap.a	c71ed427a7b8907
-141	4147	7183858184210293	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	8b51063e5bc12069
-3	552	7183870791875193	build.ninja	fa936e3b47cbade3
-0	1500	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-22	4062	7183022360380247	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	fd1983a21fbb7956
-4	92	7183867946711710	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	3c7e702a8a128f67
-4062	4108	7183022360855718	third_party/libtinyobjloader.a	99fa9adb75ddfe5c
-4	90	7183868570642168	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-0	1500	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	115	7183874516795372	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	3c7e702a8a128f67
-8	120	7183874516825403	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-129	1061	7183874526294255	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	c70ea6a045b04a90
 164	1558	7183874531258795	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	c0771ce2d8c57d44
-173	1560	7183874531299087	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
 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
-120	1793	7183874533614760	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	2b1afc763cc7fd7d
 151	1800	7183874533684842	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	3426bcb39c57484b
-159	1850	7183874534196497	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	976f54a312d4fda
-168	1889	7183874534583050	coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj	9032090700129b1a
 126	1947	7183874535165519	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
+96	15702	7183882422016801	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
+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
 136	2310	7183874538792649	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	f22c3ebb3984eea4
-123	2822	7183874543912979	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-155	4018	7183874555858953	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	8b51063e5bc12069
-147	16922	7183874684888116	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
-16922	17065	7183874686308813	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-4	92	7183877768024173	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-92	1025	7183877777375065	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
-1025	1169	7183877778770758	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-0	1576	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1576	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-5	92	7183880585005090	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-92	2430	7183880608414666	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-5	17326	7183881028485021	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
-17326	17471	7183881029923255	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-0	1482	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1482	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-5	1940	7183881510848480	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-1940	2081	7183881512219286	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-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
-5	92	7183882265916812	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-99	1044	7183882275463783	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
-92	2073	7183882285753913	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-96	15702	7183882422016801	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	ec9b9c950c06d57a
-15703	15843	7183882423416378	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-0	1529	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1529	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	916	7183882760839944	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
-916	1057	7183882762207450	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-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	1034	7183885438539224	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
-1034	1176	7183885439925033	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-0	1516	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1516	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-5	1102	7183885732080191	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
-1102	1242	7183885733457964	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-0	1532	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1532	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-5	993	7183886380731879	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
-993	1135	7183886382115657	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-0	1514	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1514	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-13	1418	7183896909334047	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
-8	2640	7183896921563519	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-4	145	7183896960415951	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-5	1961	7183897907145204	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-1962	2103	7183897908520894	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-0	1425	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1425	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-5	1949	7183898442438358	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-1949	2090	7183898443811421	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-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	95	7183898671088464	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-0	1537	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1537	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	90	7183906297715575	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-0	1459	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1459	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	91	7183906549250775	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-0	1501	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1501	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	89	7183906819919325	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
 89	2062	7183906839669855	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	db0c627bbb247e94
-2062	2210	7183906841113397	coral_renderer/coral_renderer.exe	1a0c68274d1f4cc0
-0	1497	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1497	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	90	7183907096425824	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
-5	98	7183907235041604	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-1	1575	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-1	1575	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	96	7183908407525624	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
-0	1437	0	coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-0	1437	0	E:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	66424d61a55ca866
-4	90	7183908676282737	E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	f376e2cf516c4f9c
+13	1418	7183896909334047	coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj	66bbab00cb591c37
+4739	4785	7183022367622250	third_party/libvkbootstrap.a	c71ed427a7b8907
+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
+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
+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
+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	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

+ 4 - 0
build/release/CMakeFiles/clion-Release-log.txt

@@ -7,6 +7,10 @@
 -- E:/Game Development/Visual Studio Solutions/Coral3D/shaders/simple_shader.frag
 -- BUILDING SHADER
 -- E:/Game Development/Visual Studio Solutions/Coral3D/shaders/simple_shader.vert
+-- BUILDING SHADER
+-- E:/Game Development/Visual Studio Solutions/Coral3D/shaders/skybox.frag
+-- BUILDING SHADER
+-- E:/Game Development/Visual Studio Solutions/Coral3D/shaders/skybox.vert
 -- Using Win32 for window creation
 -- Configuring done (0.1s)
 -- Generating done (0.0s)

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

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

BIN
build/release/assets/shaders/compiled/simple_shader.frag.spv


BIN
build/release/assets/shaders/compiled/simple_shader.vert.spv


+ 28 - 3
build/release/build.ninja

@@ -245,6 +245,13 @@ build coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj: CXX_CO
   OBJECT_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
   OBJECT_FILE_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
 
+build coral_renderer/CMakeFiles/coral_renderer.dir/skybox_system.cpp.obj: CXX_COMPILER__coral_renderer_unscanned_Release E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/coral_renderer/skybox_system.cpp || cmake_object_order_depends_target_coral_renderer
+  DEP_FILE = coral_renderer\CMakeFiles\coral_renderer.dir\skybox_system.cpp.obj.d
+  FLAGS = -O3 -DNDEBUG -std=gnu++23 -fdiagnostics-color=always -Wall -Wextra -Wpedantic -Werror
+  INCLUDES = -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/GLFW/include" -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/glm" -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/vkbootstrap" -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/tinyobjloader" -I"E:/Game Development/Visual Studio Solutions/Coral3D/third_party/tinygltf" -isystem C:/VulkanSDK/1.3.250.0/Include -isystem "E:/Game Development/Visual Studio Solutions/Coral3D/third_party/vma" -isystem "E:/Game Development/Visual Studio Solutions/Coral3D/third_party/stb_image"
+  OBJECT_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
+  OBJECT_FILE_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
+
 
 # =============================================================================
 # Link build statements for EXECUTABLE target coral_renderer
@@ -253,7 +260,7 @@ build coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj: CXX_CO
 #############################################
 # Link the executable coral_renderer\coral_renderer.exe
 
-build coral_renderer/coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_Release coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_utils.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj | C$:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib third_party/GLFW/src/libglfw3.a third_party/libvkbootstrap.a third_party/libtinyobjloader.a C$:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib || coral_renderer/Shaders third_party/GLFW/src/libglfw3.a third_party/libtinyobjloader.a third_party/libvkbootstrap.a
+build coral_renderer/coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_Release coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_utils.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/point_light_system.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/coral_cubemap.cpp.obj coral_renderer/CMakeFiles/coral_renderer.dir/skybox_system.cpp.obj | C$:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib third_party/GLFW/src/libglfw3.a third_party/libvkbootstrap.a third_party/libtinyobjloader.a C$:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib || coral_renderer/Shaders third_party/GLFW/src/libglfw3.a third_party/libtinyobjloader.a third_party/libvkbootstrap.a
   FLAGS = -O3 -DNDEBUG
   LINK_LIBRARIES = C:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib  third_party/GLFW/src/libglfw3.a  third_party/libvkbootstrap.a  third_party/libtinyobjloader.a  C:/VulkanSDK/1.3.250.0/Lib/vulkan-1.lib  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
   OBJECT_DIR = coral_renderer\CMakeFiles\coral_renderer.dir
@@ -267,7 +274,7 @@ build coral_renderer/coral_renderer.exe: CXX_EXECUTABLE_LINKER__coral_renderer_R
 #############################################
 # Utility command for Shaders
 
-build coral_renderer/Shaders: phony coral_renderer/CMakeFiles/Shaders E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv
+build coral_renderer/Shaders: phony coral_renderer/CMakeFiles/Shaders E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.vert.spv
 
 
 #############################################
@@ -344,7 +351,7 @@ build coral_renderer/install/strip: phony coral_renderer/CMakeFiles/install/stri
 #############################################
 # Phony custom command for coral_renderer\CMakeFiles\Shaders
 
-build coral_renderer/CMakeFiles/Shaders | ${cmake_ninja_workdir}coral_renderer/CMakeFiles/Shaders: phony E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv
+build coral_renderer/CMakeFiles/Shaders | ${cmake_ninja_workdir}coral_renderer/CMakeFiles/Shaders: phony E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/point_light.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.frag.spv E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.vert.spv
 
 
 #############################################
@@ -383,6 +390,24 @@ build E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/s
   restat = 1
 
 
+#############################################
+# Custom command for E:\Game Development\Visual Studio Solutions\Coral3D\shaders\compiled\skybox.frag.spv
+
+build E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.frag.spv: CUSTOM_COMMAND E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/skybox.frag
+  COMMAND = cmd.exe /C "cd /D "E:\Game Development\Visual Studio Solutions\Coral3D\build\release\coral_renderer" && "C:\Program Files\JetBrains\CLion 2023.2\bin\cmake\win\x64\bin\cmake.exe" -E make_directory "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/" && C:\VulkanSDK\1.3.250.0\Bin\glslangValidator.exe -V "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/skybox.frag" -o "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.frag.spv""
+  DESC = Generating E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.frag.spv
+  restat = 1
+
+
+#############################################
+# Custom command for E:\Game Development\Visual Studio Solutions\Coral3D\shaders\compiled\skybox.vert.spv
+
+build E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/compiled/skybox.vert.spv: CUSTOM_COMMAND E$:/Game$ Development/Visual$ Studio$ Solutions/Coral3D/shaders/skybox.vert
+  COMMAND = cmd.exe /C "cd /D "E:\Game Development\Visual Studio Solutions\Coral3D\build\release\coral_renderer" && "C:\Program Files\JetBrains\CLion 2023.2\bin\cmake\win\x64\bin\cmake.exe" -E make_directory "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/" && C:\VulkanSDK\1.3.250.0\Bin\glslangValidator.exe -V "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/skybox.vert" -o "E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv""
+  DESC = Generating E:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/skybox.vert.spv
+  restat = 1
+
+
 #############################################
 # Custom command for coral_renderer\CMakeFiles\copy_assets
 

+ 2 - 0
coral_renderer/CMakeLists.txt

@@ -36,6 +36,8 @@ add_executable(coral_renderer
         "point_light_system.h"
         "coral_cubemap.cpp"
         "coral_cubemap.h"
+        skybox_system.cpp
+        skybox_system.h
 )
 
 if(MSVC)

+ 1 - 2
coral_renderer/coral_mesh.cpp

@@ -417,7 +417,7 @@ std::unique_ptr<coral_mesh> coral_mesh::create_mesh_from_file(coral_device& devi
 }
 
 void coral_mesh::load_materials(coral_descriptor_set_layout& material_set_layout,
-                                coral_descriptor_pool& material_set_pool, VkDescriptorImageInfo cubemap_descriptor)
+                                coral_descriptor_pool& material_set_pool)
 {
     for(auto& material : materials_)
     {
@@ -427,7 +427,6 @@ void coral_mesh::load_materials(coral_descriptor_set_layout& material_set_layout
         coral_descriptor_writer(material_set_layout, material_set_pool)
                 .write_image(0, &color_desc)
                 .write_image(1, &normal_desc)
-                .write_image(2, &cubemap_descriptor)
                 .build(material.descriptor_set);
     }
 }

+ 1 - 1
coral_renderer/coral_mesh.h

@@ -124,7 +124,7 @@ namespace coral_3d
 		static std::unique_ptr<coral_mesh> create_mesh_from_file(coral_device& device, const std::string& file_path, coral_gameobject* parent);
 
         void load_materials(coral_descriptor_set_layout& material_set_layout,
-                            coral_descriptor_pool& material_set_pool, VkDescriptorImageInfo cubemap_descriptor);
+                            coral_descriptor_pool& material_set_pool);
         void create_pipelines(
                 const std::string &vert_file_path,
                 const std::string &frag_file_path,

+ 41 - 30
coral_renderer/first_app.cpp

@@ -2,11 +2,11 @@
 
 #include "render_system.h"
 #include "point_light_system.h"
+#include "skybox_system.h"
 #include "coral_camera.h"
 #include "coral_buffer.h"
 
 // STD
-#include <array>
 #include <chrono>
 
 #include "vk_initializers.h"
@@ -39,42 +39,36 @@ void first_app::run()
     global_ubo.map();
 
     // Set 0: Global descriptor set (Scene data)
-    auto global_set_layout = coral_descriptor_set_layout::Builder(device_)
+    global_set_layout_ = coral_descriptor_set_layout::Builder(device_)
 		.add_binding(0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_FRAGMENT_BIT)
+        .add_binding(1, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_SHADER_STAGE_FRAGMENT_BIT)
         .build();
 
-    // Write to global descriptor (Scene data)
-    std::vector<VkDescriptorSet> global_descriptor_sets{coral_swapchain::MAX_FRAMES_IN_FLIGHT};
-    for (size_t i = 0; i < global_descriptor_sets.size(); i++)
-    {
-        auto buffer_info = global_ubo.descriptor_info_index(i);
-
-        coral_descriptor_writer(*global_set_layout, *descriptor_pool_)
-                .write_buffer(0, &buffer_info)
-                .build(global_descriptor_sets[i]);
-    }
 
     // Set 1: Material descriptor set
     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(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)
             .build();
 
     // Combined descriptor set layouts
     std::vector<VkDescriptorSetLayout> desc_set_layouts
     {
-        global_set_layout->get_descriptor_set_layout(),
+        global_set_layout_->get_descriptor_set_layout(),
         material_set_layout->get_descriptor_set_layout()
     };
 
     // RENDER SYSTEM
     render_system render_system{device_, desc_set_layouts};
-    load_gameobjects(*material_set_layout, render_system.pipeline_layout());
+    load_gameobjects(*material_set_layout, render_system.pipeline_layout(), global_ubo);
 
     // POINT LIGHT SYSTEM
+    desc_set_layouts.pop_back();
     point_light_system point_light_system{device_, renderer_.get_swapchain_render_pass(), desc_set_layouts};
 
+    // SKYBOX SYSTEM
+    skybox_system skybox_system{device_, renderer_.get_swapchain_render_pass(), desc_set_layouts};
+
     // CAMERA
     coral_camera camera{ {0.f, 0.f, 3.f} };
     camera.set_view_direction(camera.get_position(), {0.f, 0.f, -1.f});
@@ -104,7 +98,7 @@ void first_app::run()
                 frame_time,
                 command_buffer,
                 camera,
-                global_descriptor_sets[frame_index],
+                global_descriptor_sets_[frame_index],
                 gameobjects_
             };
 
@@ -121,6 +115,7 @@ void first_app::run()
 			renderer_.begin_swapchain_render_pass(command_buffer);
 			render_system.render_gameobjects(frame_info);
             point_light_system.render(frame_info);
+            skybox_system.render(frame_info);
 			renderer_.end_swapchain_render_pass(command_buffer);
 			renderer_.end_frame();
 		}
@@ -129,28 +124,20 @@ void first_app::run()
 	vkDeviceWaitIdle(device_.device());
 }
 
-void first_app::load_gameobjects(coral_descriptor_set_layout& material_set_layout, VkPipelineLayout pipeline_layout)
+void first_app::load_gameobjects(coral_descriptor_set_layout& material_set_layout, VkPipelineLayout pipeline_layout,
+                                 coral_buffer& global_ubo)
 {
-    // MESHES
+    // GAMEOBJECTS
     auto sponza_scene{std::make_shared<coral_gameobject>(coral_gameobject::create_gameobject()) };
 
+    // MESHES
     std::shared_ptr<coral_mesh> sponza_mesh
     {
         coral_mesh::create_mesh_from_file(device_,"assets/meshes/Helmet/Scene.gltf", sponza_scene.get())
     };
 
-    std::vector<std::string> file_names
-            {
-                    "assets/textures/cubemap/posx.jpg",
-                    "assets/textures/cubemap/negx.jpg",
-                    "assets/textures/cubemap/negy.jpg",
-                    "assets/textures/cubemap/posy.jpg",
-                    "assets/textures/cubemap/posz.jpg",
-                    "assets/textures/cubemap/negz.jpg"
-            };
-    cubemap_.init(file_names,true, true);
-
-    sponza_mesh->load_materials(material_set_layout, *descriptor_pool_, cubemap_.get_descriptor_image_info());
+    // CREATE MESH MATERIALS AND PIPELINES
+    sponza_mesh->load_materials(material_set_layout, *descriptor_pool_);
     sponza_mesh->create_pipelines(
             "assets/shaders/simple_shader.vert.spv",
             "assets/shaders/simple_shader.frag.spv",
@@ -180,4 +167,28 @@ void first_app::load_gameobjects(coral_descriptor_set_layout& material_set_layou
     point_light = std::make_shared<coral_gameobject>(coral_gameobject::create_point_light(1.f, 0.1f, {1.f, 0.2f, 1.f}));
     point_light->transform_.translation = glm::vec3(4.f, 0.f, 0.f);
     gameobjects_.emplace(point_light->get_id(), point_light);
+
+    // SKYBOX
+    std::vector<std::string> file_names
+    {
+        "assets/textures/cubemap/posx.jpg",
+        "assets/textures/cubemap/negx.jpg",
+        "assets/textures/cubemap/negy.jpg",
+        "assets/textures/cubemap/posy.jpg",
+        "assets/textures/cubemap/posz.jpg",
+        "assets/textures/cubemap/negz.jpg"
+    };
+    cubemap_.init(file_names,true, true);
+
+    // Write global UBO
+    for (size_t i = 0; i < global_descriptor_sets_.size(); i++)
+    {
+        auto buffer_info = global_ubo.descriptor_info_index(i);
+        auto skybox_info =  cubemap_.get_descriptor_image_info();
+
+        coral_descriptor_writer(*global_set_layout_, *descriptor_pool_)
+                .write_buffer(0, &buffer_info)
+                .write_image(1, &skybox_info)
+                .build(global_descriptor_sets_[i]);
+    }
 }

+ 7 - 1
coral_renderer/first_app.h

@@ -28,7 +28,8 @@ namespace coral_3d
 		void run();
 
 	private:
-		void load_gameobjects(coral_descriptor_set_layout& material_set_layout, VkPipelineLayout pipeline_layout);
+		void load_gameobjects(coral_descriptor_set_layout& material_set_layout, VkPipelineLayout pipeline_layout,
+                              coral_buffer& global_ubo);
 
 		coral_window window_{ WIDTH, HEIGHT, "Coral Renderer" };
 		coral_device device_{ window_ };
@@ -37,6 +38,11 @@ namespace coral_3d
         coral_cubemap cubemap_;
 
 		std::unique_ptr<coral_descriptor_pool> descriptor_pool_{};
+
+        // GLOBAL DESCRIPTOR SETS
+        std::vector<VkDescriptorSet> global_descriptor_sets_{coral_swapchain::MAX_FRAMES_IN_FLIGHT};
+        std::unique_ptr<coral_descriptor_set_layout> global_set_layout_;
+
 		coral_gameobject::Map gameobjects_;
 	};
 }

+ 1 - 1
coral_renderer/point_light_system.cpp

@@ -89,7 +89,7 @@ void point_light_system::create_pipeline_layout(coral_device &device, std::vecto
     layout_info.pSetLayouts = desc_set_layouts.data();
 
     if (vkCreatePipelineLayout(device.device(), &layout_info, nullptr, &pipeline_layout_) != VK_SUCCESS)
-        throw std::runtime_error("ERROR! coral_pipeline::create_pipeline_layout() >> Failed to create pipeline layout!");
+        throw std::runtime_error("ERROR! point_light_system::create_pipeline_layout() >> Failed to create pipeline layout!");
 }
 
 void point_light_system::create_pipeline(VkRenderPass render_pass)

+ 70 - 0
coral_renderer/skybox_system.cpp

@@ -0,0 +1,70 @@
+#include "skybox_system.h"
+#include "vk_initializers.h"
+
+namespace coral_3d
+{
+
+    skybox_system::skybox_system(coral_device& device, VkRenderPass render_pass,  std::vector<VkDescriptorSetLayout>& desc_set_layouts)
+            : device_{device}
+    {
+        create_pipeline_layout(device_, desc_set_layouts);
+        create_pipeline(render_pass);
+    }
+
+    skybox_system::~skybox_system()
+    {
+        vkDestroyPipelineLayout(device_.device(), pipeline_layout_, nullptr);
+    }
+
+
+    void skybox_system::render(FrameInfo& frame_info)
+    {
+        pipeline_->bind(frame_info.command_buffer);
+
+        vkCmdBindDescriptorSets(
+                frame_info.command_buffer,
+                VK_PIPELINE_BIND_POINT_GRAPHICS,
+                pipeline_layout_,
+                0, 1,
+                &frame_info.global_descriptor_set,
+                0, nullptr
+        );
+
+        for(auto& kv: frame_info.gameobjects)
+        {
+            auto &obj = kv.second;
+            if (obj->point_light_ == nullptr) continue;
+
+            vkCmdDraw(frame_info.command_buffer, 36, 1, 0, 0);
+        }
+    }
+
+    void skybox_system::create_pipeline_layout(coral_device &device, std::vector<VkDescriptorSetLayout>& desc_set_layouts)
+    {
+        VkPipelineLayoutCreateInfo layout_info{ vkinit::pipeline_layout_ci() };
+        layout_info.pushConstantRangeCount = 0;
+        layout_info.pPushConstantRanges = nullptr;
+        layout_info.setLayoutCount = static_cast<uint32_t>(desc_set_layouts.size());
+        layout_info.pSetLayouts = desc_set_layouts.data();
+
+        if (vkCreatePipelineLayout(device.device(), &layout_info, nullptr, &pipeline_layout_) != VK_SUCCESS)
+            throw std::runtime_error("ERROR! skybox_system::create_pipeline_layout() >> Failed to create pipeline layout!");
+    }
+
+    void skybox_system::create_pipeline(VkRenderPass render_pass)
+    {
+        PipelineConfigInfo config_info{};
+        coral_pipeline::default_pipeline_config_info(config_info);
+        config_info.binding_descriptions.clear();
+        config_info.attribute_descriptions.clear();
+        config_info.render_pass = render_pass;
+        config_info.pipeline_layout = pipeline_layout_;
+
+        pipeline_ = std::make_unique<coral_pipeline>(
+                device_,
+                "assets/shaders/skybox.vert.spv",
+                "assets/shaders/skybox.frag.spv",
+                config_info
+        );
+    }
+} // coral_3d

+ 45 - 0
coral_renderer/skybox_system.h

@@ -0,0 +1,45 @@
+#ifndef SKYBOX_SYSTEM_H
+#define SKYBOX_SYSTEM_H
+
+// CORAL
+#include "coral_camera.h"
+#include "coral_device.h"
+#include "coral_pipeline.h"
+#include "coral_gameobject.h"
+#include "coral_frame_info.h"
+#include "coral_descriptors.h"
+
+// STD
+#include <memory>
+#include <vector>
+
+namespace coral_3d
+{
+
+    class skybox_system final
+    {
+    public:
+        skybox_system(coral_device& device, VkRenderPass render_pass, std::vector<VkDescriptorSetLayout>& desc_set_layouts);
+        ~skybox_system();
+
+        skybox_system(const skybox_system&) = delete;
+        skybox_system& operator=(const skybox_system&) = delete;
+
+        void render(FrameInfo& frame_info);
+
+        VkPipelineLayout pipeline_layout() const { return pipeline_layout_; }
+        VkPipeline pipeline() const { return pipeline_->pipeline(); }
+
+    private:
+        void create_pipeline_layout(coral_device &device, std::vector<VkDescriptorSetLayout>& desc_set_layouts);
+        void create_pipeline(VkRenderPass render_pass);
+
+        coral_device& device_;
+
+        std::unique_ptr<coral_pipeline> pipeline_;
+        VkPipelineLayout pipeline_layout_;
+    };
+
+} // coral_3d
+
+#endif // SKYBOX_SYSTEM_H

BIN
shaders/compiled/simple_shader.frag.spv


BIN
shaders/compiled/skybox.frag.spv


BIN
shaders/compiled/skybox.vert.spv


+ 20 - 20
shaders/simple_shader.frag

@@ -1,22 +1,5 @@
 #version 450
 
-// SAMPLERS
-layout (set = 1, binding = 0) uniform sampler2D samplerColorMap;
-layout (set = 1, binding = 1) uniform sampler2D samplerNormalMap;
-layout (set = 1, binding = 2) uniform samplerCube samplerCubeMap;
-
-// CONSTANTS
-layout (constant_id = 0) const bool ALPHA_MASK = false;
-layout (constant_id = 1) const float ALPHA_MASK_CUTOFF = 0.0f;
-
-// FRAGMENT INPUT
-layout (location = 0) in struct FS_IN
-{
-	vec3 fragPos;
-	vec2 texcoord;
-	mat3 TBN;
-} fs_in;
-
 struct PointLight
 {
 	vec4 position; // w is radius
@@ -25,20 +8,37 @@ struct PointLight
 
 layout (set = 0, binding = 0) uniform GlobalUBO
 {
-	// MATRICES
+// MATRICES
 	mat4 view;
 	mat4 viewInverse;
 	mat4 viewProjection;
 
-	// LIGHTING
+// LIGHTING
 	vec4 globalLightDirection;
 	vec4 ambientLighting;
 
-	// POINT LIGHTS
+// POINT LIGHTS
 	PointLight pointLights[8];
 	int numLights;
 } ubo;
 
+// SAMPLERS
+layout (set = 0, binding = 1) uniform samplerCube samplerCubeMap;
+layout (set = 1, binding = 0) uniform sampler2D samplerColorMap;
+layout (set = 1, binding = 1) uniform sampler2D samplerNormalMap;
+
+// CONSTANTS
+layout (constant_id = 0) const bool ALPHA_MASK = false;
+layout (constant_id = 1) const float ALPHA_MASK_CUTOFF = 0.0f;
+
+// FRAGMENT INPUT
+layout (location = 0) in struct FS_IN
+{
+	vec3 fragPos;
+	vec2 texcoord;
+	mat3 TBN;
+} fs_in;
+
 // OUT COLOR
 layout (location = 0) out vec4 outFragColor;
 

+ 35 - 0
shaders/skybox.frag

@@ -0,0 +1,35 @@
+#version 450
+
+struct PointLight
+{
+    vec4 position; // w is radius
+    vec4 color; // w is intensity
+};
+
+layout (set = 0, binding = 0) uniform GlobalUBO
+{
+// MATRICES
+    mat4 view;
+    mat4 viewInverse;
+    mat4 viewProjection;
+
+// LIGHTING
+    vec4 globalLightDirection;
+    vec4 ambientLighting;
+
+// POINT LIGHTS
+    PointLight pointLights[8];
+    int numLights;
+} ubo;
+
+// SAMPLERS
+layout (set = 0, binding = 1) uniform samplerCube samplerCubeMap;
+
+layout(location = 0) in vec3 inTexCoord;
+layout(location = 0) out vec4 outFragColor;
+
+
+void main()
+{
+    outFragColor = texture(samplerCubeMap, inTexCoord);
+}

+ 78 - 0
shaders/skybox.vert

@@ -0,0 +1,78 @@
+#version 450
+
+const vec3 VERTS[36] = vec3[]
+(
+vec3(-1.0f,  1.0f, -1.0f),
+vec3(-1.0f, -1.0f, -1.0f),
+vec3(1.0f, -1.0f, -1.0f),
+vec3(1.0f, -1.0f, -1.0f),
+vec3(1.0f,  1.0f, -1.0f),
+vec3(-1.0f,  1.0f, -1.0f),
+
+vec3(-1.0f, -1.0f,  1.0f),
+vec3(-1.0f, -1.0f, -1.0f),
+vec3(-1.0f,  1.0f, -1.0f),
+vec3(-1.0f,  1.0f, -1.0f),
+vec3(-1.0f,  1.0f,  1.0f),
+vec3(-1.0f, -1.0f,  1.0f),
+
+vec3(1.0f, -1.0f, -1.0f),
+vec3(1.0f, -1.0f,  1.0f),
+vec3(1.0f,  1.0f,  1.0f),
+vec3(1.0f,  1.0f,  1.0f),
+vec3(1.0f,  1.0f, -1.0f),
+vec3(1.0f, -1.0f, -1.0f),
+
+vec3(-1.0f, -1.0f,  1.0f),
+vec3(-1.0f,  1.0f,  1.0f),
+vec3(1.0f,  1.0f,  1.0f),
+vec3(1.0f,  1.0f,  1.0f),
+vec3(1.0f, -1.0f,  1.0f),
+vec3(-1.0f, -1.0f,  1.0f),
+
+vec3(-1.0f,  1.0f, -1.0f),
+vec3(1.0f,  1.0f, -1.0f),
+vec3(1.0f,  1.0f,  1.0f),
+vec3(1.0f,  1.0f,  1.0f),
+vec3(-1.0f,  1.0f,  1.0f),
+vec3(-1.0f,  1.0f, -1.0f),
+
+vec3(-1.0f, -1.0f, -1.0f),
+vec3(-1.0f, -1.0f,  1.0f),
+vec3(1.0f, -1.0f, -1.0f),
+vec3(1.0f, -1.0f, -1.0f),
+vec3(-1.0f, -1.0f,  1.0f),
+vec3(1.0f, -1.0f,  1.0f)
+);
+
+struct PointLight
+{
+    vec4 position; // w is radius
+    vec4 color; // w is intensity
+};
+
+layout (set = 0, binding = 0) uniform GlobalUBO
+{
+// MATRICES
+    mat4 view;
+    mat4 viewInverse;
+    mat4 viewProjection;
+
+// LIGHTING
+    vec4 globalLightDirection;
+    vec4 ambientLighting;
+
+// POINT LIGHTS
+    PointLight pointLights[8];
+    int numLights;
+} ubo;
+
+layout(location = 0) out vec3 outTexCoord;
+
+void main()
+{
+    outTexCoord = VERTS[gl_VertexIndex];
+    outTexCoord *= 100.f;
+    gl_Position = ubo.viewProjection * vec4(outTexCoord, 1.f);
+    outTexCoord.xy *= -1.f;
+}