SLIDE 1 Adventures with the GPU
Roice Nelson
GE Aviation, Austin TX
SLIDE 2
- Provide resources and motivation to get started
with shader programming roice3.org/icerm
- A few mathematical detours
- Share fun with @TilingBot
and a resulting art piece
- Tons and tons of pictures and animations! Maybe too many
My goals for this talk
SLIDE 3
What is a shader?
Shaders are little programs that run on the GPU. These programs run at certain points of the graphics pipeline.
SLIDE 4
From primitives to shaders
SLIDE 5
From primitives to shaders
SLIDE 6
From primitives to shaders
SLIDE 7
From primitives to shaders
SLIDE 8
βFoldingβ
SLIDE 9
www.shadertoy.com
SLIDE 10 Shader #2: Isometry classes of hyperbolic space πΊ π¨ = ππ¨ + π ππ¨ + π πππ(2, π«) β
ππ»π(2, π«) ΰ·‘ π« = π« βͺ β
Group of MΓΆbius Transformations
SLIDE 11
This is not a cone
SLIDE 12
Itβs a cylinder in UHS model: Elliptic Isometry
SLIDE 13
Hyperbolic Isometry
SLIDE 14
Hyperbolic Isometry
SLIDE 15
Loxodromic Isometry
SLIDE 16
Loxodromic Isometry
SLIDE 17
This is not a plane
SLIDE 18
Itβs a horosphere: Parabolic Isometry
SLIDE 19 Raymarching
See βRay Marching and Signed Distance Functionsβ by Jamie Wong
Credit: GPU Gems 2: Chapter 8
SLIDE 20
Quaternions! π¨ β¦ ππ¨ + π ππ¨ + π π₯ β¦ ππ₯ + π ππ₯ + π π₯ = π¨ + π§π , π§ β πΊ+ , π¨ β ΰ·‘ π«
SLIDE 21
Shader #3: Spherical Images
SLIDE 22
SLIDE 23
SLIDE 24
Shader #4: Hyperbolic VR using Raymarching
Folding AND Raymarching, see Henryβs NSF video!
SLIDE 25 Utilities
- Shadertoy-render
- ffmpeg
- Pov-Ray
- LinqToTwitter
Again, links (and scripts) at: roice3.org/icerm
SLIDE 26 In my experienceβ¦
Advantages
- Fast!
- Motion
- Quality
- Fractals
- WebGL
- Lots of Examples
Disadvantages
- Hardware
- Debugging
- Optimization
- Low-level
- Code libraries
SLIDE 27 βThe explorer who will not come back or send back his ships to tell his tale is not an explorer,
- nly an adventurer.β
- Ursula K. Le Guin, The Dispossessed: An Ambiguous Utopia
SLIDE 28
@Tilingbot
SLIDE 29
The Real Shader #1: Hyperbolic Wythoff explorer
by Matt Zucker, mzucker.github.io
SLIDE 30
SLIDE 31
Regular and Rectified
SLIDE 32 Uniform Tilings
Truncation
5 7
SLIDE 33 Uniform Tilings
Bitruncation
5 7
SLIDE 34 Uniform Tilings
Cantellation
5 7
SLIDE 35 Uniform Tilings
Omnitruncation
5 7
SLIDE 36
SLIDE 37
Duals to Uniform (Catalan Tilings)
SLIDE 38
The Same But Different
SLIDE 39
Rotating in a conformal square
Snub {8,8}
SLIDE 40
In a rotating conformal square
Omnitruncated {6,9}
SLIDE 41
Omnitruncated {6,9}
SLIDE 42
Omnitruncated {6,9}
SLIDE 43
Rotating in the band model
Truncated {6,4}
SLIDE 44
In a rotating band model
Truncated {8,4}
SLIDE 45
Limit Rotations
Omnitruncated {4,β} Truncated {3,β}
SLIDE 46 Joukowsky projection π¨ =
1 2 π + 1 π
named after Nikoli Zhukovsky
SLIDE 47
The best internal representation?
SLIDE 48
SLIDE 49
Thank you!
roice3.org/icerm