matf-racunarska-grafika

View on GitHub

Vežbe

Osnovna literatura

Osnovni izvor za učenje računarske grafike je knjiga Learn OpenGL sa pratećim primerima sa časova vežbi.

Dokumentacija

Alati

Dodatna (neobavezna) literatura

Kako da faktorišem projekat u kohezivne i logične module koje je lako razumeti i modifikovati?

Kako da renderujem fotorealistične scene?

Kako da naučim osnove matematike računarske grafike?


Algoritam za učenje računarske grafike

setup_env()
examples, book = download()
knowledge = set()
project = set()

def experiment(example):
	for e in choose(range(0, 10)):
		example_modifed = modify(knowledge, example)
		Y_guessed = guess_output(knowledge, example_modifed)
		Y_real = run(example_modifed)
		knowledge |= learn(knowledge, Y_guessed, Y_real, book, example)

def practice(example):
	while True:
		scratch = template(example)
		knowledge |= read(knowledge, materials)
		knowledge |= try_implement(knowledge, scratch, example, 30min)
		if run(scratch) == run(example):
			return

for week in range(0, 13):
	knowledge |= read(knowledge, book, week)  
	knowledge |= lectures(knowledge, week)

	for example in examples(week):
		experiment(example)
		practice(example)

	for task in project_tasks(0, week):
		knowledge |= try_implement(knowledge, project, task)
		if used_gpt():
			knowledge = set()
	
	if not project.contains(project_tasks(week)):
		knowledge |= ask_for_help(project, project_tasks(week), knowledge)
	
	take_break_and_rest()

points = submit(project)
grade = exam(knowledge, project)

assert points == 25 
assert grade == 10

Osnove računarske grafike

01 Uvod u interaktivnu računarsku grafiku

Lekcije:

Primeri:

Snimci:

Glavni koncepti:


02 Grafička protočna obrada

Lekcije:

Primeri:

Snimci:

Glavni koncepti:


03 Šejderi i Teksture

Lekcije:

Primeri:

Glavni koncepti:


04 Koordinatni sistemi i Kamera

Lekcije:

Primeri:

Glavni koncepti:


05 Kamera - kretanje

Lekcije:

Primeri:

Glavni koncepti:


Kraj gradiva za I kolokvijum


06 Osvetljenje - Fongov model

Lekcije:

Primeri:

Glavni koncepti:


07 Tipovi izvora svetlosti

Lekcije:

Primeri:

Glavni koncepti:


08 OpenGL - Napredni koncepti

Lekcije:

Primeri:

Glavni koncepti:


09

Lekcije:

Primeri:

Glavni koncepti:


10

Lekcije:

Primeri:

Glavni koncepti:


Kraj gradiva za II kolokvijum


Napredni efekti računarske grafike

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

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

-Deffered Shading <- Framebuffers: G-bafer


Dodatno

-Instancing: primer (polje asterioda) video

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

-Advanced Lighting: Blinn-Phong video

-Gamma Correction: sRGB teksture video

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

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

-Text Rendering: prikazivanje teksta

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

-SSAO -> Framebuffers

-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

Licenca

Materijali kursa su bazirani na www.learnopengl.com sajtu napravljenom od strane Joey De Vries i kao takvi spadaju pod CC BY-NC 4.0 licencu. Celokupan tekst licence možete pronaći ovde.

Examples used in this course are based on www.learnopengl.com tutorials by Joey De Vries and as such are licensed under CC BY-NC 4.0. Full text of the licence can be found here.