In April 2017, Dr. Vijay D. Gokhale, sir, launched a one-of-a-kind, one-and-a half-year-long ‘Real-Time Rendering’ course. The course covers real-time rendering with OpenGL using the fixed function pipeline on Windows and Linux, and using the programmable pipeline on Windows, Linux, MacOS, Android, and iOS. Additionally, it covers the WebGL and Direct3D on Windows. The salient features of the course are the usage of native windowing, no frameworks, and minimal external dependencies. The total lines of source code, along with assignments, add up to minimum half a million. Therefore, over 700 students, professionals, and senior professionals have availed of this course to build their programming expertise, irrespective of whether they would work in the graphics domain. The course has completed its five iterations, and at the time of writing, the sixth is going strong.
Meanwhile, in the ever-increasing quest towards realism, efficiency, and to cater to the emerging needs of the data processing industry has rolled out another technology named ‘Vulkan’. Like OpenGL the Vulkan is an open standard implemented in the GPU driver. The OpenGL programmable pipeline is a very low-level programming interface to rendering and the GPU. Notwithstanding OpenGL’s reputation, compared to Vulkan, OpenGL is several levels more abstract. That will give the reader an idea of the low-level nature of Vulkan. Veteran programmers have described their experience as one of writing a miniature driver. In a paradigm-shifting decision, Vulkan is designed to process any data with the help of a GPU, rendering being one of its applications. Among other things, the Vulkan API is extremely verbose. Microsoft Direct 3D 12 and Apple’s Metal are comparable to Vulkan in terms of abstraction levels and capabilities.
On students’ earnest request, staying true to his motto, articulated by the great saint Ramdas, “जे जे आपणासी ठावे, ते ते दुसऱ्यासी साांगावे, शहाणे करून सोडावे सकळ जन”, Sir announced the first-ever Advanced Real-Time Rendering course. Logically consistent, this step may seem to the external observer, but those near him, who know about his health, about the Herculean hard work he has done so far, about the energy that this course would suck out of him, this was nothing short of a miracle and a feast. After careful deliberation and background efforts of more than one year, the course started in January 2025, without any official end date, with 160 students who had done the Real-Time-Rendering course from Sir.
The ARTR course retained the structure of RTR along with its salient features of the usage of native windowing, no frameworks, and minimal external dependencies.
The course covers the following:
- Vulkan on Windows.
- Vulkan on Linux.
- Vulkan on Android using NDK.
- Vulkan on MacOS via MoltenVK.
- Vulkan on iOS via MoltenVK.
- WebGPU on Web.
- Metal on MacOS.
- Metal on iOS.
- DirectX 12 on Windows.
On each platform, students learn, right from the creation of Blue full screen using native windowing to 24-sphere applications. Along the journey, students end up learning all the key techniques in rendering, viz., drawing 2D/3D shapes using geometric primitives, 2D/3D viewing, projections, and transformations, along with colours, textures, materials, and the lights!
Usage of native windowing and no framework is several-fold more challenging than OpenGL. Just to give you an idea, it takes 450 lines to render a placeholder bluescreen using the fixed function pipeline, 650 lines using the programmable pipeline, and whooping 3500+ lines using Vulkan. Those 3500+ lines of code in Vulkan without any framework stand tall as testimony to Sir’s prowess, skill, perseverance, hard work, and sheer passion. Vulkans’ support for multithreading adds complexity in the form of the programmer having to deal with non-trivial synchronization mechanisms, such as fences, even in the boilerplate code. The immense volume of the code was such that for the four months, we didn’t have any rendering-related output to show and had to be content with the success logs in the log file. The estimated lines of code would add up to 2 million. At the time of writing, we have finished the Vulkan on Windows in the context of the course and are
moving onto the second part, which is Vulkan on Linux using X Windows. Though not planned initially, the students have shown great enthusiasm and taken initiative by forming a group leader–group member system along the lines of the RTR, with the intention of implementing a WebGPU project and the final project. The ARTR course is also a certification course, as the RTR is.
As students, we are privileged to be a part of a one-of-its-kind course not only at the city or state level but national and global level.
