HIT · CS Concentrations

COURSE · GM1

Computer Graphics

גרפיקה ממוחשבת

rasterization, physically based shading, and interactive real-time rendering pipelines

Build a real-time renderer and ship a playable engine demo

Year 313 weeks2h lecture + 2h practiceProject-based

About this course

Master the foundations of computer graphics: the rendering pipeline, rasterization and ray tracing, shading and lighting, and real-time rendering on modern GPUs and engines.

Course format. Thirteen weeks, four contact hours each: a two-hour lecture (concepts and theory) and a two-hour practice session. The course is project-based; teams carry one running project end to end and present it three times, in weeks 5, 8, and 13.
What you will build

Built a real-time 3D rendering application in Unity, Unreal, or a custom OpenGL and Vulkan engine, implementing a physically based shading pipeline with cascaded shadow maps, image-based lighting, and frustum culling, profiled with RenderDoc and Nsight to meet a fixed frame-rate budget.

Expected outcomes

  • Derive the rendering equation and explain how rasterization and ray tracing each approximate it
  • Implement the programmable GPU pipeline stages from vertex transform through fragment shading
  • Write vertex, fragment, and compute shaders in GLSL or HLSL for lighting and post effects
  • Apply physically based shading using microfacet BRDFs and energy-conserving reflectance models
  • Construct and traverse scene graphs and spatial data structures for visibility and culling
  • Implement real-time shadowing with shadow maps and analyze depth-bias and aliasing tradeoffs
  • Profile a frame and optimize draw calls, batching, and GPU bottlenecks to hit a frame-rate budget
  • Integrate gameplay logic, assets, and rendering inside Unity or Unreal Engine
  • Evaluate global illumination approximations including ambient occlusion and image-based lighting
  • Design and defend a complete interactive real-time graphics application as a team project

Key topics

  • Rendering pipeline & rasterization
  • Ray tracing & global illumination
  • Shading, lighting & materials
  • Real-time GPU rendering

Theoretical foundations

The concepts and results this course rests on.

  • the rendering equation and the distinction between rasterization and ray tracing
  • homogeneous coordinates and the model-view-projection transform chain
  • the microfacet BRDF and physically based reflectance with Fresnel, geometry, and distribution terms
  • the z-buffer visibility algorithm and shadow-map depth comparison
  • bounding volume hierarchies and frustum and occlusion culling
  • radiometry: radiance, irradiance, and the cosine-weighted hemisphere integral
  • the GPU execution model of parallel warps and the cost of state changes

Prerequisites

This is a Year-3 course. It assumes the mandatory CS core: data structures and algorithms, operating systems, computer networks, databases, software engineering, and the core mathematics (linear algebra, probability and statistics, calculus, discrete mathematics). It additionally requires the specific prior courses listed below.

Course-specific prerequisites:

  • Linear algebra
  • Programming in C++ or C#
  • Data structures and algorithms

Weekly schedule 13 weeks · lecture + practice

Foundations
Wk 1
The rendering pipeline and frame anatomy
LectureOverview of real-time rendering: the rendering equation as the ground truth, and how rasterization and ray tracing approximate it. The graphics pipeline from application stage to framebuffer.
PracticeSet up the engine toolchain and render a first triangle with a custom vertex and fragment shader, then animate it through a transform.
ProjectRepository, build system, and a window rendering a shaded primitive at a measured frame rate.
Wk 2
Transforms, cameras, and the GPU
LectureHomogeneous coordinates, model-view-projection matrices, perspective and the depth buffer. GPU architecture: SIMD lanes, warps, and the cost of state changes.
PracticeImplement a free-look camera and a transform hierarchy, and load a textured mesh from disk into a vertex buffer.
ProjectInteractive scene with a controllable camera and loaded 3D assets.
Shading
Wk 3
Lighting models and shaders
LectureLocal illumination: Lambertian diffuse, Blinn-Phong specular, and the move toward physically based shading. Shader stages, uniforms, and the data flow to the GPU.
PracticeAuthor shaders for directional, point, and spot lights with normal mapping on a textured model.
ProjectMulti-light shaded scene with normal-mapped surfaces.
Wk 4
Physically based rendering
LectureThe microfacet model, the Cook-Torrance BRDF, Fresnel, geometry, and normal distribution terms. Metallic-roughness workflow and energy conservation.
PracticeImplement a PBR material with metallic and roughness inputs and validate it against reference spheres.
ProjectPBR material system integrated into the running scene.
Milestone
Wk 5
Specification presentationPresentation
LectureScoping a real-time graphics project: feature budget, target frame rate, asset pipeline, and technical risks. Rubric for the specification defense.
PracticeSTUDENT PRESENTATION milestone, specification. Teams present their project concept, target platform and engine, the rendering features they will build, an asset and milestone plan, and a frame-rate and quality budget.
ProjectApproved project specification and a vertical slice plan.
Visibility
Wk 6
Scene graphs and spatial structures
LectureScene graphs, bounding volume hierarchies, frustum and occlusion culling, and level-of-detail selection. Sorting for opaque and transparent draws.
PracticeBuild a scene graph with frustum culling and a BVH, and measure the draw-call reduction.
ProjectCulling and scene-management layer feeding the renderer.
Wk 7
Shadows and depth techniques
LectureShadow mapping from Williams onward: depth bias, peter-panning, percentage-closer filtering, and cascaded shadow maps for large scenes.
PracticeAdd cascaded shadow maps with PCF and tune bias to remove acne and peter-panning.
ProjectDynamic shadowing across the project scene.
Milestone
Wk 8
Interim demo presentationPresentation
LectureDemonstrating a vertical slice: what a credible interim build shows and how to measure progress against the specification.
PracticeSTUDENT PRESENTATION milestone, interim demo. Teams demo a playable vertical slice with lighting, shadows, and assets in engine, report current frame timings, and show their profiler output.
ProjectPlayable vertical slice with core rendering features working.
Global illumination
Wk 9
Ambient occlusion and image-based lighting
LectureApproximating indirect light: screen-space ambient occlusion, prefiltered environment maps, irradiance probes, and reflection capture.
PracticeAdd SSAO and image-based lighting from an HDR environment map to the project.
ProjectIndirect-lighting layer raising visual fidelity.
Performance
Wk 10
Profiling and frame-rate optimization
LectureFinding the bottleneck: CPU versus GPU bound, draw-call batching, instancing, overdraw, and bandwidth. GPU profilers and frame capture tools.
PracticeProfile the project with a GPU frame debugger, then apply batching and instancing to hit the frame-rate budget.
ProjectOptimized build meeting the target frame time.
Advanced
Wk 11
Deferred shading and post-processing
LectureForward versus deferred rendering, the G-buffer, tiled and clustered shading, HDR, tone mapping, and bloom.
PracticeImplement a post-processing chain with HDR tone mapping and bloom, and compare forward and deferred costs.
ProjectPost-processing pipeline and rendering-path choice locked in.
Wk 12
Animation, particles, and polish
LectureSkeletal animation and skinning, particle systems, and integration of gameplay systems with the render loop. Determinism and the fixed timestep.
PracticeAdd a skinned animated character or a particle system and integrate it with the gameplay loop.
ProjectFeature-complete build ready for the final defense.
Milestone
Wk 13
Final demo and oral defensePresentation
LectureCourse synthesis: from the rendering equation to a shipped real-time engine demo, and the engineering tradeoffs that defined the project.
PracticeSTUDENT PRESENTATION milestone, final demo with oral defense. Teams present the finished interactive application, walk through their rendering architecture, justify performance and quality tradeoffs, and answer technical questions.
ProjectFinal interactive real-time graphics application with documentation.
AI tools in this course.

Students use AI coding assistants and vibe-coding to scaffold and refactor engine code, generate and debug GLSL and HLSL shaders, and translate lighting math such as the Cook-Torrance BRDF into working fragment shaders. They drive Unity and Unreal editor tasks and GPU tooling through assistants and MCP servers that expose the engine, RenderDoc captures, and the build system, asking the model to read a frame capture and propose batching or culling fixes. AI also generates test scenes, reference spheres, and synthetic assets, and helps analyze profiler output and frame timings to explain where the frame budget is spent. The emphasis is on reading and validating generated shader and pipeline code, since silent correctness errors in rendering are easy to miss.

Student project

Each team builds one interactive real-time 3D application across the term, either a small game or an interactive renderer, in Unity, Unreal, or a custom engine. The project grows weekly from a shaded primitive to a feature-complete build with physically based shading, shadows, indirect lighting, and a met frame-rate budget. The same artifact is presented at the specification, interim, and final milestones.

Requirements

  • Build a working system, not a set of disconnected exercises.
  • Be original: a new system that solves a real problem, not a re-implementation of a tutorial or course demo.
  • Show real depth: real data, real users or realistic load, and engineering trade-offs that are measured rather than assumed.
  • Carry one running project from specification to a deployed, defensible result across the whole term.
  • Work in a team of three or four and defend the design at each of the three presentations (weeks 5, 8, and 13).

Example projects

First-person exploration demo with dynamic time of dayTop-down arena game with instanced enemy crowdsCustom OpenGL or Vulkan PBR scene viewerProcedural terrain renderer with LODStylized racing prototype with post-processingPhysics sandbox with real-time shadowsArchitectural walkthrough with image-based lighting

Assessment & grading

Grading is project-based, with no written exam. Teams of three or four present one running project three times.

ComponentWhat it coversWeight
Project · SpecificationPresentation 1 (week 5): problem, objectives, and architecture20%
Project · InterimPresentation 2 (week 8): the working system demonstrated live30%
Project · FinalPresentation 3 (week 13): end-to-end demo with oral defense50%

Tools & platforms

  • Unity: cross-platform game engine for gameplay and rendering
  • Unreal Engine 5: high-fidelity engine with Nanite and Lumen
  • OpenGL: cross-platform graphics API for custom renderers
  • Vulkan: low-overhead explicit graphics and compute API
  • GLSL: OpenGL Shading Language for vertex and fragment shaders
  • HLSL: High-Level Shading Language used by DirectX and Unreal
  • RenderDoc: open-source single-frame GPU debugger and profiler
  • NVIDIA Nsight Graphics: GPU frame capture and performance analysis
  • Blender: open-source asset authoring and export pipeline
  • Tracy: real-time frame and CPU and GPU profiler
  • Shadertoy: browser shader prototyping environment
  • Dear ImGui: immediate-mode debug UI for engine tooling

Free online courses

Existing free, video-based courses this course can build on, for self-study or as a teaching basis.

Primary literature

Seminal works to read for graduate-level depth.

References

Books and resources link to an online or publisher page.

Role in each concentration

ConcentrationRole
Intelligent Software SystemsElective
Networking & Cyber SecurityElective
AI & RoboticsElective
AI and Quantum Computing for FinanceElective
Immersive Systems & Game DevelopmentCore · Semester 1
Defense Technologies & Autonomous SystemsElective