{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":841460569,"defaultBranch":"main","name":"Vulkan-Course","ownerLogin":"AaronRuizMoraUK","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-08-12T13:01:28.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/76438441?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1725543147.0","currentOid":""},"activityList":{"items":[{"before":"b0bb3e7289d28bf31b9d1aee6d0cd697a53c135a","after":"7dd297fa82601f07c410a65b4f0220dbf91e3ac0","ref":"refs/heads/Lecture28.ModelLoading","pushedAt":"2024-09-08T10:12:58.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Update readme.","shortMessageHtmlLink":"Update readme."}},{"before":"d789607f00c918a516c71989bfdfc0f0b865b714","after":"b435abaab3e111bd6b8327a1c36167fe795352f2","ref":"refs/heads/Lecture21.DynamicUniformBuffers","pushedAt":"2024-09-08T10:10:44.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Update readme.","shortMessageHtmlLink":"Update readme."}},{"before":"4fd52a4010b55565a251e45c6b45e2e58accb4f1","after":"7a39faaec8abbeacffbb72ec132c032c256ba85d","ref":"refs/heads/main","pushedAt":"2024-09-08T10:07:41.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Update readme after finishing course.","shortMessageHtmlLink":"Update readme after finishing course."}},{"before":"6e84f506c80c085fa3b9d5ee0af51fe289479e05","after":"4fd52a4010b55565a251e45c6b45e2e58accb4f1","ref":"refs/heads/main","pushedAt":"2024-09-07T23:18:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Add TODO comment about shader on-line compilation and obtaining reflection data.","shortMessageHtmlLink":"Add TODO comment about shader on-line compilation and obtaining refle…"}},{"before":"925e546073110e873ddf2e21f91cab9271dc9eef","after":"6e84f506c80c085fa3b9d5ee0af51fe289479e05","ref":"refs/heads/main","pushedAt":"2024-09-07T22:45:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Add TODO comment","shortMessageHtmlLink":"Add TODO comment"}},{"before":"92547886f7af4682289901951f126fd8661b61bc","after":"925e546073110e873ddf2e21f91cab9271dc9eef","ref":"refs/heads/main","pushedAt":"2024-09-07T22:32:13.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Implement 2 subpasses so in the second subpass half of the screen renders color and the other half the depth value:\n- Added new vertex and fragment shaders for the pipeline of the second subpass.\n- Renderer now creates and manages the FrameBuffer (one for each swapchain image). Before it was the SwapChain class, now all the code has be removed from it.\n- Renderer now creates 2 pipelines, one for each subpass.\n- Renderer now creates a descriptor set for the input attachments and every frame it fills them with the correct color and depth images from the current frame buffer.\n- FrameBufferDesc now doesn't make the distinction between color and depth attachments, they are all one list of attachments. This is because the order is important, as it has to match 1:1 the order of attachment specified in the render pass.\n- RenderPass now has 3 attachments (swapchain image, color and depth) and 2 subpasses. Subpass 0 renders to color and depth. Subpass 1 has color and depth as inputs and outpus to swapchain image. In the future the client code should be able to configure the render pass with the RenderPassDesc structure.\n- Pipeline now creates different layout and pipeline instances depending if it's for subpass 0 or 1. This is temporary, in the future the client code should be able to configure the pipeline with a PipelineDesc structure.\n- Small improvement of handling the image layout in Image class.","shortMessageHtmlLink":"Implement 2 subpasses so in the second subpass half of the screen ren…"}},{"before":"92547886f7af4682289901951f126fd8661b61bc","after":"b0bb3e7289d28bf31b9d1aee6d0cd697a53c135a","ref":"refs/heads/Lecture28.ModelLoading","pushedAt":"2024-09-05T14:48:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Update readme for this branch","shortMessageHtmlLink":"Update readme for this branch"}},{"before":"7537a1c8bde48d87c08dba080ca0a652c10be4c2","after":"92547886f7af4682289901951f126fd8661b61bc","ref":"refs/heads/Lecture28.ModelLoading","pushedAt":"2024-09-05T14:47:20.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Fixed link to gif","shortMessageHtmlLink":"Fixed link to gif"}},{"before":"714420770b303926a303962230e25ef45f79dcbb","after":"92547886f7af4682289901951f126fd8661b61bc","ref":"refs/heads/main","pushedAt":"2024-09-05T14:46:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Fixed link to gif","shortMessageHtmlLink":"Fixed link to gif"}},{"before":"7537a1c8bde48d87c08dba080ca0a652c10be4c2","after":"714420770b303926a303962230e25ef45f79dcbb","ref":"refs/heads/main","pushedAt":"2024-09-05T14:44:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Updated readme","shortMessageHtmlLink":"Updated readme"}},{"before":null,"after":"7537a1c8bde48d87c08dba080ca0a652c10be4c2","ref":"refs/heads/Lecture28.ModelLoading","pushedAt":"2024-09-05T13:32:27.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Change comment.","shortMessageHtmlLink":"Change comment."}},{"before":"3faa029baa4095574f6a79687f5f9d0389196302","after":"7537a1c8bde48d87c08dba080ca0a652c10be4c2","ref":"refs/heads/main","pushedAt":"2024-09-05T12:48:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Change comment.","shortMessageHtmlLink":"Change comment."}},{"before":"dd0a53262ed331863d0a9b4e2d3545080f0f71bd","after":"3faa029baa4095574f6a79687f5f9d0389196302","ref":"refs/heads/main","pushedAt":"2024-09-05T11:44:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Treat UVs of Cube to map more intuitively the normal texture, then calculate binormals to correct the handness.","shortMessageHtmlLink":"Treat UVs of Cube to map more intuitively the normal texture, then ca…"}},{"before":"c25a57e232563015f18d2e6eec170667110b7d07","after":"dd0a53262ed331863d0a9b4e2d3545080f0f71bd","ref":"refs/heads/main","pushedAt":"2024-09-05T10:31:27.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Minor change of light direction in fragment shader.","shortMessageHtmlLink":"Minor change of light direction in fragment shader."}},{"before":"1b6c891363c599b3e9577a163d1eb892fefb2283","after":"c25a57e232563015f18d2e6eec170667110b7d07","ref":"refs/heads/main","pushedAt":"2024-09-05T10:29:38.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"- Implemented Blinn-Phong illumination model in Fragment Shader.\n- Implemented Normal mapping to provide more detailed surfaces to objects.\n- Implemented Directional lighting in Fragment Shader.\n- Implemented Gamma Correction in Fragment Shader for a better quality image due to more accurate lighting calculations in linear space.\n- Using new vertex layout that includes tangent space information.\n- Passing WorldBuffer push constant to fragment shader too.\n- Added comment explaining why matrices HLSL need to be transpose to match column-major order we're using. GLSL already takes columns as inputs when creating a matrix.","shortMessageHtmlLink":"- Implemented Blinn-Phong illumination model in Fragment Shader."}},{"before":"4c5340c0414601256e384fa60395c5071b6a6e69","after":"1b6c891363c599b3e9577a163d1eb892fefb2283","ref":"refs/heads/main","pushedAt":"2024-09-05T02:12:00.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"- Modify fragment shaders to use textures.\n- Fix bug not updating index variable in a loop.\n- Fix bug setting the wrong image to image views.","shortMessageHtmlLink":"- Modify fragment shaders to use textures."}},{"before":"e7b0330e801d4aa99f8e6c40033f6d9fab269cdd","after":"4c5340c0414601256e384fa60395c5071b6a6e69","ref":"refs/heads/main","pushedAt":"2024-09-05T01:50:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Add per object descriptor sets to hold the images and sampler of each object.","shortMessageHtmlLink":"Add per object descriptor sets to hold the images and sampler of each…"}},{"before":"610c6b3d26f5e95f87afc0cc89c253dcee458cd7","after":"e7b0330e801d4aa99f8e6c40033f6d9fab269cdd","ref":"refs/heads/main","pushedAt":"2024-09-04T23:51:12.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Added Sampler class and enable Anisotropy support.","shortMessageHtmlLink":"Added Sampler class and enable Anisotropy support."}},{"before":"5987f11c29b680270d1e2732495a83035fd88dba","after":"610c6b3d26f5e95f87afc0cc89c253dcee458cd7","ref":"refs/heads/main","pushedAt":"2024-09-04T22:43:03.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Create ImageView for diffuse image in Object.","shortMessageHtmlLink":"Create ImageView for diffuse image in Object."}},{"before":"dcf4f02d1e84826b9ea1ab4afd83b66441adad28","after":"5987f11c29b680270d1e2732495a83035fd88dba","ref":"refs/heads/main","pushedAt":"2024-09-03T23:54:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Prepare to add texture support:\n- Modify Buffer so the staging buffers are handled with a Buffer instance too and not internally. This will get reused when creating an image as it needs staging buffers too.\n- Modify Objects and Pipeline to use a vertex structure with position and UV instead of color.\n- Modify Application to read models and its textures.\n- For simplicity, support only that Images will use device local memory.\n- Image class now handles when initial data is passed by creating a staging buffer in host memory, then changing its layout to allow copies, then copy the buffer to the image and finally changing again the image's layout depending on its final usage.\n- Command Buffer has a function to add a command to copy a buffer to an image.\n- Command Buffer has a function to add a image memory barrier command to specify layout transitions.","shortMessageHtmlLink":"Prepare to add texture support:"}},{"before":"581a8eb88897ecd16f02aa2b0fd2d2d63ed09967","after":"dcf4f02d1e84826b9ea1ab4afd83b66441adad28","ref":"refs/heads/main","pushedAt":"2024-09-02T00:10:03.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Clear values in BeginRenderPass now uses the right amount of attachments obtained from the framebuffer and it warns if the number of clear values provided do not match with the number of attachments.","shortMessageHtmlLink":"Clear values in BeginRenderPass now uses the right amount of attachme…"}},{"before":"91c58c195aedaadf740ab3c4cbd86fa853e71dc2","after":"581a8eb88897ecd16f02aa2b0fd2d2d63ed09967","ref":"refs/heads/main","pushedAt":"2024-09-01T23:37:51.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"minor comments","shortMessageHtmlLink":"minor comments"}},{"before":"03dafce7e08685bba99445aeea268f18baee7881","after":"91c58c195aedaadf740ab3c4cbd86fa853e71dc2","ref":"refs/heads/main","pushedAt":"2024-09-01T23:31:21.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Moved render pass out from Pipeline to its own class.","shortMessageHtmlLink":"Moved render pass out from Pipeline to its own class."}},{"before":"1a23fa86bd3491da4fe552989c24acefa26c07e1","after":"03dafce7e08685bba99445aeea268f18baee7881","ref":"refs/heads/main","pushedAt":"2024-09-01T21:52:15.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"- Swap Chain first finds what format to use for depth stencil buffer, so it can pass it to the pipeline to create the render pass, then when creating the frame buffer it will generate the depth image that it will use.\n- Remove ability of the Frame Buffer to auto create the depth image, this is before the render pass that was created before should use the same format and not matching would lead to errors. This simplifies Frame Buffer class.\n- There is now only 1 depth image and it's used by all the frame buffers (which there are 1 per swap chain's images)","shortMessageHtmlLink":"- Swap Chain first finds what format to use for depth stencil buffer,…"}},{"before":"38e2158592c79773b5e4e4975e74f343d5325005","after":"1a23fa86bd3491da4fe552989c24acefa26c07e1","ref":"refs/heads/main","pushedAt":"2024-08-31T23:36:54.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Enabling the creation of the depth buffer.","shortMessageHtmlLink":"Enabling the creation of the depth buffer."}},{"before":"8c5bcef8dfaf0d00376ff6e0c02997db664f67c2","after":"38e2158592c79773b5e4e4975e74f343d5325005","ref":"refs/heads/main","pushedAt":"2024-08-31T22:06:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Continue filling the Image class. Added more properties to Image Description.\nAdded function to choose the supported format and use it to choose the best format for depth & stencil image.","shortMessageHtmlLink":"Continue filling the Image class. Added more properties to Image Desc…"}},{"before":"1a9753b469d09f22acbd92a9230278edb01d947d","after":"8c5bcef8dfaf0d00376ff6e0c02997db664f67c2","ref":"refs/heads/main","pushedAt":"2024-08-31T18:40:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Unify create/destroy utils functions in Image and FrameBuffer, so they work like the ones in Buffer.","shortMessageHtmlLink":"Unify create/destroy utils functions in Image and FrameBuffer, so the…"}},{"before":"6bf6a28019770468802c892ee64293ea90703755","after":"1a9753b469d09f22acbd92a9230278edb01d947d","ref":"refs/heads/main","pushedAt":"2024-08-31T18:26:57.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"- Created resource class Image, which works in a similar way as Buffer.\n- Modify FrameBuffer to initialize using a FrameBufferDesc struct and use Image class.\n- SwapChain now creates Image instances for its images and passes it to the frame buffer.\n- Added enum ResourceFormat which are the formats we support from VkFormat.","shortMessageHtmlLink":"- Created resource class Image, which works in a similar way as Buffer."}},{"before":"0d1a5c2305b1fc582d2239ed5cb5f2426de5df1c","after":"6bf6a28019770468802c892ee64293ea90703755","ref":"refs/heads/main","pushedAt":"2024-08-31T13:42:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"Moved Vulkan classes to a library called Graphics.","shortMessageHtmlLink":"Moved Vulkan classes to a library called Graphics."}},{"before":"7526785c06b7148faa9b2ca43969363c183c98eb","after":"0d1a5c2305b1fc582d2239ed5cb5f2426de5df1c","ref":"refs/heads/main","pushedAt":"2024-08-31T11:34:39.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"AaronRuizMoraUK","name":null,"path":"/AaronRuizMoraUK","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/76438441?s=80&v=4"},"commit":{"message":"minor comment.","shortMessageHtmlLink":"minor comment."}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEsAoL8gA","startCursor":null,"endCursor":null}},"title":"Activity · AaronRuizMoraUK/Vulkan-Course"}