Table of Contents
Webinar overview: 3D Graphics in C++
Dr. Yilmaz Yoru shares his knowledge on graphics, as well as its counterpart analyzers and calculations used in 3D C++. He uses C++ Builder for most of his examples but almost any compiler can be used for the projects he demoed. Check out his website and other projects here.
Why use C++ for 3D
C++ is one of the top options if you are working with 3D graphics for the same reason you use it in embedded systems and high frequency trading—speed and performance.
Any programming language can execute basic 2D graphics, but if we want to display 3D graphics in real-time (e.g. 3D simulations or rendering for video games), then a language and environment that runs fast is essential. Furthermore, C++ also provides support for some of the most popular 3D libraries available such as OpenGL (GLUT) or Direct3D libraries.
Features of C++ used in 3D
There are a couple of useful features in C++ that can be used in general programming as well as 3D work. Watch the session to grasp the fundamentals of these features and how it can be used in 3D C++. Some of the features included:
- Class features (constructors, move, copy, move operator, etc.)
We have other sessions in the Summer CodeFest that talk about some of these features such as lambdas and templates. Visit our blog to find them.
Color Management and Color Applications
[In modeling for 3D,] Pixels are the real graphics.
Graphical work in 2D/3D is primarily managing how the colors of pixels change and the underlying mathematics that decides when and how these changes happen.
The bulk of the work is computational and applied mathematics. Determining how pixels change will rely on complex mathematical models. And consequently in modern 3D, programmers must find a way to visualize gigabytes worth of numbers. Fortunately, the C++ features mentioned earlier can greatly simplify this as you are working more closely with the actual data and memory—and the results can be shown in real time too.
As discussed earlier, 3D work is fundamentally the crunching of numbers using appropriate mathematical operations and models. Here are some examples shared in the presentation:
- Rotation matrices (used in 3D projection, vectors, robotics)
- Euler formulas (shows how a single axis parameter in 2D can be rotated to create 3D shapes)
- Quaternions (used to describe orientation or rotations in 3D space using an ordered set of four numbers)
- Octonions, rotors, and beyond (even more complex scalar and complex vectors using advanced algebra)
Slide Deck Presentation
Please email Dr. Yilmaz for his copy of his presentation slides.
You can also find Dr. Yoru’s website here.