OpenGL
Logo OpenGL
V této části o programování v jazyku C se zaměřím na knihovnu OpenGL. Tato knihovna se používá pro vykreslování 3D objektů. Například při programování her. Nepopisuji zde syntax programovacího jazyka C. Tím se zabývá Programování v C/C++ a já budu předpokládat, že v C už umíte. Určitě bude i výhodou, pokud budete mít nastudované programování v Linuxu, ale není to nutné.
Obsah
Zdrojové soubory z příkladů pro linux si můžete stáhnout zde: zdrojaky-opengl.zip. Pro windows (Visual Studio) zde: zdrojaky-opengl-vs2013.zip, nebo zde: zdrojaky-opengl-vs2017.zip
Kromě toho se vám bude ještě hodit, pro kapitolu o assimpu, model Nanosuit.
Jak začít s OpenGL? Nejdřív musíte začít s matematikou. Tak hurá na to :-).
Matematické základy
- Matematika
- Popis goniometrických funkcí, vektorů a matic.
- 2D transformace
- Transformace souřadnic ve 2D.
- 3D transformace
- Transformace souřadnic ve 3D.
- Perspektiva
- Perspektivní zobrazní 3D prostoru.
- Osvětlení
- Phongův model, řešení osvětlení tělesa.
Úvod do OpenGL a souvisejících knihoven
- O OpenGL
- Teoretický úvod do OpenGL. Co je OpenGL, OpenGL ES, WebGL, Vulkán, GLSL a graphics pipelnine.
- GLFW vs Freeglut
- Vytvoření okna a interakce s klávesnicí a myší.
- Glad vs Glew
- Získání odkazů na OpenGL funkce pomocí knihoven Glad a Glew.
- OpenGL - matematické knihovny
- V této kapitole se podíváme na dvě knihovny, které vám pomohou s matematickými výpočty.
Začínáme programovat
- OpenGL - GLSL
- O GLSL (OpenGL shader language).
- OpenGL - shadery
- Použití shaderů (GLSL). Získávání odkazů na shader attribute a uniform proměnné.
- OpenGL - příklad
- První kompletní příklad vykreslování pomocí OpenGL. Trojúhelníky a jehlanu.
- OpenGL - kamera
- Vykreslování pomocí indexů vrcholů (glDrawElements()). Změna pozice kamery. Funkce LookAt().
- OpenGL - osvětlení
- Ambient, diffuse a specular osvětlení prakticky.
- OpenGL - textury
- Použití obrázku jako textury plochy.
- OpenGL - pohyb FPS
- Pohyb ve stylu FPS (First person shooter)
- OpenGL - Assimp
- Použití Open Asset Import Library pro zobrazení 3D modelů.
- OpenGL - zdroje
- Odkazy na zdroje a další OpenGL/WebGL/JOGL tutoriály.