GLSL aka Open GL - Blender Contributor Custom Shader Development Basics.

ECOSYSTEM research · Game Development

(Wiki)[https://en.wikipedia.org/wiki/OpenGL Shading Language]

OpenGL Shaders in Blender: A Developer’s Guide to GLSL, BSL, and the GPU Module

Blender is an unusually interesting graphics codebase to study because it sits at the intersection of traditional OpenGL rendering, modern Vulkan development, Apple's Metal API, offline rendering, real time rendering, compute workloads, UI rendering, and an enormous production shader library.

For a developer interested in contributing to Blender, learning GLSL is therefore only the first layer.

The deeper goal is understanding how Blender represents GPU programs independently of the graphics API that eventually executes them .

Modern Blender does not want most rendering code tightly coupled to OpenGL. Instead, Blender's GPU module provides an abstraction over OpenGL, Vulkan, and Metal , while Blender's shader infrastructure allows much of the same shader source to be translated or adapted for those backends.

This means that a Blender contributor should think:

Write a Blender GPU shader that can execute on OpenGL, Vulkan, and Metal.

Back to ECOSYSTEM research