Mike Bailey's Vulkan Page

mjb@cs.oregonstate.edu

http://cs.oregonstate.edu/~mjb/vulkan


Word Cloud from the notes:


This page was last updated: July 29, 2023


SIGGRAPH 2023ers, look here!

Creative Commons License
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

Creative Commons License
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 PDF      
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.

A Couple Useful Utilities

Resources

Here are some Vulkan-related resources I have found handy:

General Vulkan-related Fun:

My Favorite Vulkan Textbook

Graham Sellers, Vulkan Programming Guide, Addison-Wesley, 2017.
It is available through
Amazon.

Downloadable Files

  1. Self-contained Windows 2019 solution:
    Sample2019-COLOREDCUBE.zip

  2. sample.cpp source code:
    sample.cpp

  3. SampleVertexData.cpp cube array-of-structures:
    SampleVertexData.cpp

  4. Shader sources:
    sample-vert.vert
    sample-frag.frag

  5. Informational and Debugging Output from sample.cpp
    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


Other Notes You Might Enjoy!

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


Other Useful Online Graphics and Shader Information


Comments? Suggestions? Questions? Contact:
Mike Bailey
Oregon State University, Computer Science
2117 Kelley Engineering Center
Corvallis, OR 97331-5501
541-737-2542
mjb@cs.oregonstate.edu