Reduce Binding – Binding is the action that you have to perform to make something ‘current’ or ‘active’ before you use them.We will be looking at techniques that allow us to render lots of things with less draw calls. Every time you do one of these, there is a cost. Reducing Draw Calls – These are the functions you invoke to tell OpenGL to render something.There are two main goals for making OpenGL fast. Think of it as a type-safe printf on steroids or c++’s answer to python’s string formatting. This library is already being standardized into c++20 so we should get used to using it. fmt lib as out text formatting and printing library.This is a modern alternative to GLEW and even has some awesome error checking helping functionality. glbinding for getting our OpenGL extensions.glm as our math types and operations library.QtCreator as an IDE (I use this at work and is a pretty good IDE with debugging interface and code navigation).Visual studio for the c++ compiler (well we don’t have to, but it keeps setup simple).vcpkg to manage our dependencies (no-one likes spending hours building libraries and dealing with linclude directories and linking errors).C++ 11 using modern best practices, which means RAII, lambdas, standard library data structures and algorithms etc… (c++11, 14, 17 and now 20 are fine, its just that we wont really be using any features which distract us).Have fun – other wise what’s the point of us being on this ball in space?.Incremental Learning – We only just enough to get the point across and then once we have fully understood a topic, we move on.Simple and Clean Code – This means readable code with clear names and not introducing complexity for complexities sake.If I can’t explain it, then I don’t contain it! Daniel ‘dokipen’ Elliott Jones Main Goals This is also a way to ensure that I myself understand the material.Also I wanted to keep it as simple as possible and not have too much abstraction until quite further down the line, and even then I am thinking of a separate tutorial series for game engine architecture which would deal with a lot of the abstraction. I wanted my course to be quite linear in structure so someone can follow in one straight path. The Cherno’s lessons are quite comprehensive and are great at showing of how various parts of opengl work.I am inspired by other content creators (I can’t go without mentioning from and an Yan ‘ Chernikov from The Cherno youtube channel), so I want to spread my own insights as well in the hope it might inspire others. The way I explain things may be slightly different to someone else and that might help something click in someone’s mind. I myself learn best when there are multiple resources that all explains things slightly differently that I can cross reference and fill in any gaps in my understanding from one resource or another. There is no harm in there being another resource out there for people to learn from.This series differs from some other resources out there in that it focuses on totally modern OpenGL and skips to the most performant style and skips some legacy stuff. This is the tutorial I would have wanted when I was learning OpenGL. I couldn’t find any tutorials that taught OpenGL with the Modern ‘Low Driver Overhead’ Approach.There are some great sites, books, videos and articles out there. Yes, there are hundreds of OpenGL tutorials out there, why should you consider following this one? Well my first answer to that would be… follow ALL of them. But don’t let that discourage you! Why do we need another OpenGL tutorial? Any piece of hardware or software is allowed to implement OpenGL to result in something that when you call those function, you get an image out the other end. All the OpenGL specification states are some functions and the expected behaviour they should invoke based upon a bunch of state. If you are not familiar with OpenGL, then it is a Graphics API (Application Programming Interface) that is a specification. I’m hoping that the reason that you are here is because you already know what OpenGL is and that you are looking for something a little bit different. For the first series of posts, we are going to be exploring OpenGL.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |