Osnova 1. cvičení v C++ Milí studenti a studentky předmětu PV112. Tato osnova slouží jako pomůcka pro opakování po cvičení, například když něco nestihnete. Rozhodně neslouží k tomu, abyste si ji prošli už před cvičením a zkusili všechno naprogramovat, potom byste se na cvičení nudili a to nikdo nechce :-).  Představení cvičení, viz IntroCpp.pdf ve studijních materiálech  Popis kódu, především FreeGLUT, ukázat debugování ve VS, použít a ukázat breakpoint v simple_debug_callback, přeskočit kód ve funkci init  Vymazání okna, změna barvy mazání  Vykreslení trojúhelníku: kód vertex shaderu (vs), kód fragment shaderu (fs), data vrcholů pro vykreslení, vytvoření a načtení shaderů a získání indexů atributů, vytvoření VBO, VAO, a vykreslení. Vysvětlení kódu v initu.  Obarvení konstantou z fs o konstruktor vec3 -> vec4, swizzling  Obarvení uniform proměnnou ve fs o Představení uniform proměnných  Obarvení uniformní proměnnou ve vs, předání barvy do fs o Představíme předávání dat z vertex shaderu do fragment shaderu  Obarvení každého vrcholu jinak o Představíme další vertex attribute o Barvu jako float v rozmezí [0, 1] vs. unsigned char v rozmezí [0, 255] a parametr normalized ve funkci glVertexAttribPointer  Vykreslení domečku o jako tři trojúhelníky (9 vrcholů) o ukázka Polygon Mode (GL_FILL, GL_LINE) o jako triangle strip (5 vrcholů)  představení GL_TRIANGLE_STRIP o ostře oddělené barvy (bez přechodu) (červená střecha, žluté stěny)  opět 9 vrcholů, přechod zpět na GL_TRIANGLES  Index buffer o představení index bufferu a glDrawElements o příklad s oddělenou barvou: 7 vrcholů, 9 indexů  Sluníčko o představení GL_TRIANGLE_FAN, použití dvou glDraw* (zopakuji vrchol a použiju glDrawArrays a glDrawElements)  Uniformní proměnná 'aspect', stejný tvar objektů i při změně velikost okna o aspect = width/height o úprava ve vs, „předstupeň“ projekčních matic  pos.x /= aspect, pos.y zůstává stejná o je to trochu smysluplnější příklad na uniformní proměnnou  Vlastní invence studentů, pokud zbude čas: dveře, okna, komín, tráva, cesta, ...  Stride u bufferů, zbyde-li čas