CS247 spring2020 lecture 01 all.ppt - Compatibility...
Transcript of CS247 spring2020 lecture 01 all.ppt - Compatibility...
CS 247 – Scientific VisualizationLecture 1: Introduction
Markus Hadwiger, KAUST
2
Lecture Overview
Goals
• Basics: Learn the most important techniques in scientific visualization
• Practice: Implement scalar and vector/flow field visualization techniques in OpenGL
Time and location
• Monday 16:00 – 17:30, Thursday 16:00 – 17:30 (for now; to be discussed later), Bldg 9, Rm 3140.
Course webpage: http://faculty.kaust.edu.sa/sites/markushadwiger/Pages/CS247.aspx
Contact
• Markus Hadwiger: [email protected]
• Matej Mlejnek: [email protected]
• Mohamed Ibrahim: [email protected]
Prerequisites
• C/C++ programming, computer graphics, linear algebra, multi-variable calculus
• OpenGL experience (a basic graphics course, ...) very helpful !
3
Syllabus (1)
• Introduction
• Visualization basics, pipeline, and examples
• First scalar visualization example: iso-contouring
• GPU and computer graphics primer
• Data representation (grid types, data structures)
4
Syllabus (2)
Scalar field visualization
• Iso-surface rendering
• Volume rendering
• Transfer functions
• Volume lighting
• Unstructured grid visualization
Applications
• Medical visualization
• Industrial CT (computed tomography)
• CFD (computational fluid dynamics)visualization of scalar quantities
5
Syllabus (3)
Vector field and flow visualization
• Direct vs. indirect techniques
• Particle tracing
• Integral curves and surfaces
• Dense flow visualization techniques
Applications
• CFD flow visualization
• Weather visualization
If time permits
• Basic tensor visualization
• Visualization systems
6
Lecture Structure and Grading
Lectures
Weekly reading assignments (required + sometimes additional optional ones)
• Part of quiz questions (see later)
Programming assignments
• 6+1 programming assignments; short written report + personal presentation for each
Quizzes
• 4 quizzes, 30 min each;announced a week in advance, roughly every 3-4 weeks
• From lectures, (required) reading assignments, programming assignments
Grading: 60% prog. assignments; 40% quizzes
No mid-term/final exam!
7
Resources
Course webpage: http://faculty.kaust.edu.sa/sites/markushadwiger/Pages/CS247.aspx
Textbooks:
• Data Visualization: Principles and Practice
• Real-Time Volume Graphics
Additional books:
• The Visualization Toolkit:An Object-Oriented Approachto 3D Graphics (4th Edition)
• The Visualization Handbook
• OpenGL Programming Guide (9th edition, OpenGL 4.5)www.opengl.org/documentation/red_book/
For GPU, GPGPU, and graphics programming, also look here:
http://faculty.kaust.edu.sa/sites/markushadwiger/Pages/CS380.aspx
8
Programming Assignments (1)
6 assignments (+1 introductory)
• Based on C/C++ and OpenGL
• You get a basic framework from us (in bitbucket/git repository)
Organization
1. Use bitbucket/git to get material and submit solution(bitbucket.org/kaust_cs247/cs247_2020)
2. Get assignment info and framework by forking the git project
3. Submit solution and report via git by submission deadline
4. Personal presentation after submission
9
Programming Assignments (2)
• Submit via bitbucket+git at the latest on day the assignment is due(code, libs, everything that is needed to run your program)
• Submission must include short report (2 pages, pdf),including short explanation of algorithms, your solution, problems,how to run it, screenshots
• Personal presentations:Present your program live and explain source code (10-15 min)
– Sign up for presentation slot in advance
– Use your own laptop (or ask us)
10
Programming Assignments (3)
Grading
• Submission complete, code working for all the required features
• Documentation complete (report, but also source code comments!)
• Personal presentation
• Optional features, coding style, clean solution
• Every day of late submission reduces points by 10%
• No direct copies from the Internet!You have to understand what you program:your explanations during the presentations will be part of the grade!
11
Programming Assignments (4)
Teaching Assistants:
• Matej Mlejnek ([email protected]) –main contact for assignments; assignment presentations
Bldg 1, level 2, room 2114
• Mohamed Ibrahim ([email protected]) –help with programming questions
Bldg 1, level 2, room 2101
Help in programming assignments (in this order!):
1. Think about it, read about it, google it!
2. Discuss on Piazza: http://piazza.com/kaust.edu.sa/spring2020/cs247
3. Ask TAs (Matej, Mohamed)
12
Programming Assignments Schedule (tentative)
Assignment 0: Lab sign-up: setup piazza + bitbucket account, fork repo until Feb 3
Basic OpenGL example
Assignment 1: Volume slice viewer until Feb 17
Assignment 2: Iso-contours (marching squares) until Mar 2
Assignment 3: Iso-surface rendering (marching cubes) until Mar 16
Assignment 4: Volume ray-casting, part 1 until Apr 06
Volume ray-casting, part 2 until Apr 13
Assignment 5: Flow vis 1 (hedgehog plots, streamlines, pathlines) until Apr 27
Assignment 6: Flow vis 2 (LIC with color coding) until May 10
13
Reading Assignment #1 (until Feb 3)
Sign up for piazza! http://piazza.com/kaust.edu.sa/spring2020/cs247
Read (required):
• Data Visualization book, Chapter 1
• Data Visualization book, Chapter 2 until 2.3 (inclusive)
• Download and look at:NIH/NSF Visualization Research Challenges report
http://gvi.seas.harvard.edu/sites/all/files/NIH-NSF-VRC-Report.pdf
• Start familiarizing yourself with OpenGL if you do not know it !
Thank you.
Thanks for material
• Helwig Hauser
• Eduard Gröller
• Daniel Weiskopf
• Torsten Möller
• Ronny Peikert
• Philipp Muigg
• Christof Rezk-Salama