Projects | Handouts |
This page was last updated: March 8, 2023
Your well-being is our #1 concern! I want all of you to have ready-access to the latest information. Find it here.
Day | Time |
---|---|
Monday | 10:00-12:00 |
Tuesday | 11:00-12:00 |
The goals of this course are to leave you "career-ready" (i.e., both work-ready and research-ready) for tasks that require the implementation of graphics rendering and computing algorithms in Vulkan.
Access to the CGEL is by the RFID chip in your OSU ID card. I will be submitting a class roster to EECS so that you can all be enabled.
This is a different type of class. Be aware that:
CS 450, 550, 491, 453, or 553.
You must be demonstrably good at OpenGL to take this class.
No exceptions!
Here are some Vulkan resources I have found handy:
Prerequisites
Resources
Here it is in PDF.
Professor
The class is being taught by
Professor Mike Bailey.
Office: | Kelley 2117 (2nd floor, south side) |
Phone: | 541-737-2542 |
E-mail: | mjb@cs.oregonstate.edu |
Prof. Bailey's Office Hours for the WQ are:
Prof. Bailey | |
mjb@cs.oregonstate.edu | |
Zoom-room | Zoom |
Mondays | 3:30 - 5:00 |
Tuesdays | 11:00 - 1:00 |
Wednesdays | 2:00 - 4:00 |
Thursdays | |
Fridays | 4:30 - 6:00 |
or, anytime my office door is open
or, by appointment -- send email
Graham Sellers,
Vulkan Programming Guide,
Addison-Wesley,
2017.
The OSU bookstore is supposed to have it.
It is also available through
Amazon.
($60)
Other course material will consist of printable notes, web pages, and notes taken in class. |
Week # | Topic | |||||
---|---|---|---|---|---|---|
1 | Vulkan Intro | 1pp | 2pp | 4pp | 6pp | LV |
1 | Project Notes | 1pp | 2pp | 4pp | 6pp | |
1 | Our Class Resources Page | HTML | LV | |||
1 | Sample Code | 1pp | 2pp | 4pp | 6pp | LV |
1 | Drawing | 1pp | 2pp | 4pp | 6pp | LV |
1 | Shaders and SPIR-V | 1pp | 2pp | 4pp | 6pp | LV |
2 | Data Buffers | 1pp | 2pp | 4pp | 6pp | LV |
2 | Vertex Buffers | 1pp | 2pp | 4pp | 6pp | LV |
2 | VMA | 1pp | 2pp | 4pp | 6pp | LV |
2 | GLFW | 1pp | 2pp | 4pp | 6pp | LV |
2 | GLM | 1pp | 2pp | 4pp | 6pp | LV |
2 | A short GLM Primer | HTML | ||||
2 | GLM Manual | |||||
2 | Keytime Animation | 1pp | 2pp | 4pp | 6pp | LV |
2 | Instancing | 1pp | 2pp | 4pp | 6pp | LV |
3 | Descriptor Sets | 1pp | 2pp | 4pp | 6pp | LV |
3 | Graphics Pipeline Data Structure | 1pp | 2pp | 4pp | 6pp | LV |
4 | Textures | 1pp | 2pp | 4pp | 6pp | LV |
4 | Queues and Command Buffers | 1pp | 2pp | 4pp | 6pp | LV |
4 | Swap Chain | 1pp | 2pp | 4pp | 6pp | LV |
4 | Test #1 Review | HTML | ||||
5 | Push Constants | 1pp | 2pp | 4pp | 6pp | LV |
6 | Physical Devices | 1pp | 2pp | 4pp | 6pp | LV |
6 | Logical Devices | 1pp | 2pp | 4pp | 6pp | LV |
6 | Dynamic State Variables | 1pp | 2pp | 4pp | 6pp | LV |
7 | Getting Information Back from the Graphics System | 1pp | 2pp | 4pp | 6pp | LV |
7 | A Review of OpenGL Compute Shaders | 1pp | 2pp | 4pp | 6pp | |
7 | Vulkan Compute Shaders | 1pp | 2pp | 4pp | 6pp | LV |
7 | Specialization Constants | 1pp | 2pp | 4pp | 6pp | LV |
8 | Vulkan Synchronization | 1pp | 2pp | 4pp | 6pp | LV |
8 | Pipeline Barriers | 1pp | 2pp | 4pp | 6pp | LV |
8 | Antialiasing and Multisampling | 1pp | 2pp | 4pp | 6pp | LV |
8 | MultiPass Rendering | 1pp | 2pp | 4pp | 6pp | |
9 | Vulkan Ray-tracing | 1pp | 2pp | 4pp | 6pp | LV |
9 | Efficient Ray-Triangle Intersections | 1pp | 2pp | 4pp | 6pp | LV |
9 | The Ray Tracing Pipeline Data Structure | 1pp | 2pp | 4pp | 6pp | LV |
9 | Acceleration Structures | 1pp | 2pp | 4pp | 6pp | LV |
9 | Firing Rays | 1pp | 2pp | 4pp | 6pp | LV |
10 | More Information | |||||
10 | Test #2 Review | HTML | ||||
--- | Creating a Video Demo of a Graphics Project | 1pp | 2pp | 4pp | 6pp |
To see an Academic Year calendar,
click here.
Class time is:
Tuesdays and Thursdays, 4:00 - 5:30.
Unless otherwise specified, all classes will be in
Wenniger 116.
There will be no class on the Thursdays of January 12, February 9, and March 9.
This schedule is my best guess right now.
Consider it to be approximate.
Class Schedule
Week | Starting On | Topics |
---|---|---|
1 | Jan 10 |
Go over the syllabus.
Filling out the alias web form. Intro to Vulkan. The Sample Code Drawing Project #1. Shaders and SPIR-V |
2 | Jan 17 |
Data Buffers
VMA GLFW and GLM Instancing Descriptor Sets |
3 | Jan 24 |
Descriptor Sets
The Graphics Pipeline Data Structure |
4 | Jan 31 |
Textures
Queues and Command Buffers The Swap Chain |
5 | Feb 7 |
Test #1 Review
Test #1 goes live at 12:01 PM on Wednesday, February 8. It closes at 23:59 on Sunday, February 12. It wil consist of 40 questions, on Canvas, multiple choice, open notes. |
6 | Feb 14 |
Happy Valentines Day!
Push Constants Physical and Logical Devices |
7 | Feb 21 |
Dynamic State Variables
Getting Information Back from the Graphics System Vulkan Compute Shaders Click here to see the OpenGL version of the Compute Shader particle system from our class notes. Specialization Constants |
8 | Feb 28 |
Synchronization
Pipeline Barriers Antialiasing and Multisampling Multipass Rendering |
9 | Mar 7 |
Vulkan Ray-tracing
Link to the YouTube video. |
10 | Mar 14 | Test #2 review. |
FW | Mar 21 | Test #2 goes live at 12:01 PM on Wednesday, March 22. It closes at 23:59 on Sunday, March 26. It wil consist of 40 questions, on Canvas, multiple choice, open-notes. |
Project # | Points | Title | Due Date | LV |
---|---|---|---|---|
1 | 100 | Create your own 3D object in Vulkan. | January 20 | LV |
2 | 100 | Keytime Animation of an OBJ Object with Vulkan and GLM | January 28 | LV |
3 | 100 | Drawing using an Index Buffer | February 11 | LV |
4 | 100 | Instancing | February 18 | LV |
5 | 100 | Push Constants for Robot Animation | February 28 | LV |
6 | 100 |
|
Your project turnins will be electronic.
Your electronic turnin will be done at
http://teach.engr.oregonstate.edu
and will consist of a PDF report.
The PDF file should include:
Electronic submissions are due at 23:59:59 on the listed due date.
Your project will be graded and the score posted to the class web page.
Projects are due at 23:59:59 on the listed due date,
with the following exception:
Each of you has been granted
5
Bonus Days, which are no-questions-asked
one-day extensions which may be applied to any project, subject to the following rules:
Project Turn-In Procedures
If you want to know why you did not receive full credit,
send me an email asking about it, or see me during Office Hours.
You have one week to do this.
Bonus Days and Late Assignments
Points | Grade |
850 | A |
830 | A- |
810 | B+ |
790 | B |
770 | B- |
750 | C+ |
730 | C |
710 | C- |
690 | D+ |
670 | D |
650 | D- |
Notice that this grade scale is not 90%-80%-70%-60%. That is because I just do a soft grade on the projects.
Here is a folder with some of my favorite OBJ files.
MySSP @ OSU is an app that gives all OSU students, including Ecampus students,
24/7 access by text or phone with a licensed mental health counselor
(MySSP stands for “My Student Support Program”).
The app makes it easy to schedule short-term counseling appointments with the same ongoing counselor
and provides educational materials covering mental health topics.
Students can communicate with a counselor in five different languages
(Mandarin, Cantonese, French, Spanish or English);
additional language options are available upon request.
Students can download the Anytime Anywhere: MySSP @ OSU and learn more about
the service at
http://beav.es/anytimeanywhere.
For questions, please contact Bonnie Hemrick
(
bonnie.hemrick@oregonstate.edu
), Director of Mental Health Promotion.
It is important you feel safe and welcome in this course. If
somebody is making discriminatory comments against you,
sexually harassing you, or excluding you in other ways, contact
the professor, your academic advisor, and/or report what
happened at
https://studentlife.oregonstate.edu/studentconduct/
reporting so we can connect you with resources.
You are expected to do your own work.
Helping each other, with explanations or clarifications, is OK.
Sharing code, however, is considered cheating.
Anyone caught cheating will fail this class, and the matter will be turned over to the Dean's Office.
You are expected to read and understand Oregon State University's Statement of Expectations for Student Conduct, found here:
https://beav.es/codeofconduct
.
If there is any parts of this document that you don't understand, ask me!
Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval please contact DAS immediately at 541-737-4098 or at
http://ds.oregonstate.edu.
DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.
OSU has twelve established student rights.
They include due process in all university disciplinary processes, an equal opportunity to learn, and grading in accordance with the course syllabus.
See:
https://asosu.oregonstate.edu/advocacy/rights
Oregon State University strives to respect all religious practices.
If you have religious holidays that are in conflict with any of the requirements of this class,
please see me immediately so that we can make alternative arrangements.
As {John Lennon? Allen Saunders?} has said: "Life is what happens to you while you're busy making other plans".
I care about you as a person.
When life happens to you, send me an email and come see me.
I might be able to help.
But I surely can listen.
You are not alone.
University students encounter setbacks from time to time.
If you encounter difficulties and need assistance, it's important to reach out.
Consider discussing the situation with me or an academic advisor.
Learn about resources that assist with wellness and academic success at
http://oregonstate.edu/ReachOut.
If you are in immediate crisis, please contact the Crisis Text Line by texting
OREGON to 741-741 or call the National Suicide Prevention Lifeline at 1-800-273-TALK (8255)
Success at OSU means knowing and using your resources.
One helpful resource is the community of staff available at the Basic Needs Center (BNC) for support (bnc@oregonstate.edu, 541-737-3747,
https://studentlife.oregonstate.edu/bnc).
Students can drop in during open hours and talk with a BNC student leader for resources, ideas and strategies connected to basic needs challenges.
The BNC is often known for its food pantry but there are other resources connected to groceries and affording food
and staff who can help you work through housing stressors.
Undergraduate students, living in Oregon, are especially encouraged to explore SNAP (up to $236 in grocery money each month for eligible students)
as a resource.
Domestic undergraduate students living in Oregon are more likely than not to be eligible for SNAP. BNC staff are skilled with helping students navigate this process.
Additionally, the BNC Textbook Lending Program offers students the opportunity to check out required textbooks for the academic term.
Furthermore, if you are comfortable doing so, please talk with Professor Bailey. He will do everything he can to help you.
Downloadable Files
Sample2019.zip
SampleVertexData.cpp
sample-vert.vert
sample-frag.frag
VulkanDebugA6000.txt
Class Rules
MySSP: Mental Health Support for Students
Establishing a Positive Community
Academic Dishonesty
Students With Disabilities
Student Bill of Rights
Religious Holidays
Life Events
Reach Out for Success
Basic Needs
Other Useful Online Graphics and Shader Information
https://www.khronos.org/vulkan/
https://developer.nvidia.com/vulkan-android#samples
what sin( ) and cos( ) are for.