Skip to content

yhyu13/Vulkan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vulkan

My Vulkan Renderer

Projects

   

      1. Model Loading with Texture

                                                             Model Loading                

                Loading models with Assimp.

                Vertex Input to the shader is as follows

                          - Position

                          - Normals

                          - Texture Coords

                               

      2. Forward Rendering

                                                             Forward Rendering                

                Implemented point Light with attenuation

                Implemented Spot Light with Attenuation and cut off

                Can change light color

                               

      3. Deferred Rendering

                                                             Deferred Rendering                

                Implemented the following GBuffer

                           - World Position

                           - Normals

                           - Albedo Texture

                Can support 1000 lights with 60 fps

                               

      4. Moment Shadow Maps

                                                             Moment Shadow Maps                

                Implemented 2 pass compute shader Blur

                           - Horizontal blur

                           - Vertical Blur

                Implemented Cramer’s rule for solving a 3x3 system involved the ratios of 3x3 determinants                         formed from the three columns of the matrix and the right hand column.

                               

      5. Image Based Lighting

                                                             Image Based Lighting                

                Implemented the following 

                           - Diffuse Irradiance 

                           - Specular image based lighting

                               

      6. Ambient Occlusion

                                                             Ambient Occlusion                

                Implemented Screen Space Ambient Occlusion

                Used Percentage Closure Filter (PCF) for Blur

                Blur was implemented on the fragment shader

                               

      7. Mega Texture (Sparse Residency and Binding) 

                                                             Mega Texture                

                Implemented sparse residency and binding 

                Implemented single pass algorithm (all calculation in one fragment shader)

                           - Find tiles from a particular mip level to be binded

                           - Find if the tile is resident ( if resident the texel is fetched from the tile  else fall to next mip level)

                Used staging buffer for transferring the pixel data to the sparse texture image

                               

      8. Key Frame Animation (nLerp and Slerp Quaternions) 

                                                             Key Frame Animation                

                Implemented the following

                           - Normalized Lerp (nLerp)

                           - Slerp

                Wrote Quaternion Library

                               

      9. Motion Along a Path ( Bezier Curve)

                                                             Motion Along a Path                

                Implemented Bezier curves

                Used adaptive table to find next position along the time

                Implemented Linear Ease in and Ease out 

                               

      10. Inverse Kinematics (Cyclic Coordinate Descent)

                                                             Inverse Kinematics                

                Implemented CCD algorithm

                4 bones was selected for inverse kinematics motion

                Target position change with end effector collision 

                               

      11. Cloth Simulation (Gravity and Sphere Collision)

                                                             Cloth Simulation                

                Implemented cloth simulation with the following

                           - Gravity

                           - Vertices collision with sphere

                Each vertices is considered as a particles

                Particles haves constrains with its adjacent particles