matf-racunarska-grafika

View on GitHub

Materijali

Snimci vežbi

Primeri sa časa

Prezentacije

C++ primeri

C++ mini kurs

Zadaci za vežbu

01

-CLion: integrisano razvojno okruženje, kompajliranje, debagovanje, CMake video

-C++: osnove jezika playlist

-Git: clone, add, commit, remove, branch, checkout, push, pull, merge, rebase video

-Uvod u interaktivnu računarsku grafiku video

02

-GLFW, GLAD

-Hello Window: Skelet projekta, uključivanje biblioteka GLFW i GLAD, prozor, dorađaji

-Hello Triangle: Vertex shader, Fragmen shader, Vertex Buffer Object, Vertex Array Object, Element Buffer Object

-Debugging video

03

-Shaders: GLSL, in, out, Uniforms, Shader klasa (naša prva abstrakcija) video video
Interpolacija trougla

-Textures: teksture, mapiranje tekstura, MipMaps video

04

-Transformations: vektori, matrice, operacije nad matricama, translacije, rotacije, GLM video

-Coordinate systems: local space, world space, view space, clip space, screen space video

-Camera: pozicija, pogled, opseg, kretanje kamere, Camera klasa (još abstrakcija) video intro video camera rotation video camera class

-Rekapitulacija

05

-Colors: scena sa svetlom video

-Basic lighting: ambijentalno, difuzno, spekularno video

-Materials: postavljanje materijala, svojstva svetla, različite boje svetla video

06

-Ligthing maps: difuzne, spekularne video

-Light casters: direkciono, tačkasto, koncentrisano video

-Multiple lights: direkciono, tačkasto video

-Rekaputilacija svetlosti

07

-Assimp: instalacija i korišćenje biblioteke video

-Mesh: modeli i optimizacije video

-Modeli: formati i učitavanje modela video

-Blender: kako konvertovati bilo koji model u Blenderu tako da radi sa trenutnom implementacijom učitavanja modela

08

Engine overview:

Engine test app

9

[Engine deep dive]

Pismeni

-Depth testing: Bafer dubine, funkcija testiranja dubine, preciznost vrednosti dubine, vizuelizacija bafera dubine, z-bafer, z-value math video

-Blending: providnost, odbacivanje fragmenata, utapanje, prikaz polu-providnih tekstura video

-Face culling: winding number, odsecanja video

Grupa A

-Framebuffers: kreiranje, renderovanje na teksturu, post-procesiranje, kernel efekti video

-Instancing: primer (polje asterioda) video

-Anti Aliasing -> Framebuffers: multisampling, MSAA, Off-screen MSAA video

-Parallax Mapping -> Normal mapping: paralaks mapiranje, koso paralaks mapiranje, paralaks absorbovanje video

Grupa B

-Point shadows -> Shadow Mapping -> Framebuffers: omnidirekcione mape senki, PCF video

-Bloom -> HDR -> Framebuffers: ekstrakovanje blještavih boja, Gausov blur, blending video

-Deffered Shading -> Framebuffers: G-bafer

-SSAO -> Framebuffers

Prateće lekcije grupa A i B

-Shadow mapping: mapa senki, mapa dubine, renderovanje senki, PCF video

-Normal mapping: mapiranje normala, tangenti prostori, kompleksni objekti video

-HDR: Floating point buffers, Tone mapping, Exposure video

Dodatno

-Cubemaps: kreiranje, skybox, mapiranje okruženja, dinamične mape okruženja video video

-Advanced Data: vertex atributi, baferi video

-Advanced GLSL: GLSL promenljive, interfejsi blokovi, uniform bafer objekti video

-Geometry Shader: korišćenje, eksplodirajući objekti video

-Advanced Lighting: Blinn-Phong video

-Gamm Correction: sRGB teksture video

-Stencil testing: odbacivanje fragmenata, stencil funkcije, ivičenje objekata video

-Model and Lighting: Model i osvetljenje video

-ImGui: GUI biblioteka video video

-Text Rendering: prikazivanje teksta

Dodatna (neobavezna) literatura

-C++ Primer, 5th edition -Game Engine Architecture - Jason Gregory
-Game Programming Patterns - Robert Nystrom
-Physically Based Rendering: From Theory to Implementation 3rd Edition
-Raytracing in One Weekend