Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming....

13
Seminar Real-Time Graphics: Shader Programming M.Sc. Julian Amann, Prof. Dr. Charles A. W¨ uthrich www.uni-weimar.de/medien/cg 10.04.2012 M.Sc. Julian Amann, Prof. Dr. Charles A. W¨ uthrich, www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Transcript of Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming....

Page 1: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Seminar Real-Time Graphics: ShaderProgramming

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich

www.uni-weimar.de/medien/cg

10.04.2012

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 2: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Organization

• Time: Tuesday, 11:00 - 12:30 Uhr, Start 10.04.2012

• Room: Seminarraum 015, B 11

• Credits: 2 ECTS

Two assignements

• Basic Effect: Do a first basic shading programPresentation in class (20 minutes - 10 minutes discussion):Concept, working self programmed example, code review

• Advanced Effect: Pick a more complex examplePresentation in class (20 minutes - 10 minutes discussion):Present concept and outline in class, implementation can bedone till the end of semester

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 3: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Organization

• Time schedule

Task Estimated TimeBasic effect programming time 8hBasic effect presentation 4hAdvanced effect presentation 14hAdavnced effect programming time 24hVisiting seminar presentations 10h

Total 60h = 2 ECTS

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 4: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Presentations

• Presentations must be given in english language

• Send me your slides before the presentation (at least one daybefore), so I can give you some feedback

• Use the provided LATEX template for presentations

• Inform me if you need a notebook for your presentation(seminar room workstation does not support DX11 orOpenGL4.x)

• Make a video/screenshot of you running program for the casethat something does not work during the presentation (thisapplies only to the first presentation)

• You have to attend all presentations

• Cite all used sources

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 5: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Topics First Assignment (Basic Effect)

• Phong and Blinn-Phong Shading

• Oren-Nayar Reflectance Model

• Gooch Shading

• Uberlight

• Volume Ray Caster

• Intersecting triangles with OptiX for Real-Time Ray Tracing

• Ray Tracing with Compute Shaders

• Post processing with OpenCL

• Post processing with CUDA

• Normal Mapping

• Toon Shading

• Projective Texturing

• Shadow Mapping

• Particle Systems

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 6: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Topics First Assignment (Basic Effect)

• ApproximateBTF

• Shadow Volume

• Shader Debugging

• Displacement Mapping with hardware tessellation

• Pulsating Objects / Flags

• Refractive Environment Mapping

• Reflective Environment Mapping

• Perlin Noise Textures

• Make your own suggestion

This list can be found on 17.04.2012 - 11:00 at the GraphischeDatenverarbeitung pinboard (opposite my office door (B11,R122)). Sign up for one topic that is not already assigned tosomeone else. (Policy: First-come, first-served)

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 7: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Road map

• 10.04.2012: today

• 17.04.2012: seminar will not take place - Registration forfirst assignment topic (Basic Effect)

• 24.04.2012: seminar will not take place - use the time toprepare your presentation and demo

• 01.05.2012: seminar will not take place - Tag der Arbeit

• 08.05.2012: First presentations

• (?): register for the second assignment (Advanced Effect)

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 8: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Exam

To get a grade hand in the following items:

• Final slides of both presentations (in PDF format)

• Working code for both assignments (Basic Effect andAdvanced Effect) and screenshots that demonstrate yourshader effect

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 9: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Code

• Should compile with Visual Studio C++ 2010 and run onWindows 7

• Should be programmed in C++, HLSL, GLSL, Cg, CUDA orOpenCL language

• You can use Direct3D11 or OpenGL 4.x

• You should deliver all source files needed to build yourapplication (also third party libraries) except the followingones: Boost 1.48.0, Boost 1.49.0, Qt 4.8.0, Qt 4.8.1, OpenCV2.3.1, wxWidgets 2.9.3, BUWFramework

• You can start from scratch or use a framework like theBUWFramework

• Document important parts: Comments in source code. Youcan also provide additional documentation (diagrams,description of algorithm as a text document, etc.) if necessary.

• You can use our gfxLab to program your assignments

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 10: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

BUWFramwork

• BUWFramework is a simple framework that helps you to getstarted with shader programming. Currently only VisualStudio C++ 2010 is supported by the framework (there aplans to port it to Linux and Visual Studio 2012)

• The framework can be downloaded from:ftp://toucan.medien.uni-weimar.de/ (user: cg, password:shader)

• Bug and feature requests can be reproted through Redmine:http://toucan.medien.uni-weimar.de/readmine (you have toregister for a user account)

Demo: How to use the BUWFramework?

• Build system: CMake

• Third party library dependencies: boost 1.48.0

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 11: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Shader Debugging

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 12: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Hints

• Start early

• Commit often (use a version control system like mercurial -see also: http://hginit.com/00.html)

• Use a build system (CMake -http://www.cmake.org/cmake/resources/software.html)

• Use shader debugging tools like Parallel Nsight (NVIDIA),Intel GPA, GPU PerfStudio 2 (AMD), PIX (DirectX),gDEBugger (OpenGL)

• Literature: GPU Gems 1-3(http://developer.nvidia.com/content/gpu-gems-part-i-natural-effects), ShaderX 1-7, GPU PRO 1-3, Papers fromvarious conferences (Siggraph, Eurographics, VMV, and manymore)

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming

Page 13: Seminar Real-Time Graphics: Shader Programming · 2013. 5. 6. · started with shader programming. Currently only Visual Studio C++ 2010 is supported by the framework (there a plans

Questions?

• If you run into trouble, you can send me an E-Mail([email protected]) or come to my office

M.Sc. Julian Amann, Prof. Dr. Charles A. Wuthrich,www.uni-weimar.de/medien/cg Seminar Real-Time Graphics: Shader Programming