======Hardware for Computer Graphics - Workshops 2014/2015====== This page contains materials for the practice lessons of the [[https://is.cuni.cz/studium/rozvrhng/roz_predmet_gl.php?gl=14bNPGR019p1&fak=11320&skr=2014&sem=2|Hardware for Computer Graphics (NPGR019)]] course that is/has been taught during summer term 2014/2015 at [[http://www.mff.cuni.cz/|Charles University]] in [[http://www.praha.eu/jnp/cz/home/magistrat/index.html|Prague]], Czech Republic. The course official web page is/was to be found [[http://cgg.mff.cuni.cz/lectures/npgr019.cz.php|here]]. The lecturer is/was [[http://cgg.mff.cuni.cz/~pepca/|Jozef Pelikan]]. The practice lessons (workshops) are/were (mainly) backed up by [[https://gamedev.cuni.cz/contacts/|Jakub Gemrot]]. ======Dates====== Tuesdays's workshops, 10:40, SW1, Jakub Gemrot: [[mailto:gemrot@gamedev.cuni.cz|gemrot@gamedev.cuni.cz]] ======How to pass the practice====== You will have to experiment with OpenGL at home by doing assignments that will be associated with every workshop. You do not need to solve all of them, see [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshops.xlsx|assignments & scoring]]. Note that you may receive BONUS points for finishing assignments on time! You will need to gather at least N points in order to be admitted to final exam. Moreover, if you gather at least M points, you will receive bonus points during exam (10%) and if you manage to gather at least P points, you will receive even more bonus points (25% total). ======Resources====== [[http://www.opengl-tutorial.org|OpenGL 3.3 Tutorials]] we're going to follow [[https://www.opengl.org/sdk/docs/man3/|OpenGL 3.3 Reference]] [[https://www.opengl.org/registry/doc/GLSLangSpec.3.30.6.pdf|GLSL 3.3 Specification]] [[http://www.openglsuperbible.com/|OpenGL Superbible Book]] * note that Sixth edition is about OpenGL 4.3 so it does not apply to our workshops directly * you might be interested in Fifth edition instead [[http://www.openglsuperbible.com/previous-editions/|OpenGL Superbible Book previous versions]] * right, there are no "download links" there ... hmmmmmm [[http://www.directxtutorial.com/|DirectX Tutorials - paid]] * First 5 or so tutorials are free, good place start as it takes you through the first steps of D3D initialization [[http://www.rastertek.com/tutdx11.html|DirectX Tutorials - free]] * Many tutorials from the basic to complex ones ======Workshops====== **Workshop 7** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-07-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-07-Slides.pdf|(PDF)]] **(19.5.2015)** * **DirectX Introduction** * [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-Workshop-07-DirectX-Examples.zip|Example projects]] **Workshop 6** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-06-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-06-Slides.pdf|(PDF)]] **(28.4.2015)** * **OpenGL 3.3 Tutorial - Part 6** * Billboards + Particles + Object Clicking (via hack) * **Assignment** * Create a simple clicking game! * //Up-to 15+2 points// **Workshop 5** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-05-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-05-Slides.pdf|(PDF)]] **(28.4.2015)** * **OpenGL 3.3 Tutorial - Part 5** * Shadow mapping * **Assignment** * Provide "spot light" shadow mapping + blending two light sources * Visualize shadow maps * //Up-to 10+2 points// **Workshop 4** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-04-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-04-Slides.pdf|(PDF)]] **(7.4.2015 / 14.4.2015)** * **OpenGL 3.3 Tutorial - Part 4** * Normal mapping (bump mapping), Rendering to texture (screen effects) * **Assignments** * Provide calculation of TBN matrix from C++ instead of doing in VS * Provide rendering from multiple viewpoints + create own custom effect (go wild!) * //Up-to 15+4 points// **Workshop 3** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-03-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-03-Slides.pdf|(PDF)]] **(24.3.2015 / 31.3.2015)** * **OpenGL 3.3 Tutorial - Part 3** * Textured cube and different magnifying / minifying options * VBO indexing and instanced rendering * **Assigments** * Regarding glDrawElementsInstanced ... you might find following [[http://stackoverflow.com/questions/21539234/how-to-do-instancing-the-right-way-in-opengl|thread]] helpful * //Up-to 15+4 points// **Workshop 2** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-02-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-02-Slides.pdf|(PDF)]] **(10.3.2015 / 17.3.2015)** * **OpenGL 3.3 Tutorial - Part 2** * Standard shading, Playing out with fragment shaders and lights * You should review [[http://cgg.mff.cuni.cz/~pepca/lectures/pdf/pg2-02-phong.pdf|Phong lightning model]] (in Czech by Jozef Pelikán) * **Assigments** * See [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-02-Slides.pdf|slides]] * Standard Shading * //Up-to 25+9 points// * **Spoiler / Hint for 2.4** * Why you have to treat vertex normal transformation differently when computing Normal_cameraspace for non-uniform matrices? Explained [[https://www.udacity.com/course/viewer#!/c-cs291/l-101410106/m-118429131|here]] **Workshop 1** - [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-01-Slides.pptx|(PPTX)]], [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-01-Slides.pdf|(PDF)]] **(24.2.2015 / 3.3.2015)** * **OpenGL 3.3 Tutorial - Part 1** * Setting up [[http://www.opengl-tutorial.org|OpenGL Tutorial Projects]] * Triangles, Cubes, Models * Standard shading, Adjusting fragment shaders * **Assigments** * See [[http://artemis.ms.mff.cuni.cz/gemrot/lectures/hwgr/2015/HWGR-2015-Workshop-01-Slides.pdf|slides]] * Sierpinsky triangle, Animated Sierpinsky Triangle, Cube Madness * //Up-to 15+6 points//