Ekatwikz / ComputerGraphicsLabs

WPF Applications, Image Filtering Algorithms, Rasterization/Drawing Algorithms

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Computer Graphics Labs

My projects for the CG1 course @ PW

  • WPFFilters was the image filtering algorithms for Labs 1 & 2,
  • WPFDrawing was the shape drawing/filling algorithms for Labs 3 & 4

Everything was done with just WPF and no graphics libraries,
each operation was done directly on the respective pixel buffer, by hand

(TIP: click a gif/heading for a full HD demo 😉)

Image Filtering App Demo

Cool stuff that wasn't part of the tasks:

  • When editing a Filter at an arbitrary position in the "currently applied" Collection,
    don't naively recompute the effect of the entire collection (that would get very slow whenever convolution filters are involved),
    but instead use a hashing trick to only recompute the filters which need to be recomputed
  • Pre-computing lookup tables for the pixel-by-pixel filters,
    which greatly speeds up things like gamma filters which have math that doesn't play well with realtime refreshing

Biggest things I learned:

  • Filtering algorithms aren't too hard, but propagation of change is quite non-trivial
  • Creational design patterns are very important 😅

Drawing App Demo

Biggest things I learned:

  • Propagation of change is absolutely non-trivial
  • Message passing can be brutal. 😭

About

WPF Applications, Image Filtering Algorithms, Rasterization/Drawing Algorithms


Languages

Language:C# 100.0%