Lecture 1 - Introduction Welcome! , = (, ) , - - PowerPoint PPT Presentation

β–Ά
lecture 1 introduction
SMART_READER_LITE
LIVE PREVIEW

Lecture 1 - Introduction Welcome! , = (, ) , - - PowerPoint PPT Presentation

INFOMAGR Advanced Graphics Jacco Bikker - November 2016 - February 2017 Lecture 1 - Introduction Welcome! , = (, ) , + , , ,


slide-1
SLIDE 1

𝑱 π’š, π’šβ€² = 𝒉(π’š, π’šβ€²) 𝝑 π’š, π’šβ€² +

𝑻

𝝇 π’š, π’šβ€², π’šβ€²β€² 𝑱 π’šβ€², π’šβ€²β€² π’†π’šβ€²β€²

INFOMAGR – Advanced Graphics

Jacco Bikker - November 2016 - February 2017

Lecture 1 - β€œIntroduction”

Welcome!

slide-2
SLIDE 2

Today’s Agenda:

  • Advanced Graphics
  • Recap: Ray Tracing
  • Whitted-style
  • Assignment 1
slide-3
SLIDE 3

Website

http://www.cs.uu.nl/docs/vakken/magr

  • Site information overrules official schedule
  • Downloads, news, slides, deadlines, links

Please check regularly.

INFOMAGR

Advanced Graphics – Introduction 3

slide-4
SLIDE 4

Abstract

In this course, we explore physically based rendering, with a focus on interactivity. At the end of this course, you will have a solid theoretical understanding of efficient physically based light transport. You will also have a good understanding of acceleration structures for fast ray/scene intersection for static and dynamic scenes. You will have hands-on experience with algorithms for efficient realistic rendering of static and dynamic scenes using ray tracing on CPU and GPU.

INFOMAGR

Advanced Graphics – Introduction 4

Concrete / informal:

  • 1. You’ll know how a photo-

realistic image is produced

  • 2. You know how to do this

quickly / efficient

  • 3. You have built such a renderer
  • 4. You have built an interactive

ray tracer

  • 5. You know how to do this on

the GPU

  • 6. You got a great score
  • 7. You had fun
slide-5
SLIDE 5

Topics

We will cover the following topics:

  • Ray tracing fundamentals;
  • Whitted-style ray tracing;
  • Acceleration structure construction;
  • Acceleration structure traversal;
  • Data structures and algorithms for animation;
  • Stochastic approaches to AA, DOF, soft shadows, … ;
  • Path tracing;
  • Variance reduction in path tracing algorithms;
  • Various forms of parallelism in ray tracing.

INFOMAGR

Advanced Graphics – Introduction 5

slide-6
SLIDE 6

Lectures

~13 lectures: Tuesday 11:00 – 12:45, Thursday 13:15 – 15:00 ~7 working colleges: Thursday 15:15 – 17:00 (starting week 2) Attendance is not mandatory, but of course highly recommended. We move fast; missing a key lecture may be a serious problem.

INFOMAGR

Advanced Graphics – Introduction 6

slide-7
SLIDE 7

Literature

Papers and online resources will be supplied during the course. Slides will be made available after each lecture. Recommended literature: Physically Based Rendering, Second Edition – From Theory to Implementation, Pharr & Humphreys. Morgan Kaufmann, 2010. ISBN-10: 0123750792. Recently, the Third Edition was released.

INFOMAGR

Advanced Graphics – Introduction 7

slide-8
SLIDE 8

Dependencies

It is assumed that you have basic knowledge of rendering (INFOGR) and associated mathematics. You also should be a decent programmer; this is explicitly not a purely theoretical course. You are expected to verify the theory and experience the good and the bad. A brief introduction to GPGPU and SIMD will be provided for those that did not take INFOMOV.

INFOMAGR

Advanced Graphics – Introduction 8

slide-9
SLIDE 9

Resources

You will develop a ray tracing testbed for assignment 1. As a starting point, several β€˜templates’ are available: Tmpl85.00a

A basic C++ framework for graphics programming, which

  • pens a window, provides a 32-bit RGB framebuffer, and some

basic helper classes.

gpu_lab (available halfway the course)

A basic C++ framework for GPGPU via CUDA and OpenCL.

Template_C#

A basic C# template which uses OpenTK to provide a 32-bit RGB framebuffer as well as OpenGL functionality, and Cloo for using OpenCL.

INFOMAGR

Advanced Graphics – Introduction 9

slide-10
SLIDE 10

Assignments

  • 1. (weight: 1):

Ray tracing framework

For this assignment, you prepare a testbed for subsequent assignments.

  • 2. (weight: 1):

Acceleration structures

In this assignment, you expand your testbed with efficient acceleration structure construction and traversal. This enables you to run Whitted-style ray tracing in real-time.

  • 3. (weight: 2):

Final assignment

In this assignment, you either implement an interactive path tracer, or a rendering algorithm you chose, using CPU and/or GPU rendering.

INFOMAGR

Advanced Graphics – Introduction 10

slide-11
SLIDE 11

Exam

One final exam at the end of the block. Materials to study:

  • Slides
  • Notes taken during the lectures
  • Provided literature
  • Assignments

INFOMAGR

Advanced Graphics – Introduction 11

slide-12
SLIDE 12

Grading & Retake

Final grade for assignments 𝑄 = (𝑄1 + 𝑄2 + 2 βˆ— 𝑄3) / 4 Final grade for INFOMAGR 𝐻 = (2𝑄 + 𝐹) / 3 Passing criteria:

  • 𝑄 β‰₯ 5.00 (before rounding)
  • 𝐹 β‰₯ 5.00 (before rounding)
  • 𝐻 β‰₯ 6 (after rounding)

Repairing your grade using the retake exam or retake assignment:

  • only if 𝑄 β‰₯ 4.00 and 𝐹 β‰₯ 4.00 and 𝐻 < 5.50
  • you redo P1 or P2 or P3 or E
  • this replaces the original P1, P2, P3 or E grade.

INFOMAGR

Advanced Graphics – Introduction 12

slide-13
SLIDE 13

Today’s Agenda:

  • Advanced Graphics
  • Recap: Ray Tracing
  • Whitted-style
  • Assignment 1
slide-14
SLIDE 14

Ray

A ray is an infinite line with a start point: π‘ž(𝑒) = 𝑃 + 𝑒𝐸, where 𝑒 > 0. The ray direction 𝐸 is usually normalized.

Recap

Advanced Graphics – Introduction 14

slide-15
SLIDE 15

Scene

The scene consists of a number of primitives:

  • Spheres
  • Planes
  • Triangles

..or anything for which we can calculate the intersection with a ray. We also need:

  • A camera (position, direction, FOV, focal distance, aperture size)
  • Light sources

Recap

Advanced Graphics – Introduction 15

slide-16
SLIDE 16

Recap

Ray Tracing

World space

  • Geometry
  • Eye
  • Screen plane
  • Screen pixels
  • Primary rays
  • Intersections
  • Point light
  • Shadow rays

Light transport

  • Extension rays

Light transport Advanced Graphics – Introduction 16

slide-17
SLIDE 17

Ray setup

A ray is initially shot through a pixel on the screen plane. The screen plane is defined in world space: Camera position: E = (0,0,0) View direction: π‘Š Screen center: C = 𝐹 + π‘’π‘Š Screen corners: p0 = 𝐷 + βˆ’1, βˆ’1,0 , π‘ž1 = 𝐷 + 1, βˆ’1,0 , π‘ž2 = 𝐷 + (βˆ’1,1,0) From here:

  • Change FOV by altering 𝑒;
  • Transform camera by multiplying E, π‘ž0, π‘ž1, π‘ž2 with the camera matrix.

Recap

Advanced Graphics – Introduction 17

slide-18
SLIDE 18

Ray setup

Point on the screen: π‘ž 𝑣, 𝑀 = π‘ž0 + 𝑣 π‘ž1 βˆ’ π‘ž0 + 𝑀(π‘ž2 βˆ’ π‘ž0) 𝑣, 𝑀 ∈ [0,1] Ray direction (normalized): 𝐸 = π‘ž 𝑣, 𝑀 βˆ’ 𝐹 βˆ₯ π‘ž 𝑣, 𝑀 βˆ’ 𝐹 βˆ₯ Ray origin: 𝑃 = 𝐹

Recap

π‘ž0 π‘ž1 π‘ž2 𝐹 u v Advanced Graphics – Introduction 18

slide-19
SLIDE 19

Ray Intersection

Given a ray π‘ž(𝑒) = 𝑃 + 𝑒𝐸, we determine the closest intersection distance 𝑒 by intersecting the ray with each of the primitives in the scene. Ray / plane intersection: Plane: π‘ž βˆ™ 𝑂 + 𝑒 = 0 Ray: π‘ž(𝑒) = 𝑃 + 𝑒𝐸 Substituting for π‘ž(𝑒), we get 𝑃 + 𝑒𝐸 βˆ™ 𝑂 + 𝑒 = 0 𝑒 = βˆ’(𝑃 βˆ™ 𝑂 + 𝑒)/(𝐸 βˆ™ 𝑂) 𝑄 = 𝑃 + 𝑒𝐸

Recap

π‘ž0 π‘ž1 π‘ž2 𝐹 Advanced Graphics – Introduction 19

slide-20
SLIDE 20

Ray Intersection

Ray / sphere intersection: Sphere: π‘ž βˆ’ 𝐷 βˆ™ π‘ž βˆ’ 𝐷 βˆ’ 𝑠2 = 0 Substituting for π‘ž(𝑒), we get 𝑃 + 𝑒𝐸 βˆ’ 𝐷 βˆ™ 𝑃 + 𝑒𝐸 βˆ’ 𝐷 βˆ’ 𝑠2 = 0 𝐸 βˆ™ 𝐸 𝑒2 + 2𝐸 βˆ™ 𝑃 βˆ’ 𝐷 𝑒 + (𝑃 βˆ’ 𝐷)2βˆ’π‘ 2 = 0 𝑏𝑒2 + 𝑐𝑒 + 𝑑 = 0 β†’ 𝑒 = βˆ’π‘ Β± 𝑐2 βˆ’ 4𝑏𝑑 2𝑏 𝑏 = 𝐸 βˆ™ 𝐸 𝑐 = 2𝐸 βˆ™ (𝑃 βˆ’ 𝐷) 𝑑 = 𝑃 βˆ’ 𝐷 βˆ™ 𝑃 βˆ’ 𝐷 βˆ’ 𝑠2

Recap

π‘ž0 π‘ž1 π‘ž2 𝐹 Negative: no intersections Advanced Graphics – Introduction 20

slide-21
SLIDE 21

Ray Intersection

Efficient ray / sphere intersection:

void Sphere::IntersectSphere( Ray ray ) { vec3 c = this.pos - ray.O; float t = dot( c, ray.D ); vec3 q = c - t * ray.D; float p2 = dot( q, q ); if (p2 > sphere.r2) return; // r2 = r * r t -= sqrt( sphere.r2 – p2 ); if ((t < ray.t) && (t > 0)) ray.t = t; // or: ray.t = min( ray.t, max( 0, t ) ); }

Note: This only works for rays that start outside the sphere.

Recap

Advanced Graphics – Introduction 21 O 𝐸 𝑑 t π‘Ÿ π‘ž2

slide-22
SLIDE 22

Observations

Ray tracing is a point sampling process:

  • we may miss small details;
  • aliasing will occur.

Ray tracing is a visibility algorithm:

  • For each pixel, we find the nearest object (which occludes objects farther away).

Recap

Advanced Graphics – Introduction 22

slide-23
SLIDE 23

Observations

Note: Rasterization (Painter’s or z-buffer) is also a visibility algorithm. Rasterization:

  • loop over objects / primitives;
  • per primitive: loop over pixels.

Ray tracing:

  • loop over pixels;
  • per pixel: loop over objects / primitives.

Recap

Advanced Graphics – Introduction 23

slide-24
SLIDE 24

Today’s Agenda:

  • Advanced Graphics
  • Recap: Ray Tracing
  • Whitted-style
  • Assignment 1
slide-25
SLIDE 25

An Improved Illumination Model for Shaded Display

In 1980, β€œState of the Art” consisted of:

  • Rasterization
  • Shading: either diffuse (N Β· L) or specular ((N Β· H)n), both

not taking into account fall-off (Phong)

  • Reflection, using environment maps (Blinn & Newell *)
  • Stencil shadows (Williams **)

Goal:

  • Solve reflection and refraction

Improved model:

  • Based on classical ray optics

Whitted

** : Williams, L. 1978. Casting curved shadows on curved surfaces. In Computer Graphics (Proceedings of SIGGRAPH 78), vol. 12, 270–274. * : Blinn, J. and Newell, M. 1976. Texture and Reflection in Computer Generated Images. Communications of the ACM 19:10 (1976), 542β€”547.

Advanced Graphics – Introduction 25

slide-26
SLIDE 26

An Improved Illumination Model for Shaded Display*

Physical basis of Whitted-style ray tracing: Light paths are generated (backwards) from the camera to the light sources, using rays to simulate optics.

Color Trace( ray r ) I, N, mat = NearestIntersection( scene, r ) return mat.color * DirectIllumination( I, N )

Whitted

* : T. Whitted. An Improved Illumination Model for Shaded Display.

  • Commun. ACM, 23(6):343–349, 1980.

Advanced Graphics – Introduction 26

slide-27
SLIDE 27

An Improved Illumination Model for Shaded Display

Color Trace( ray r ) I, 𝑂, mat = NearestIntersection( scene, r ) return mat.color * DirectIllumination( I, 𝑂 )

Direct illumination: Summed contribution of unoccluded point light sources, taking into account:

  • Distance to I
  • Angle between 𝑀 and 𝑂
  • Intensity of light source

Note that this requires a ray per light source.

Whitted

Advanced Graphics – Introduction 27

slide-28
SLIDE 28

An Improved Illumination Model for Shaded Display

Color Trace( ray r ) I, 𝑂, mat = NearestIntersection( scene, r ) if (mat == DIFFUSE) return mat.color * DirectIllumination( I, 𝑂 ) if (mat == MIRROR) return mat.color * Trace( I, reflect( r.𝐸, 𝑂 )

Indirect illumination: For perfect specular object (mirrors) we extend the primary ray with an extension ray:

  • We still modulate transport with the material color
  • We do not apply 𝑂 βˆ™ 𝑀
  • We do not calculate direct illumination

Whitted

Advanced Graphics – Introduction 28

slide-29
SLIDE 29

Reflection

Given a ray direction 𝐸 and a normalized surface normal 𝑂, the reflected vector 𝑆 = 𝐸 βˆ’ 2(𝐸 βˆ™ 𝑂)𝑂. Derivation: 𝑀 = 𝑂(𝐸 βˆ™ 𝑂) 𝑣 = 𝐸 βˆ’ 𝑀 𝑆 = 𝑣 + (βˆ’ 𝑀) 𝑆 = 𝐸 βˆ’ 𝑂 𝐸 βˆ™ 𝑂 βˆ’ 𝑂(𝐸 βˆ™ 𝑂) 𝑆 = 𝐸 βˆ’ 2(𝐸 βˆ™ 𝑂)𝑂

Whitted

𝑆 𝐸 𝑢 𝑀 𝑣 Advanced Graphics – Introduction 29

slide-30
SLIDE 30

Question 1: For direct illumination, we take into account:

  • Material color
  • Distance to light source
  • 𝑂 βˆ™ 𝑀

Why? Question 2: We use the summed contribution of all light sources. Is this correct? Question 3: Why do we not sample the light sources for a pure specular surface? (can you cast a shadow on a bathroom mirror?) Question 4: Why do we not apply 𝑂 βˆ™ 𝑀 to reflections? Question 5: Prove geometrically that, for normalized vectors 𝐸 and 𝑂, 𝑆 = 𝐸 βˆ’ 2 𝐸 βˆ™ 𝑂 𝑂 yields a normalized vector.

Whitted

Advanced Graphics – Introduction 30

slide-31
SLIDE 31

An Improved Illumination Model for Shaded Display

Handling partially reflective materials:

Color Trace( ray r ) I, 𝑂, mat = NearestIntersection( scene, r ) s = mat.specularity d = 1 – mat.specularity return mat.color * ( s * Trace( I, reflect( r.𝐸, 𝑂 ) d * DirectIllumination( I, 𝑂 )

Note: this is not efficient. (why not?)

Whitted

Advanced Graphics – Introduction 31

slide-32
SLIDE 32

An Improved Illumination Model for Shaded Display

Dielectrics

Color Trace( ray r ) I, 𝑂, mat = NearestIntersection( scene, r ) if (mat == DIFFUSE) return mat.color * DirectIllumination( I, 𝑂 ) if (mat == MIRROR) return mat.color * Trace( I, reflect( r.𝐸, 𝑂 ) if (mat == GLASS) return mat.color * ?

Whitted

Advanced Graphics – Introduction 32

slide-33
SLIDE 33

Dielectrics

The direction of the transmitted vector π‘ˆ depends on the refraction indices π‘œ1, π‘œ2 of the media separated by the surface. According to Snell’s Law: π‘œ1π‘‘π‘—π‘œπœ„1 = π‘œ2π‘‘π‘—π‘œπœ„2

  • r

π‘œ1 π‘œ2 π‘‘π‘—π‘œπœ„1 = π‘‘π‘—π‘œπœ„2 Note: left term may exceed 1, in which case πœ„2 cannot be computed. Therefore:

π‘œ1 π‘œ2 π‘‘π‘—π‘œπœ„1 = π‘‘π‘—π‘œπœ„2 ⟺ π‘‘π‘—π‘œπœ„1 ≀ π‘œ2 π‘œ1  πœ„π‘‘π‘ π‘—π‘’π‘—π‘‘π‘π‘š = arcsin π‘œ2 π‘œ1 sin πœ„2

Whitted

π‘ˆ 𝐸 𝑢 π‘œ1 π‘œ2 πœ„2 πœ„1 Advanced Graphics – Introduction 33

slide-34
SLIDE 34

Dielectrics

π‘œ1 π‘œ2 π‘‘π‘—π‘œπœ„1 = π‘‘π‘—π‘œπœ„2 ⟺ π‘‘π‘—π‘œπœ„1 ≀ π‘œ2 π‘œ1

𝑙 = 1 βˆ’ π‘œ1 π‘œ2

2

1 βˆ’ π‘‘π‘π‘‘πœ„1

2

π‘ˆ = π‘ˆπ½π‘†, 𝑔𝑝𝑠 𝑙 < 0 π‘œ1 π‘œ2 𝐸 + 𝑂 π‘œ1 π‘œ2 π‘‘π‘π‘‘πœ„1 βˆ’ 𝑙 , 𝑔𝑝𝑠 𝑙 β‰₯ 0 Note: π‘‘π‘π‘‘πœ„1 = 𝑂 βˆ™ βˆ’πΈ, and π‘œ1

π‘œ2 should be calculated only once.

* For a full derivation, see http://www.flipcode.com/archives/reflection_transmission.pdf

Whitted

π‘ˆ 𝐸 𝑢 π‘œ1 π‘œ2 πœ„2 πœ„1 Advanced Graphics – Introduction 34

slide-35
SLIDE 35

Dielectrics

A typical dielectric transmits and reflects light.

Whitted

π‘ˆ 𝐸 𝑢 𝑆 Advanced Graphics – Introduction 35

slide-36
SLIDE 36

Dielectrics

A typical dielectric transmits and reflects light. Based on the Fresnel equations, the reflectivity of the surface for non-polarized light is formulated as: 𝐺

𝑠 = 1

2 π‘œ1π‘‘π‘π‘‘πœ„π‘— βˆ’ π‘œ2 1 βˆ’ π‘œ1 π‘œ2 π‘‘π‘—π‘œπœ„π‘—

2

π‘œ1π‘‘π‘π‘‘πœ„π‘— + π‘œ2 1 βˆ’ π‘œ1 π‘œ2 π‘‘π‘—π‘œπœ„π‘—

2 2

+ π‘œ1 1 βˆ’ π‘œ1 π‘œ2 π‘‘π‘—π‘œπœ„π‘—

2

βˆ’ π‘œ2 cos πœ„π‘— π‘œ1 1 βˆ’ π‘œ1 π‘œ2 π‘‘π‘—π‘œπœ„π‘—

2

+ π‘œ2 cos πœ„π‘—

2

Whitted

Advanced Graphics – Introduction 36

Reflectance for s-polarized light Reflectance for p-polarized light Reflectance for unpolarized light

slide-37
SLIDE 37

Dielectrics

In practice, we use Schlick’s approximation: 𝐺

𝑠 = 𝑆0 + (1 βˆ’ 𝑆0)(1 βˆ’ π‘‘π‘π‘‘πœ„)5, where 𝑆0 = π‘œ1βˆ’π‘œ2 π‘œ1+π‘œ2 2

. Based on the law of conservation of energy: 𝐺𝑒 = 1 βˆ’ 𝐺

𝑠

* An Inexpensive BRDF model for Physically-based Rendering, Schlick, Computer Graphics Forum 13, 1994.

Whitted

π‘ˆ 𝐸 𝑢 𝑆 Advanced Graphics – Introduction 37

slide-38
SLIDE 38

Ray Tracing

World space

  • Geometry
  • Eye
  • Screen plane
  • Screen pixels
  • Primary rays
  • Intersections
  • Point light
  • Shadow rays

Light transport

  • Extension rays

Light transport Advanced Graphics – Introduction 38

Whitted

slide-39
SLIDE 39

Ray Tree

Using Whitted-style ray tracing, hitting a surface point may spawn:

  • a shadow ray for each light source;
  • a reflection ray;
  • a ray transmitted into the material.

The reflected and transmitted rays may hit another object with the same material.  A single primary ray may lead to a very large number of ray queries. Advanced Graphics – Introduction 39

Whitted

slide-40
SLIDE 40

Question 6: imagine a scene with several point lights and dielectric materials. Considering the law of conservation of energy, what can you say about the energy transported by each individual ray? Advanced Graphics – Introduction 40

Whitted

slide-41
SLIDE 41

Beer’s Law

Advanced Graphics – Introduction 41

Whitted

slide-42
SLIDE 42

Beer’s Law

Light travelling through a medium loses intensity due to absorption. The intensity 𝐽(𝑑) that remains after travelling 𝑑 units through a substance with absorption 𝑏 is: 𝐽 𝑑 = 𝐽 0 π‘“βˆ’ ln 𝑏 𝑑 In pseudocode:

I.r *= expf( -a.r * s ); I.g *= expf( -a.g * s ); I.b *= expf( -a.b * s );

Advanced Graphics – Introduction 42

Whitted

slide-43
SLIDE 43

Whitted - Summary

A Whitted-style ray tracer implements the following optical phenomena:

  • Direct illumination of multiple light sources, taking into account

Visibility Distance attenuation A shading model: N dot L for diffuse

  • Pure specular reflections, with recursion
  • Dielectrics, with Fresnel, with recursion
  • Beer’s Law

The ray tracer supports any primitive for which a ray/primitive intersection can be determined. Advanced Graphics – Introduction 43

Whitted

slide-44
SLIDE 44

Today’s Agenda:

  • Advanced Graphics
  • Recap: Ray Tracing
  • Whitted-style
  • Assignment 1
slide-45
SLIDE 45

Ray Tracing Testbed

Implement an experimentation framework for ray tracing. Ingredients:

Scene

Primitives: spheres, planes, triangles I/O (e.g., obj loader) Intersection Materials: diffuse color, diffuse / specular / dielectric, absorption

Camera

Position, target, FOV Ray generation

Ray Renderer

Whitted-style

User interface

Input handling Presentation

Advanced Graphics – Introduction 45

Assignment 1

slide-46
SLIDE 46

Ray Tracing Testbed

Regarding the OBJ file loading requirement:

  • You may want to start with handcrafted scenes
  • Only roll your own OBJ loader if it is really necessary
  • Use assimp or tinyobjloader (C++) or find a lib if you’re using C#

http://www.stefangordon.com/parsing-wavefront-obj-files-in-c/ http://www.rexcardan.com/2014/10/read-obj-file-in-c-in-just-10-lines-of-code/ https://github.com/ChrisJansson/ObjLoader

  • Start with small files; minimize your development cycle.

Advanced Graphics – Introduction 46

Assignment 1

slide-47
SLIDE 47

Ray Tracing Testbed

Intersecting triangles: An easy to implement and quite efficient algorithm is: Fast, Minimum Storage Ray/Triangle Intersection, MΓΆller & Trumbore, 1997. …which is explained in elaborate detail by scratchapixel.com:

http://www.scratchapixel.com/lessons/3d-basic-rendering/ray-tracing-rendering-a-triangle/moller-trumbore-ray- triangle-intersection

Advanced Graphics – Introduction 47

Assignment 1

slide-48
SLIDE 48

Today’s Agenda:

  • Advanced Graphics
  • Recap: Ray Tracing
  • Whitted-style
  • Assignment 1
slide-49
SLIDE 49

INFOMAGR – Advanced Graphics

Jacco Bikker - November 2016 – February 2017

END of β€œIntroduction”

next lecture: β€œAcceleration Structures”