Graphics Programming With Vulkan And C++ - Printable Version +- Softwarez.Info - Software's World! (https://softwarez.info) +-- Forum: Library Zone (https://softwarez.info/Forum-Library-Zone) +--- Forum: Video Tutorials (https://softwarez.info/Forum-Video-Tutorials) +--- Thread: Graphics Programming With Vulkan And C++ (/Thread-Graphics-Programming-With-Vulkan-And-C--367317) |
Graphics Programming With Vulkan And C++ - BaDshaH - 02-04-2024 Published 2/2024 MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz Language: English | Size: 5.88 GB | Duration: 6h 6m Learn graphics programming now using the most popular graphics API [b]What you'll learn[/b] Create graphics applications Apply common rendering math Use Vulkan for graphics programming Apply good coding standards Creating and managing windows Writing shader code using GLSL Setting up a project using CMake Setup a graphics pipeline Basic graphics theory [b]Requirements[/b] Good Understanding of modern C++ (pointers, references, lambdas) Basic Understanding of OOP Knowledge of the Standard C++ Library & Algorithms [b]Description[/b] WelcomeVulkan is the newest and most popular graphics API out there. It is the successor of the already deprecated OpenGL and it is the future for any kind of cross-platform graphical applications. It is extremely performant which makes it perfect for game and game engine development.With this course I aim to teach you the very basics of computer graphics with Vulkan in some short and simple lessons. I believe everyone can learn and it is especially important to have easy to understand chunks that can be consumed in short bursts.This course will cover: setting up your C++ project, creating a window, initializing vulkan, rendering a simple triangle, compiling shaders, debugging issues, rendering vertices, basic transformations for 3D.I will not go as far as to teach complex topics like post-processing or shadows since the course aims to be short and accessible. The course will get regular updates though that will cover any major changes in the specification.The course is tought on Microsoft Windows but most of the knowledge gained can be used on any platform.Technologies UsedVulkan SDK - the main topic of the course is the vulkan graphics library specification. This is what "talks" to the GPU of your PC and renders any graphical information that you send to it.GLFW - Abstracts handling windows so that we don't have to call native platform functions. This way the course would be mostly accessible to people on any platform.GLM - A mathematical library that will help with transformation of 3D information.CMake - for managing and compiling the project. We will use a modern setup that is easy to understand and use. Overview Section 1: Introduction Lecture 1 Promo Lecture 2 Welcome Lecture 3 FAQ Lecture 4 Course Overview Lecture 5 Installing Vulkan SDK Lecture 6 Can I Run It? Section 2: Setup Lecture 7 Software Used Lecture 8 Installing Visual Studio Lecture 9 Installing Ninja Lecture 10 Installing CMake Lecture 11 Installing Git Section 3: CMake Configuration Lecture 12 Creating "Hello, World!" Lecture 13 CMake Dependencies & Vulkan Section 4: Coding Standards Lecture 14 Coding Standard: Numbers Lecture 15 Coding Standard: Microsoft GSL Lecture 16 Commonly Used Types Lecture 17 Coding Style: Google & Clang Formatting Lecture 18 Coding Style: Course Overrides Lecture 19 Coding Style: EditorConfig Lecture 20 Styling is Important! Section 5: Window Creation & Management Lecture 21 What is a Window? Lecture 22 Initializing GLFW Lecture 23 Using Precompiled Headers Lecture 24 The Coordinate System & 2D Vectors Lecture 25 What are Monitors? Lecture 26 Monitor Functions Lecture 27 Extracting Monitor Functionallity Lecture 28 Creating the Window Class Lecture 29 Adding Precompiled Headers Everywhere Lecture 30 Preparing the Window for Vulkan Section 6: Vulkan Pipeline Lecture 31 What is Vulkan? Lecture 32 Vulkan Architecture Section 7: The Vulkan Instance Lecture 33 Creating the Vulkan Instance Lecture 34 Checking Existing Extensions Lecture 35 Refactoring Extensions Check Lecture 36 Functional Programming Tricks Lecture 37 The Instance: Summary Section 8: Error Handling & Validation Errors Lecture 38 Basic Validation Layers Lecture 39 Adding the Spdlog Library Lecture 40 Setting Up the Debug Messenger Lecture 41 Creating a Glfw Error Callback Lecture 42 Reorganize Code Into Regions Lecture 43 Validation Errors: Summary Section 9: Devices & Queues Lecture 44 What Are Physical Devices? Lecture 45 Getting Physical Devices Lecture 46 Checking for Queue Family Support Lecture 47 Creating Logical Device Lecture 48 Getting the Graphics Queue Lecture 49 Devices & Queues: Summary Section 10: Presentation & Swap Chain Lecture 50 Creating the Surface Lecture 51 Creating the Presentation Queue Lecture 52 Checking Device Extension Lecture 53 Getting Swap Chain Capabilities Lecture 54 Choosing Swap Chain Capabilities Lecture 55 Creating the Swap Chain Lecture 56 Getting Swap Chain Images Lecture 57 Creating Image Views Lecture 58 Presentation & Swap Chain: Summary Section 11: Graphics Pipeline Lecture 59 What is a Vertex? Lecture 60 What is the Graphics Pipeline? Lecture 61 Basic Shader Compilation Lecture 62 CMake Shader Setup Lecture 63 Vertex & Fragment Shaders Lecture 64 Visual Studio Extension for GLSL Lecture 65 Shader Includes Lecture 66 Loading Shaders Lecture 67 Viewport & Scissoring Lecture 68 Vertex Input & Rasterizer Lecture 69 Color Blending & Layout Lecture 70 Render Pass Lecture 71 Creating the Pipeline Lecture 72 Graphics Pipeline: Summary Section 12: Drawing the Triangle Lecture 73 Framebuffers Lecture 74 Command Pool & Command Buffer Lecture 75 Rendering Commands Lecture 76 Creating Semaphores Lecture 77 Rendering Lecture 78 Resizing the Window Lecture 79 Shader Communication Lecture 80 Shader Variables: Adding Color Lecture 81 Color Blending & Transparency Lecture 82 Rendering Commands: Summary Section 13: Data Buffers Lecture 83 The Vertex Input Class Lecture 84 Rendering Vertex Buffers Lecture 85 Transient Command Buffers Lecture 86 Abstracting Buffer Creation Lecture 87 Staging & GPU Buffers Lecture 88 Index Buffer Lecture 89 Push Constants Lecture 90 Uniform Buffer Lecture 91 Uniform Descriptor Set Lecture 92 Data Buffers: Summary Section 14: Textures Lecture 93 Passing UVs to the Shader Lecture 94 Descriptor Pool for Images Lecture 95 Creating the Sampler Lecture 96 Laying Out the Texture Setup Lecture 97 Texture Resource Lecture 98 Loading the Image to Staging Lecture 99 Creating the Image Lecture 100 Transfering the Texture to the GPU Lecture 101 Image View & Descriptor Set Lecture 102 Textures: Summary Section 15: Advanced Lecture 103 Depth Problem Lecture 104 Enable Depth Testing Section 16: What now... Lecture 105 Where to go next? Lecture 106 Bonus Materials Junior C++ programmers,Game engine programmers,3D graphics programmers switching to Vulkan Homepage |