Browse Source

Tidied buffers, shaders and app class

Removed redundant variables from the fragment shader's UBO.

Moved pipeline layout creation from the app class to the coral_pipeline class, which makes way more sense.
Jef Belmans 2 years ago
parent
commit
8152a5f9d6

+ 37 - 30
.idea/workspace.xml

@@ -33,6 +33,15 @@
   <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 beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" 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/Testing/Temporary/LastTest.log" beforeDir="false" afterPath="$PROJECT_DIR$/build/release/Testing/Temporary/LastTest.log" 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_pipeline.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/coral_pipeline.cpp" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/coral_renderer/coral_pipeline.h" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/coral_pipeline.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/vk_types.h" beforeDir="false" afterPath="$PROJECT_DIR$/coral_renderer/vk_types.h" 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.vert.spv" beforeDir="false" afterPath="$PROJECT_DIR$/shaders/compiled/simple_shader.vert.spv" afterDir="false" />
@@ -91,38 +100,33 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <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": "C:/Game Development/Visual Studio Solutions/Coral3D",
-    "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": "CMakeSettings",
-    "structure.view.defaults.are.configured": "true",
-    "vue.rearranger.settings.migration": "true"
+  <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;main&quot;,
+    &quot;ignore.virus.scanning.warn.message&quot;: &quot;true&quot;,
+    &quot;last_opened_file_path&quot;: &quot;C:/Game Development/Visual Studio Solutions/Coral3D&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;CMakeSettings&quot;,
+    &quot;structure.view.defaults.are.configured&quot;: &quot;true&quot;,
+    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
   }
-}]]></component>
+}</component>
   <component name="RunManager">
-    <configuration default="true" type="CLionExternalRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" PASS_PARENT_ENVS_2="true">
-      <method v="2">
-        <option name="CLION.EXTERNAL.BUILD" enabled="true" />
-      </method>
-    </configuration>
     <configuration name="coral_renderer" type="CMakeRunConfiguration" factoryName="Application" REDIRECT_INPUT="false" ELEVATE="false" USE_EXTERNAL_CONSOLE="false" EMULATE_TERMINAL="false" PASS_PARENT_ENVS_2="true" PROJECT_NAME="Coral3D" TARGET_NAME="coral_renderer" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="Coral3D" RUN_TARGET_NAME="coral_renderer">
       <method v="2">
         <option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" />
@@ -187,6 +191,9 @@
       <workItem from="1695623566979" duration="1109000" />
       <workItem from="1695639582708" duration="227000" />
       <workItem from="1695666874269" duration="9107000" />
+      <workItem from="1695709931830" duration="80000" />
+      <workItem from="1695718760823" duration="144000" />
+      <workItem from="1695742516332" duration="4455000" />
     </task>
     <task id="LOCAL-00001" summary="Have I forgotten how to git?">
       <option name="closed" value="true" />

BIN
build/release/.ninja_deps


+ 39 - 86
build/release/.ninja_log

@@ -1,21 +1,21 @@
 # ninja log v5
 62	3066	7173267986265073	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_thread.c.obj	638ad3ad06125fe4
-12	3486	7173786387012186	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f8abc8df015ebae9
+108	2841	7174514553732907	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f8abc8df015ebae9
 161	3177	7173267987503143	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_monitor.c.obj	cbd51a1d51394156
 15	3137	7173267987040439	third_party/GLFW/src/CMakeFiles/glfw.dir/init.c.obj	1580c17bd29c94e
 3066	3958	7173267995225685	coral_renderer/CMakeFiles/coral_renderer.dir/coral_window.cpp.obj	8753104f895782ad
-3389	4556	7173268001200591	coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj	9eab96ec723d02da
+185	1342	7173788657540377	coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj	9eab96ec723d02da
 45	3228	7173267987932309	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_init.c.obj	5a54e1de51f0e2de
 58	3058	7173267986265073	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_time.c.obj	9f6825bfd5c5deb7
-21407	21683	7173786568962110	coral_renderer/coral_renderer.exe	aaf4dcad0f31df8b
+20429	20608	7174514731376196	coral_renderer/coral_renderer.exe	aaf4dcad0f31df8b
 4670	6317	7173268018912580	third_party/GLFW/src/CMakeFiles/glfw.dir/osmesa_context.c.obj	bd687e5f061fc7e9
 49	3220	7173267987837190	third_party/GLFW/src/CMakeFiles/glfw.dir/vulkan.c.obj	e890ec9a67469472
-82	3466	7173786386815060	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	abb6eb7e993f8b7a
+178	2843	7174514553758154	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	abb6eb7e993f8b7a
 29	3389	7173267988891605	third_party/GLFW/src/CMakeFiles/glfw.dir/monitor.c.obj	f218f9e006590936
 19	3206	7173267987727115	third_party/GLFW/src/CMakeFiles/glfw.dir/context.c.obj	5d34e7ae8ce089ae
 4557	6336	7173268018947817	third_party/GLFW/src/CMakeFiles/glfw.dir/egl_context.c.obj	134a12be6cc8b6e1
 39	3236	7173267988012328	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_joystick.c.obj	60340a15c23596ef
-20	2094	7173786372309362	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	4952414d7314413d
+125	1610	7174514541389804	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	4952414d7314413d
 67	3801	7173267993641860	third_party/GLFW/src/CMakeFiles/glfw.dir/win32_window.c.obj	9fdad4d28de63534
 8	373	7164878622978046	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.frag.spv	d2b062603ad04cc6
 34	3307	7173267988517739	third_party/GLFW/src/CMakeFiles/glfw.dir/window.c.obj	dea033b667ff06d5
@@ -23,90 +23,43 @@
 54	3326	7173267988850919	third_party/GLFW/src/CMakeFiles/glfw.dir/wgl_context.c.obj	592ea253d8e32e8e
 24	3589	7173267991597025	third_party/GLFW/src/CMakeFiles/glfw.dir/input.c.obj	3d5a7ad29b1764da
 6336	6469	7173268020384142	third_party/GLFW/src/libglfw3.a	5eea7d88e6f39701
-47	3142	7173786383573899	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	4566d396f99878a8
-60	3044	7173786382508709	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	111b61812a9f338a
-41	3082	7173786382850162	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	8027bda10104d9d7
-53	3579	7173786387934038	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	f8af26d5d71a0363
-16	3475	7173786386901605	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	c5b2ec31ce3428df
-0	2717	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-36	21407	7173786566223814	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	1035a6b67fd24167
+135	2469	7174514549991745	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	4566d396f99878a8
+171	2414	7174514549450723	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	111b61812a9f338a
+146	2667	7174514551987449	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	8027bda10104d9d7
+152	2735	7174514552665506	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	f8af26d5d71a0363
+112	2961	7174514554931280	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	c5b2ec31ce3428df
+0	3307	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+140	20429	7174514729599029	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	1035a6b67fd24167
 87	3107	7165258684040000	coral_renderer/CMakeFiles/coral_renderer.dir/coral_material.cpp.obj	432ccaf3a8cd54b8
-30	3739	7173786389549519	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	50b94fc5070ab14a
-5	109	7173785855947888	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-73	3199	7173786384140398	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	5d5ae4c03e37cd7e
+130	3078	7174514556113527	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	50b94fc5070ab14a
+11	119	7174471496093311	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
+165	2663	7174514551947415	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	5d5ae4c03e37cd7e
 27	9114	7164878711076340	third_party/CMakeFiles/vkbootstrap.dir/vkbootstrap/VkBootstrap.cpp.obj	1aa6e481af04158f
-24	4180	7173786393960810	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	29c0b1708d5c5e4b
-6	4589	7173786398057643	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	d432260f2316bfd6
+120	3443	7174514559767116	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	29c0b1708d5c5e4b
+116	3811	7174514563438482	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	d432260f2316bfd6
 26	260	7164878784102662	third_party/libvkbootstrap.a	3c2f59e57be524c7
-66	6134	7173786413504861	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	6a6a15321e4b334c
-30	885	7173788643088345	build.ninja	fa936e3b47cbade3
-0	2717	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+158	5524	7174514580552188	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	6a6a15321e4b334c
+3	552	7173788643088345	build.ninja	fa936e3b47cbade3
+0	3307	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
 21	8484	7164878704596052	third_party/CMakeFiles/tinyobjloader.dir/tinyobjloader/tiny_obj_loader.cc.obj	bc59412498a9bf65
 32	261	7164878784192681	third_party/libtinyobjloader.a	60b6a54d64599062
 3	398	7164878623288105	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/PosNormCol.vert.spv	a0ba634e53f7a86c
-5	117	7173784897464214	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	dd4b741ae13c35f5
-3	552	7173788643088345	build.ninja	fa936e3b47cbade3
-10	118	7173788645339799	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	dd4b741ae13c35f5
-5	119	7173788645339799	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-185	1342	7173788657540377	coral_renderer/CMakeFiles/coral_renderer.dir/coral_camera.cpp.obj	9eab96ec723d02da
-136	1585	7173788660025591	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	4952414d7314413d
-192	2510	7173788669217182	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	111b61812a9f338a
-148	2551	7173788669703270	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	4566d396f99878a8
-165	2740	7173788671565724	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	5d5ae4c03e37cd7e
-153	2895	7173788671988649	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	8027bda10104d9d7
-177	2988	7173788673580403	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	f8af26d5d71a0363
-123	2989	7173788673580403	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f8abc8df015ebae9
-131	3303	7173788674788698	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	c5b2ec31ce3428df
-159	3341	7173788677604945	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	50b94fc5070ab14a
-119	3632	7173788680524966	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	29c0b1708d5c5e4b
-1343	3722	7173788681425965	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	abb6eb7e993f8b7a
-127	4053	7173788684747369	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	d432260f2316bfd6
-171	5426	7173788698462354	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	6a6a15321e4b334c
-143	21988	7173788864067654	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	1035a6b67fd24167
-21988	22151	7173788865680061	coral_renderer/coral_renderer.exe	aaf4dcad0f31df8b
-0	3232	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-0	3232	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-18	1581	7173789410678278	coral_renderer/CMakeFiles/coral_renderer.dir/vk_initializers.cpp.obj	4952414d7314413d
-59	2397	7173789418855029	coral_renderer/CMakeFiles/coral_renderer.dir/coral_texture.cpp.obj	111b61812a9f338a
-40	2482	7173789419715897	coral_renderer/CMakeFiles/coral_renderer.dir/coral_renderer.cpp.obj	4566d396f99878a8
-34	2604	7173789420925492	coral_renderer/CMakeFiles/coral_renderer.dir/coral_gameobject.cpp.obj	8027bda10104d9d7
-71	2716	7173789422060045	coral_renderer/CMakeFiles/coral_renderer.dir/coral_frame_info.cpp.obj	5d5ae4c03e37cd7e
-10	2786	7173789422771063	coral_renderer/CMakeFiles/coral_renderer.dir/main.cpp.obj	f8abc8df015ebae9
-78	2828	7173789423177673	coral_renderer/CMakeFiles/coral_renderer.dir/coral_descriptors.cpp.obj	abb6eb7e993f8b7a
-52	2854	7173789423451359	coral_renderer/CMakeFiles/coral_renderer.dir/render_system.cpp.obj	f8af26d5d71a0363
-5	2951	7173789424417766	coral_renderer/CMakeFiles/coral_renderer.dir/coral_pipeline.cpp.obj	c5b2ec31ce3428df
-23	3089	7173789425810267	coral_renderer/CMakeFiles/coral_renderer.dir/coral_swapchain.cpp.obj	50b94fc5070ab14a
-29	3425	7173789429155210	coral_renderer/CMakeFiles/coral_renderer.dir/coral_device.cpp.obj	29c0b1708d5c5e4b
-14	3802	7173789432944519	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	d432260f2316bfd6
-65	5273	7173789447640967	coral_renderer/CMakeFiles/coral_renderer.dir/coral_buffer.cpp.obj	6a6a15321e4b334c
-46	19777	7173789592632898	coral_renderer/CMakeFiles/coral_renderer.dir/coral_mesh.cpp.obj	1035a6b67fd24167
-19777	19939	7173789594270364	coral_renderer/coral_renderer.exe	aaf4dcad0f31df8b
-1	2794	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-1	2794	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-5	110	7173793419580669	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-0	2701	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-0	2701	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-7	127	7173793603021987	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-1	3227	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-1	3227	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-5	108	7173794377205032	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-1	2664	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-1	2664	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-5	112	7173794721856483	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-0	2765	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-0	2765	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-5	112	7173794924841054	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-0	2647	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-0	2647	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-5	114	7173795644972718	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-0	2734	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-0	2734	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-5	120	7173795912380295	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-0	2774	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-0	2774	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-5	105	7173796357897504	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-0	2721	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-0	2721	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-6	111	7173796647578187	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
-0	2718	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
-0	2718	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+5	108	7174514526384583	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.vert.spv	dd4b741ae13c35f5
+0	3332	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+0	3332	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+5	2186	7174514983959857	coral_renderer/CMakeFiles/coral_renderer.dir/first_app.cpp.obj	d432260f2316bfd6
+2186	2363	7174514985689172	coral_renderer/coral_renderer.exe	aaf4dcad0f31df8b
+1	3351	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+1	3351	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+5	105	7174516076797846	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
+0	2612	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+0	2612	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+6	120	7174516461057649	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
+0	2719	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+0	2719	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+5	109	7174516703048676	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
+0	2634	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+0	2634	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+5	112	7174516906561517	C:/Game Development/Visual Studio Solutions/Coral3D/shaders/compiled/simple_shader.frag.spv	c8e05f14162426a5
+2	2675	0	coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85
+2	2675	0	C:/Game Development/Visual Studio Solutions/Coral3D/build/release/coral_renderer/CMakeFiles/copy_assets	6856ffc941de2b85

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

@@ -1,3 +1,3 @@
-Start testing: Sep 25 23:14 Romance Daylight Time
+Start testing: Sep 26 19:14 Romance Daylight Time
 ----------------------------------------------------------
-End testing: Sep 25 23:14 Romance Daylight Time
+End testing: Sep 26 19:14 Romance Daylight Time

+ 11 - 17
coral_renderer/coral_mesh.cpp

@@ -70,24 +70,16 @@ VertexInputDescription Vertex::get_vert_desc()
     tangent_attrib.format = VK_FORMAT_R32G32B32A32_SFLOAT;
     tangent_attrib.offset = offsetof(Vertex, tangent);
 
-    // Tangent will be stored at Location 3
-    VkVertexInputAttributeDescription bitangent_attrib{};
-    bitangent_attrib.binding = 0;
-    bitangent_attrib.location = 3;
-    bitangent_attrib.format = VK_FORMAT_R32G32B32_SFLOAT;
-    bitangent_attrib.offset = offsetof(Vertex, bitangent);
-
-    // UV will be stored at Location 4
+    // UV will be stored at Location 3
     VkVertexInputAttributeDescription texcoord_attrib{};
     texcoord_attrib.binding = 0;
-    texcoord_attrib.location = 4;
+    texcoord_attrib.location = 3;
     texcoord_attrib.format = VK_FORMAT_R32G32_SFLOAT;
     texcoord_attrib.offset = offsetof(Vertex, uv);
 
     desc.attributes.emplace_back(position_attrib);
     desc.attributes.emplace_back(normal_attrib);
     desc.attributes.emplace_back(tangent_attrib);
-    desc.attributes.emplace_back(bitangent_attrib);
     desc.attributes.emplace_back(texcoord_attrib);
 
     return desc;
@@ -127,6 +119,8 @@ bool coral_mesh::Builder::load_from_gltf(coral_device& device, const std::string
 
     // CALCULATE TANGENTS & BITANGENTS
 #ifdef CALC_TANGENTS
+    std::vector<glm::vec3> bitangents{vertices.size()};
+
     for (size_t i = 0; i < indices.size(); i += 3)
     {
         uint32_t i0 = indices[i];
@@ -155,19 +149,19 @@ bool coral_mesh::Builder::load_from_gltf(coral_device& device, const std::string
         vertices[i1].tangent += glm::vec4(tangent, 0.f);
         vertices[i2].tangent += glm::vec4(tangent, 0.f);
 
-        vertices[i0].bitangent += bitangent;
-        vertices[i1].bitangent += bitangent;
-        vertices[i2].bitangent += bitangent;
+        bitangents[i0] += bitangent;
+        bitangents[i1] += bitangent;
+        bitangents[i2] += bitangent;
     }
 
     // ORTHONORMALIZE TANGENT AND CALCULATE HANDEDNESS
     for(size_t i = 0; i < vertices.size(); i++)
     {
-        const glm::vec3 t = vertices[i].tangent;
-        const glm::vec3& b = vertices[i].bitangent;
+        const glm::vec3& t = vertices[i].tangent;
+        const glm::vec3& b = bitangents[i];
         const glm::vec3& n = vertices[i].normal;
-        vertices[i].tangent = glm::vec4(t - (glm::dot(n, t) * n), 0.f);
-        vertices[i].tangent.w = (glm::dot(glm::cross(n,t), b) < 0.f) ? 1.f : -1.f;
+        vertices[i].tangent = glm::vec4(glm::normalize(glm::orthonormalize(t, n)), 0.f);
+        vertices[i].tangent.w = (glm::dot(glm::cross(t,b), n) > 0.f) ? 1.f : -1.f;
     }
 #endif
     return true;

+ 2 - 6
coral_renderer/coral_mesh.h

@@ -32,7 +32,6 @@ namespace coral_3d
 		glm::vec3 position;
 		glm::vec3 normal;
         glm::vec4 tangent;
-        glm::vec3 bitangent;
 		glm::vec2 uv;
 
 		static VertexInputDescription get_vert_desc();
@@ -42,9 +41,8 @@ namespace coral_3d
 			return
 				position == other.position &&
 				normal == other.normal &&
-				uv == other.uv &&
-				tangent == other.tangent &&
-                bitangent == other.bitangent;
+                tangent == other.tangent &&
+				uv == other.uv;
 		}
 	};
 
@@ -132,8 +130,6 @@ namespace coral_3d
                 VkRenderPass render_pass,
                 VkPipelineLayout pipeline_layout);
 
-        std::vector<Material>& get_materials() { return materials_;}
-
 		void draw(VkCommandBuffer command_buffer, VkPipelineLayout pipeline_layout);
 
 	private:

+ 21 - 1
coral_renderer/coral_pipeline.cpp

@@ -179,4 +179,24 @@ void coral_pipeline::create_shader_module(coral_device& device, const std::vecto
 
 	if(vkCreateShaderModule(device.device(), &create_info, nullptr, shader_module) != VK_SUCCESS)
 		throw std::runtime_error("ERROR! coral_pipeline::create_shader_module() >> Failed to create shader module!");
-}
+}
+
+VkPipelineLayout coral_pipeline::create_pipeline_layout(coral_device &device, std::vector<VkDescriptorSetLayout> desc_set_layouts)
+{
+    VkPushConstantRange push_constant_range{};
+    push_constant_range.stageFlags = VK_SHADER_STAGE_VERTEX_BIT;
+    push_constant_range.offset = 0;
+    push_constant_range.size = sizeof(PushConstant);
+
+    VkPipelineLayoutCreateInfo layout_info{ vkinit::pipeline_layout_ci() };
+    layout_info.pushConstantRangeCount = 1;
+    layout_info.pPushConstantRanges = &push_constant_range;
+    layout_info.setLayoutCount = static_cast<uint32_t>(desc_set_layouts.size());
+    layout_info.pSetLayouts = desc_set_layouts.data();
+
+    VkPipelineLayout pipeline_layout;
+    if (vkCreatePipelineLayout(device.device(), &layout_info, nullptr, &pipeline_layout) != VK_SUCCESS)
+        throw std::runtime_error("ERROR! render_system::create_pipeline_layout() >> Failed to create pipeline layout!");
+
+    return pipeline_layout;
+}

+ 2 - 2
coral_renderer/coral_pipeline.h

@@ -49,7 +49,8 @@ namespace coral_3d
 
 		static void default_pipeline_config_info(PipelineConfigInfo& config_info);
         static std::vector<char> read_file(const std::string& file_path);
-        static void create_shader_module(  coral_device& device, const std::vector<char>& code, VkShaderModule* shader_module);
+        static void create_shader_module(coral_device& device, const std::vector<char>& code, VkShaderModule* shader_module);
+        static VkPipelineLayout create_pipeline_layout(coral_device& device, std::vector<VkDescriptorSetLayout> desc_set_layouts);
 
     private:
 		void create_graphics_pipeline(
@@ -58,7 +59,6 @@ namespace coral_3d
 			const PipelineConfigInfo& config_info
 		);
 
-
 		coral_device& device_;
 		VkPipeline graphics_pipeline_;
 		VkShaderModule vert_shader_module_;

+ 3 - 21
coral_renderer/first_app.cpp

@@ -65,14 +65,15 @@ void first_app::run()
         material_set_layout->get_descriptor_set_layout()
     };
 
-    create_pipeline_layout(desc_set_layouts);
+    pipeline_layout_ = coral_pipeline::create_pipeline_layout(device_, desc_set_layouts);
 
     // RENDER SYSTEM
     render_system render_system{device_, pipeline_layout_};
     load_gameobjects(*material_set_layout);
 
     // CAMERA
-    coral_camera camera{ {0.f, 2.5f, 0.f} };
+    coral_camera camera{ {0.f, 0.f, 3.f} };
+    camera.set_view_direction(camera.get_position(), {0.f, 0.f, -1.f});
 
     auto last_time{ std::chrono::high_resolution_clock::now() };
 	while (!window_.should_close())
@@ -108,7 +109,6 @@ void first_app::run()
             ubo.view = camera.get_view();
             ubo.view_inverse = glm::inverse(camera.get_view());
             ubo.view_projection = camera.get_projection() * camera.get_view();
-            ubo.camera_pos = glm::vec4(camera.get_position(), 0.f);
             global_ubo.write_to_index(&ubo, frame_index);
             global_ubo.flush_index(frame_index);
 
@@ -136,25 +136,7 @@ void first_app::load_gameobjects(coral_descriptor_set_layout& material_set_layou
 
     auto sponza_scene{ coral_gameobject::create_gameobject() };
     sponza_scene.mesh_ = sponza_mesh;
-    sponza_scene.transform_.translation = { 0.f, 0.f, 0.f };
     gameobjects_.emplace(sponza_scene.get_id(), std::move(sponza_scene));
 
 #pragma endregion
-}
-
-void first_app::create_pipeline_layout(std::vector<VkDescriptorSetLayout> desc_set_layouts)
-{
-    VkPushConstantRange push_constant_range{};
-    push_constant_range.stageFlags = VK_SHADER_STAGE_VERTEX_BIT;
-    push_constant_range.offset = 0;
-    push_constant_range.size = sizeof(PushConstant);
-
-    VkPipelineLayoutCreateInfo layout_info{ vkinit::pipeline_layout_ci() };
-    layout_info.pushConstantRangeCount = 1;
-    layout_info.pPushConstantRanges = &push_constant_range;
-    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! render_system::create_pipeline_layout() >> Failed to create pipeline layout!");
 }

+ 0 - 1
coral_renderer/first_app.h

@@ -28,7 +28,6 @@ namespace coral_3d
 
 	private:
 		void load_gameobjects(coral_descriptor_set_layout& material_set_layout);
-        void create_pipeline_layout(std::vector<VkDescriptorSetLayout> desc_set_layouts);
 
 		coral_window window_{ WIDTH, HEIGHT, "Coral Renderer" };
 		coral_device device_{ window_ };

+ 0 - 2
coral_renderer/vk_types.h

@@ -40,8 +40,6 @@ struct GlobalUBO
 
     // GLOBAL LIGHT
     glm::vec4 global_light_direction{ glm::normalize(glm::vec4{ -0.477f, -0.477f, -0.477f, 0.f})}; // w is ignored
-    glm::vec4 ambient_light_color{1.f, .82f, .863f, .01f}; // w is intensity
-    glm::vec4 camera_pos{1.f}; // w is ignored
 };
 
 struct PushConstant

BIN
shaders/compiled/simple_shader.frag.spv


BIN
shaders/compiled/simple_shader.vert.spv


+ 2 - 4
shaders/simple_shader.frag

@@ -13,8 +13,6 @@ layout (location = 0) in struct FS_IN
 {
 	vec3 fragPos;
 	vec3 normal;
-	vec4 tangent;
-	vec3 bitangent;
 	vec2 texcoord;
 	vec3 viewPos;
 	vec3 lightDir;
@@ -41,6 +39,8 @@ vec3 calculate_specular(vec3 V, vec3 L, vec3 N)
 
 	// HALF VECTOR
 	vec3 halfVector = normalize(L + V);
+
+	// Specularity
 	float shininess = 256.f;
 	float specularity = pow(max(dot(N, halfVector), 0.f), shininess);
 
@@ -54,9 +54,7 @@ void main()
 	vec4 color = texture(samplerColorMap, fs_in.texcoord);
 
 	if (ALPHA_MASK)
-	{
 		if (color.a < ALPHA_MASK_CUTOFF) discard;
-	}
 
 	vec3 normal = texture(samplerNormalMap, fs_in.texcoord).rgb;
 	normal = normalize(normal * 2.f - 1.f);

+ 3 - 10
shaders/simple_shader.vert

@@ -3,15 +3,12 @@
 layout (location = 0) in vec3 inPosition;
 layout (location = 1) in vec3 inNormal;
 layout (location = 2) in vec4 inTangent;
-layout (location = 3) in vec3 inBitangent;
-layout (location = 4) in vec2 inTexcoord;
+layout (location = 3) in vec2 inTexcoord;
 
 layout (location = 0) out struct VS_OUT
 {
 	vec3 fragPos;
 	vec3 normal;
-	vec4 tangent;
-	vec3 bitangent;
 	vec2 texcoord;
 	vec3 viewPos;
 	vec3 lightDir;
@@ -26,8 +23,6 @@ layout (set = 0, binding = 0) uniform GlobalUBO
 
 	// GLOBAL LIGHT
 	vec4 globalLightDirection;
-	vec4 ambientLightColor;
-	vec4 cameraPos;
 } ubo;
 
 layout (push_constant) uniform Push
@@ -41,17 +36,15 @@ void main()
 	gl_Position = ubo.viewProjection * worldPos;
 
 	vs_out.normal = inNormal;
-	vs_out.tangent = inTangent;
-	vs_out.bitangent = inBitangent;
 	vs_out.texcoord = inTexcoord;
 
 	vec3 T = normalize(mat3(primitive.model) * inTangent.xyz);
 	vec3 N = normalize(mat3(primitive.model) * inNormal);
-	vec3 B = normalize(mat3(primitive.model) * inBitangent);
+	vec3 B = cross(N, T) * inTangent.w;
 
 	mat3 TBN = transpose(mat3(T, B, N));
 
 	vs_out.fragPos  = TBN * worldPos.xyz;
 	vs_out.lightDir = TBN * ubo.globalLightDirection.xyz;
-	vs_out.viewPos  = TBN * ubo.cameraPos.xyz;
+	vs_out.viewPos  = TBN * ubo.viewInverse[3].xyz;
 }