This page was last updated: July 29, 2023
These materials are licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
(This means that you are free to go off and use these for anything non-commercial so long as you give proper attribution. Have fun!)
Here is the abridged set of PDF Vulkan notes, that we will be going over in the SIGGRAPH course:
1pp,
2pp,
4pp,
6pp
Here is the "More Information" PDF document that goes with the notes: More Information
Here is the full set of PDF Vulkan notes (this is more than we can cover in the SIGGRAPH course, but might be usful to have access to):
1pp,
2pp,
4pp,
6pp
Here is the ZIPped Visual Studio 2019 solution for the Vulkan program we will use in the course: Sample2019-COLOREDCUBE.zip
Here is the sample.cpp program from that ZIPped solution.
Here is the SampleVertexData.cpp file that defines the geometry from that ZIPped solution.
Here is the vertex shader, sample-vert.vert, from that ZIPped solution.
Here is the fragment shader, sample-frag.frag, from that ZIPped solution.
Here is the Khronos Group's Vulkan 1.1 Reference Card.
Here is a list of good computer graphics and Vulkan references More Information document
The Individual Notes
These materials are licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
(This means that you are free to go off and use these for anything non-commercial so long as you give proper attribution. Have fun!)
Vulkan Intro | 1pp | 2pp | 4pp | 6pp |
Sample Code | 1pp | 2pp | 4pp | 6pp |
Drawing | 1pp | 2pp | 4pp | 6pp |
Vertex Buffers | 1pp | 2pp | 4pp | 6pp |
Data Buffers | 1pp | 2pp | 4pp | 6pp |
Shaders and SPIR-V | 1pp | 2pp | 4pp | 6pp |
Instancing | 1pp | 2pp | 4pp | 6pp |
GLFW | 1pp | 2pp | 4pp | 6pp |
GLM | 1pp | 2pp | 4pp | 6pp |
Descriptor Sets | 1pp | 2pp | 4pp | 6pp |
Textures | 1pp | 2pp | 4pp | 6pp |
Graphics Pipeline | 1pp | 2pp | 4pp | 6pp |
Queues and Command Buffers | 1pp | 2pp | 4pp | 6pp |
Swap Chain | 1pp | 2pp | 4pp | 6pp |
Physical Devices | 1pp | 2pp | 4pp | 6pp |
Logical Devices | 1pp | 2pp | 4pp | 6pp |
Dynamic State Variables | 1pp | 2pp | 4pp | 6pp |
Push Constants | 1pp | 2pp | 4pp | 6pp |
Getting Information Back from the Graphics System | 1pp | 2pp | 4pp | 6pp |
A Review of OpenGL Compute Shaders | 1pp | 2pp | 4pp | 6pp |
Vulkan Compute Shaders | 1pp | 2pp | 4pp | 6pp |
Specialization Constants | 1pp | 2pp | 4pp | 6pp |
Vulkan Synchronization | 1pp | 2pp | 4pp | 6pp |
Pipeline Barriers | 1pp | 2pp | 4pp | 6pp |
Antialiasing and Multisampling | 1pp | 2pp | 4pp | 6pp |
MultiPass Rendering | 1pp | 2pp | 4pp | 6pp |
Ray Tracing | 1pp | 2pp | 4pp | 6pp |
Spherical Stereographics | 1pp | 2pp | 4pp | 6pp |
Vulkan Ray-tracing | 1pp | 2pp | 4pp | 6pp |
Efficient Ray-Triangle Intersections | 1pp | 2pp | 4pp | 6pp |
The Ray Tracing Pipeline Data Structure | 1pp | 2pp | 4pp | 6pp |
Acceleration Structures | 1pp | 2pp | 4pp | 6pp |
Firing Rays | 1pp | 2pp | 4pp | 6pp |
More Information | ||||
Creating a Video Demo of a Graphics Project | 1pp | 2pp | 4pp | 6pp |
Here is the ZIPped Visual Studio 2019 solution for the Vulkan program we will use in the course: Sample2019-COLOREDCUBE.zip
Here is the sample.cpp program from that ZIPped solution.
Here is the SampleVertexData.cpp file that defines the geometry from that ZIPped solution.
Here is the vertex shader, sample-vert.vert, from that ZIPped solution.
Here is the fragment shader, sample-frag.frag, from that ZIPped solution.
Here is the Khronos Group's Vulkan 1.1 Quick Reference Card.
Here are some Vulkan-related resources I have found handy:
Graham Sellers, Vulkan Programming Guide, Addison-Wesley, 2017. |
Downloadable Files
Sample2019-COLOREDCUBE.zip
sample.cpp
SampleVertexData.cpp
sample-vert.vert
sample-frag.frag
VulkanDebug.txt
Projects We Used in the Oregon State University Vulkan Class
Project # | Points | Title |
---|---|---|
1 | 100 | Create your own 3D object in Vulkan. |
2 | 100 | Add Lighting to Your Own Vulkan Program |
3 | 100 | Drawing using an Index Buffer |
4 | 100 | Instancing |
5 | 100 | Push Constants for Robot Animation |
Oregon State University Classes |
Intro to Computer Graphics |
Computer Graphics Shaders |
Scientific Visualization |
Parallel Programming |
CS Skills for Simulation and Game Programming |
A Whirlwind Tour of Computer Graphics |
Whirlwind |
Grades K-12 Outreach |
Blender |
Processing |
Scratch |
SketchUp |
TinkerCad |
Comments? Suggestions? Questions? Contact:
Other Useful Online Graphics and Shader Information
https://developer.nvidia.com/sites/default/files/akamai/gameworks/blog/munich/mschott_vulkan_multi_threading.pdf
https://developer.nvidia.com/vulkan-android#samples
https://github.com/SaschaWillems/Vulkan/blob/master/examples/multithreading/multithreading.cpp
https://developer.nvidia.com/vulkan-android#samples
Mike Bailey
Oregon State University, Computer Science
2117 Kelley Engineering Center
Corvallis, OR 97331-5501
541-737-2542
mjb@cs.oregonstate.edu