# Term 1 Schedule

## Note

for latest slides pleasee refer to Blackboard

for latest lab guides please refer the lab session on this site.

## Week 01 22/09/25

LectureA01 Introduction to computer graphics and the graphics pipeline

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2Fq66Ngf1dJM0Fwhgh92rr%2F5CM507%20Graphics%20Lecture%20A01%20Intro_v2025_1_4.pdf?alt=media&token=743b7686-f631-4740-af53-007d64b1158e>" %}

[LabA01 Hello OpenGL ! - Set up OpenGL environment, draw a triangle](https://youbing.gitbook.io/graphics/graphics25/term1/laba01)

LearnOpenGL.com

Creating Window: <https://learnopengl.com/Getting-started/Creating-a-window>

Hello Window: <https://learnopengl.com/Getting-started/Hello-Window>

GLSL Cookbook: Chapter 1

Real-time Rendering chapter 2 The Graphics Rendeing Pipeline\
Chapter 3 GPU

\
Further Readings\
Video: Pat Hanrahan (May 16, 2023)

Shading Languages and the Emergence of Programmable Graphics Systems (Talk at Stanford)

{% embed url="<https://www.youtube.com/watch?v=uL4H1ct_-dI>" %}

## Week 02 29/09/25

LectureA02 Vectors, matrices, transformations

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2F4mXJm23hGQD64Owxs0sT%2F5CM507_Graphics_Lecture_A02a_Mathematics_v2025_1_2.pdf?alt=media&token=a76fb2a8-593e-496c-93b2-9d51903d94e8>" %}

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2Fozc4OepRxBxzUWtObDRO%2F5CM507_Graphics_Lecture_A02b_Transforms_v2025_1_9.pdf?alt=media&token=31ca03d4-99ba-4587-a0b1-e5608e61974a>" %}

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2FgefRkdudkaEhaVoQ6Xv6%2FGimbal_win_20250927.zip?alt=media&token=2ee1d556-ef17-4852-acc7-c1b088599054>" %}

\
[LabA02 Transform with GLM, shader programming](https://youbing.gitbook.io/graphics/graphics25/term1/laba02)\
LearnOpenGL.com

Hello Triangle: <https://learnopengl.com/Getting-started/Hello-Triangle>

Shader basics: <https://learnopengl.com/Getting-started/Shaders>

Transformations: <https://learnopengl.com/Getting-started/Transformations>

Furthre readings

If you are curious about 3D rotations, you can watch this series with a total length of 90 minutes, but it is hard.

{% embed url="<https://www.youtube.com/watch?v=D1lnrQg5NAM&t=9s>" %}

## Week 03 06/10/25

LectureA03 More transforamtions - Hierarchical Modelling, View Transform

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2FZUXvgaKTo0L9VZd7J9ht%2F5CM507_Graphics_Lecture_A03_Model_View_v2025_1_4.pdf?alt=media&token=51a93148-5bb7-479c-bdfe-8228bd3a0f65>" %}

LabA03 Load mesh models with Assimp, scene graph in C++, view transform\
Scenegraph: <https://learnopengl.com/Guest-Articles/2021/Scene/Scene-Graph>

## Week 04 13/10/25

(swapped with Game Engine Systems by Patrick)

## Week 05 20/10/25

(swapped with Game Engine Systems by Patrick)

## Week 06 27/10/25 (Workshop)

LectureA04 View and Projection

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2FqLpAPZkFjy7tNbUcZg9H%2F5CM507_Graphics_Lecture_A04_View_Projection_v2025_2_4.pdf?alt=media&token=3b91d810-5585-4885-80ab-819113ef6792>" %}

[LabA04 Camera control and Perspective Projection](https://youbing.gitbook.io/graphics/graphics25/term1/laba04)\
Virtual arcball : <https://www.songho.ca/opengl/gl_camera.html>

## 30/10/25 Thursday (Workshop)

(swapped back from Game Engine Systems)

LectureA05 Lighting and Shading Basics

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2FhAPbzBXaW2tyPeUGSHsf%2F5CM507_Graphics_Lecture_A05_Lighting_v2025_1_5.pdf?alt=media&token=d8b01556-5c10-4c6d-bb15-4a41f079dbb4>" %}

\
[LabA05 Basic Lighting - Blinn-Phong and Phong](https://youbing.gitbook.io/graphics/graphics25/term1/laba05/)<br>

LearnOpenGL.com

Basic Lighting: <https://learnopengl.com/Lighting/Basic-Lighting>

Multiple lights: <https://learnopengl.com/Lighting/Multiple-lights>

Further Readings

{% embed url="<https://www.gdcvault.com/play/1029339/The-Character-Rendering-Art-of>" %}

## Week 07 Enrichment

Enrichment Week

No lectures and lab sessions\
Self-learning: How mesh models are created

## Week 08 10/11/25

LectureA06 Physical-based lighting models - GGX and BRDF

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2FzaKcn396QGp58dY4KPli%2F5CM507_Graphics_Lecture_A06_PBR_GGX_v2025_1_3.pdf?alt=media&token=1f84ede5-b744-40dc-ad30-2fd5d26f5b28>" %}

\
LabA06 Physically-based Lighting - GGX model using GenAI\
LearnOpenGL.com

{% embed url="<https://learnopengl.com/PBR/Lighting>" %}

Further Reading

Allegorithmic PBR Guide (Easy)

{% embed url="<https://www.adobe.com/learn/substance-3d-designer/web/the-pbr-guide-part-1?learnIn=1&locale=en>" %}

Fresnel Effect

{% embed url="<https://www.dorian-iten.com/fresnel/>" %}

(Highly Recommended) GSN Composer Video Tutorial

{% embed url="<https://www.youtube.com/watch?v=gya7x9H3mV0>" %}

(Hard) Chapter 9 Physically Based Shading, Real-Time Rendering, 4th Edition.

## Week 09 17/11/25

LectureA07 Texture Mapping

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2FE0iSQ9E3oytep0Huab4L%2F5CM507_Graphics_Lecture_A07_Texture_Mapping_v2025_1_2.pdf?alt=media&token=9e133faf-f732-450a-bba3-50c0cb3e2f3d>" %}

\
\
LabA07 Texture mapping with OpenGL and GLSL, sky box or dome\
LearningOpenGL.com

<https://learnopengl.com/Getting-started/Textures>

## 20/11/25 Thursday

(swapped back from Game Engine Systems)

LectureA08 More mapping - Normal mapping, Cube Maps, PBR Maps

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2FjY6qgvaJvxcqgyR2udIc%2F5CM507_Graphics_Lecture_A08_More_Maps_v2025_1_4.pdf?alt=media&token=6e28adbd-2a40-4f95-a89e-1f0b7aa1ed50>" %}

Tutorial:

{% embed url="<https://docs.unity3d.com/6000.1/Documentation/Manual/StandardShaderMaterialParameterNormalMap.html>" %}

{% embed url="<https://matereal.net/article/tutorial-normal-map/>" %}

Normal map creator: <https://xo3d.co.uk/tools/normal-map-creator/>\
\
How to calcualte the tangent space: <https://www.youtube.com/watch?v=hHzi_z7OeT0&t=195s>

LabA08 Normal mapping\
LearnOpenGL.com

{% embed url="<https://learnopengl.com/Advanced-Lighting/Normal-Mapping>" %}

## Week 10 24/11/25

LectureA09 Shadow Maps

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2FTFwJnZ4QXjixrlZLbTPB%2F5CM507_Graphics_Lecture_A09_ShadowMaps_v2025_1_4.pdf?alt=media&token=d058ca2c-cbd0-4102-8378-a2a058a7e860>" %}

Tutorial

{% embed url="<https://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/>" %}

LabA09 Shadow Maps

LearnOpenGL.com

How to implement shadow map

<https://www.youtube.com/watch?v=Jhopq2lkzMQ&list=PLplnkTzzqsZS3R5DjmCQsqupu43oS9CFN&index=16>

Further reading:

Ambient occulusion and soft shadows

{% embed url="<https://www.youtube.com/watch?v=teB-pbAd8JE&list=PLplnkTzzqsZS3R5DjmCQsqupu43oS9CFN&index=23>" %}

## Week 11 01/12/25

LectureA10 Image-Space Effects - bloom, motion blur, etc.<br>

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2Fl4IXVUiYNnEj3xtUEyQW%2F5CM507_Graphics_Lecture_A10_Image_Effects_v2025_1_1.pdf?alt=media&token=a71113bb-5a21-45ca-8ffe-17fa5324a68c>" %}

\
LabA10 Bloom shader programming

Further Reading

{% embed url="<https://dev.epicgames.com/documentation/en-us/unreal-engine/bloom-in-unreal-engine?application_version=5.0>" %}

{% embed url="<https://docs.unrealengine.com/udk/Three/PostProcessEffectsHome.html>" %}

## Week 12 08/12/25

LectureA11 Spatial Structures

{% file src="<https://3464970502-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3JUKGJZ67JX02QZdPhsy%2Fuploads%2FKUUNnY6YjsSUeC7Fm0c3%2F5CM507_Graphics_Lecture_A11_Spatial_Structures_v2025_1_0.pdf?alt=media&token=302e4b1a-6148-454c-93a5-267e3b51539e>" %}

\
LabA11 Picking and collision detection

<https://www.mbsoftworks.sk/tutorials/opengl3/18-3d-picking-pt1/>

<https://www.mbsoftworks.sk/tutorials/opengl3/19-3d-picking-pt2/>

Tutorial using C#: <https://gdbooks.gitbooks.io/3dcollisions/content/Chapter5/picking.html>

## Week 13 05/01/26

No new lectures : wrap-up,

No new lab sessions, drop-in
