SHADER PROGRAMMING - 2027/8

Module code: DMA3021

Module Overview

Shaders are small but powerful programs that control how objects are drawn and how light interacts with materials in real-time graphics. They are used in video games to achieve a variety of artistic effects which feed into the overall aesthetic experience and usabillity of the game. This module will develop your skills in designing and implementing custom shaders for games using visual scripting and languages such as HLSL and GLSL. You will learn how shaders harness the GPU pipeline to produce a range of visual effects which are optimised for performance. We will look at topics such as vertex and fragment shaders, surface and post-processing effects. By the end of the module, you will have an understanding of how to program your own visually engaging game-ready shaders.

Module provider

Music & Media

Module Leader

WEINEL Jon (Music & Med)

Number of Credits: 15

ECTS Credits: 7.5

Framework: FHEQ Level 6

Module cap (Maximum number of students): N/A

Overall student workload

Independent Learning Hours: 96

Lecture Hours: 12

Laboratory Hours: 24

Guided Learning: 12

Captured Content: 6

Module Availability

Semester 2

Prerequisites / Co-requisites

N/A

Module content

Indicative content includes: 

  • Uses of shaders in video games design 
  • Real-time rendering pipelines and the GPU
  • Shader programming languages such as HLSL and GLSL
  • Visual scripting tools for shader development
  • Surface shaders, vertex shader and fragment shaders
  • Post-processing effects
  • Compute shaders
  • Implementing shaders in modern game engines
  • Performance considerations and optimisation
  • Graphics programming
  • Materials and lighting models
  • Live shader coding and the demoscene

Assessment pattern

Assessment type Unit of assessment Weighting
Coursework Shader Development Portfolio 100

Alternative Assessment

N/A

Assessment Strategy

The assessment strategy is designed to give students the opportunity to demonstrate their understanding of shader programming and its creative application within real-time graphics. Students will show their ability to design a range of shaders that meet specific artistic and technical requirements, reflecting both aesthetic judgement and technical skill. Students will be encouraged to explore the creative potential of shaders through iterative development and critical reflection, supported by feedback from tutors and peers. 

Assessment 1: Shader Development Portfolio

Students will design and implement a portfolio of shaders that demonstrate a range of techniques and visual effects. This work will showcase the student¿s ability to combine artistic intent with technical execution and performance optimisation. The portfolio will be accompanied by reflective commentary that evaluates the design and development processes used. 

Formative assessment will be provided throughout the module during lectures and lab sessions, where students will present and discuss their shader experiments and works-in-progress. Ongoing feedback will guide students in refining their creative and technical approaches, supporting the production of professional, game-ready shader work suitable for inclusion in their portfolios.

Module aims

  • Develop understanding of the theory and practice of shader programming for real-time rendering.
  • Enable students to apply advanced graphics programming techniques to achieve specific visual outcomes.
  • Encourage creative and technical experimentation with shaders to produce original and visually striking effects.
  • Build professional competence in integrating shaders within game engines and real-time pipelines.
  • Foster critical awareness of creative and technical issues relating to shader development and associated terminology.

Learning outcomes

Attributes Developed
001 Apply shader programming techniques to create real-time visual effects KCP
002 Analyse artistic objectives and design shaders to meet requirements KCP
003 Integrate shaders within game engines KPT
004 Communicate and document shader workflows and technical processes in a professional manner PT

Attributes Developed

C - Cognitive/analytical

K - Subject knowledge

T - Transferable skills

P - Professional/Practical skills

Methods of Teaching / Learning

The learning and teaching strategy for this module is designed to develop specialist expertise in the area of shader programming. It enables students to develop their creative and technical skills drawing on both artistic and programming strands in order to design and implement shaders that fullfill the aesthetic requirements of specific use cases related to modern video games, and provide well optimised/performant solutions. Through the course of the module, students will learn about various theoretical and practical approaches related to shader programming, and will be challenged to apply these to develop a portfolio of shaders. 

The learning and teaching methods primarily use a combination of lectures and labs. Lectures will deliver new theoretical concepts, analyse examples and invetigate practical techniques related to shader programming, providing space for discussion. Labs will provide structure materials and tasks that allow students to explore the development of shaders using a range of techniques. They will be encouraged to extend these techniques and apply them to a range of problems, developing their own solutions in response to feedback, and critically reflect on these.

Indicated Lecture Hours (which may also include seminars, tutorials, workshops and other contact time) are approximate and may include in-class tests where one or more of these are an assessment on the module. In-class tests are scheduled/organised separately to taught content and will be published on to student personal timetables, where they apply to taken modules, as soon as they are finalised by central administration. This will usually be after the initial publication of the teaching timetable for the relevant semester.

Reading list

https://readinglists.surrey.ac.uk
Upon accessing the reading list, please search for the module using the module code: DMA3021

Other information

The Department of Music and Media is committed to developing graduates with attributes encompassing Employability, Digital Capabilities, Global and Cultural Capabilities, Sustainability, and Resourcefulness and Resilience. 

Employability: This module enables students to develop specialist skills in shader programming, which are widely used in the games industry. Expertise in this area will open up new avenues of employment for students in areas such as technical art where shader programming skills are required. 

Digital Capabilities: Students will learn how to use industry-standard programming languages for real-time graphics, including node-based visual scripting and languages such as HLSL and GLSL. They will learn how to integrate these languages in the context of modern game engines, expanding their capabilities to deliver visually engaging digital experiences. 

Global and Cultural Capabilities: Examples on this module will draw from a wider range of global examples, examining various video games and the culture surrounding shader programming via live shader coding competitions and demoparties. Through this they will gain an awareness of the spectrum of international contexts and vibrant culture surrounding shader programming. 

Sustainability: Where relevant, this module encourages students to consider the ethical and sustainable use of computational resources in graphics programming. Students will evaluate performance and optimisation strategies in terms of energy efficiency and hardware usage, promoting sustainable practices in the creation of real-time visual effects.

Resourcefulness and Resilience: Students are guided to reflect, iterate, and adapt their shader designs through problem-solving and experimentation. They will respond flexibly to technical and creative challenges in shader development, learning to refine their work based on feedback and performance considerations.

Please note that the information detailed within this record is accurate at the time of publishing and may be subject to change. This record contains information for the most up to date version of the programme / module for the 2027/8 academic year.