Persson_CreatingVastGameWorlds
Download
Report
Transcript Persson_CreatingVastGameWorlds
Edit this text to create a Heading
This subtitle is 20 points
Bullets are blue
They have 110% line spacing, 2 points before & after
Longer bullets in the form of a paragraph are harder to
read if there is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit this text to create a Heading
This subtitle
is 20 points
Creating
Vast
Game Worlds
Bullets are blue
Experiences from Avalanche Studios
They have 110% line spacing, 2 points before & after
Longer bullets in the Emil
formPersson
of a paragraph are harder to
read if there is Senior
insufficient
line
spacing. This is the
Graphics
Programmer
maximum recommended
number of lines per slide
@_Humus_
(seven).
Sub bullets look like this
Edit this
Just
howtext
big to
is create
Just Cause
a Heading
2?
Unit
meters
This is
subtitle
is 20 points
[-16384
Bullets
are.. 16384]
blue
32km
x 32km
They have
110% line spacing, 2 points before & after
1024 km
Longer
bullets in the form of a paragraph are harder to
2
400ifmi
read
there is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
2
Sub bullets look like this
Edit this text to create a Heading
Issues
This “jitter
The
subtitle
bug”
is 20 points
Vertexare
snapping
Bullets
blue
Data
Disc space
Memory
Jerky animations
They
have 110% line spacing, 2 points before & after
Z-fighting
Performance
Longer bullets in the form of a paragraph are harder to
View distance
Shadows
read if there is insufficient line spacing. This is the
Occlusion
Range recommended number
maximum
of lines per slide
Glitches
(seven).
Sub bullets look like this
Edit this text
Breathing
lifeto
into
create
the world
a Heading
This subtitle is 20 points
Bullets are blue
They have 110% line spacing, 2 points before & after
Longer bullets in the form of a paragraph are harder to
read if there is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit this text
Breathing
lifeto
into
create
the world
a Heading
This subtitle is 20 points
Landmarks
Bullets are
Distant
lights
blue
They have
World
simulation
110% line spacing, 2 points before & after
Dynamic
Longer
bullets
weather
in the
system
form of a paragraph are harder to
read
if there
is insufficient line spacing. This is the
Day-night
cycle
maximum
recommended
Diverse game
and climatenumber
zones of lines per slide
(seven).
City, arctic, jungle, desert, ocean, mountains etc.
Sub bullets look like this
Verticality
Edit thislights
Distant
text to create a Heading
This subtitle
Static
light sources
is 20 points
Point-sprites
Bullets
are blue
Fades to light source close up
They
have 110% line spacing, 2 points before & after
Huge visual impact
Longer bullets in the form of a paragraph are harder to
Cheap
read if there is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit thislights
Distant
text to create a Heading
This subtitle is 20 points
Bullets are blue
They have 110% line spacing, 2 points before & after
Longer bullets in the form of a paragraph are harder to
read if there is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit this point
Floating
text tomath
create a Heading
This subtitle
floats
abstract
is real
20 points
numbers
Worksare
as intended
Bullets
blue in 99% of the cases
Breaks spectacularly for 0.9%
They have
110% line spacing, 2 points before & after
Breaks subtly for 0.1%
“Tricks
With thein
Floating-Point
Format”
2011. [6] are harder to
Longer
bullets
the form
of aDawson,
paragraph
Find
bug:is insufficient line spacing. This is the
read
if the
there
// Convert float in [0, 1] to 24bit fixed point and add stencil bits
maximum
recommended
number* of
lines
per<<slide
uint32 fixed_zs
= (uint32(16777215.0f
depth
+ 0.5f)
8) | stencil;
(seven).
Logarithmic distribution
Reset
FP timers
on opportunity
Sub
bullets
look/ counters
like this
Fixed point
Edit this point
Floating
text tomath
create a Heading
This subtitle
Worst
precision
is 20
in points
±[8k, 16k) range
Range
Increment
That’sare
75%blue
of the map …
Bullets
[8, 16)
1/1M
Millimeter resolution
[8k, 16k)
1/1k
They
have 110% line spacing, 2 points before
& after
[8M, 16M)
1
Floating point arithmetic
Longer bullets in the form of a paragraph are harder to
[8G, 16G)
1k
Error accumulating at every op
read if there is insufficient line spacing. This is the
More math ⇒ bigger error
maximum
number of lines per slide
add/subrecommended
worse than mul/div
(seven).
Shorten computation chains
Faster AND more precise!
Sub
bullets look like this
Minimize magnitude ratio in add/sub
Edit this text
Transform
chains
to create a Heading
world_pos
This subtitle is float4
Don’t:
20 points
= mul(In.Position, World);
Out.Position = mul(world_pos, ViewProj);
Bullets are blue
float4 world_pos = mul(In.Position, World);
They have 110%
Do:
line spacing, 2 points before & after
Out.Position = mul(In.Position, WorldViewProj);
Longer bullets in the form of a paragraph are harder to
local_pos
mul(In.Position,
read
if there is float4
insufficient
line=spacing.
This is LocalWorld);
the
Alternatively:
Out.Position = mul(local_pos, LocalViewProj);
maximum recommended number of lines per slide
[W] • [V] • [P]
=
(seven).
[R • T ] • [T • Rv] • [P]
[Rw • (Tw • Tv) ] • [Rv • P]
Sub bullets lookw likew this v
=
Edit this
Never
invert
text atomatrix!
create a Heading
This subtitle
Never
invert is
a matrix!
20 points
Really!
Bullets are blue
Don’t:
float4x4 view = ViewMatrix(pos, angles);
They
have 110% line spacing, 2 points before & after
float4x4 proj = ProjectionMatrix(fov, ratio, near, far);
float4x4 view_proj = view * proj;
Longer
bullets in the form of a paragraph are harder to
float4x4 view_proj_inv = InvertMatrix(view_proj);
read
Do: if there is insufficient line spacing. This is the
maximum
recommended
float4x4 view,
view_inv, proj, number
proj_inv; of lines per slide
ViewMatrixAndInverse(&view, &view_inv, pos, angles);
(seven).
ProjectionMatrixAndInverse(&proj, &proj_inv, fov, ratio, near, far);
view_proj
view
* proj;
float4x4
Sub bullets
look=like
this
float4x4 view_proj_inv = proj_inv * view_inv;
Edit this
How
to compute
text to create
an inverse
a Heading
directly
This subtitle
Reverse
transforms
is 20 points
in reverse order
Rotate(angle)×Translate(pos)
⇒ Translate(-pos)×Rotate(-angle)
Bullets
are blue
Derive
analytically
from
regular2matrix
They have
110% line
spacing,
points before & after
Gauss-Jordan elimination [1]
Longer
bullets in the form of a paragraph are harder to
1
1
0
0
0
x
0
0
0
1
0
0
0
read if there is insufficient line spacing. Thisx is0the0 0
1
0 1of lines
0 0 per
0 slide
0 0
0 y 0 recommended
0 0 1 0 0 number
y
maximum
0 0 1 0 0 0 0 z1
0 0 z0 1 0 0 1 0
(seven).
⇒
0 bullets
z1 0look
0 like
0 this
0 1
0 Sub
1
0 0 0 1 0 0 1
z0
z1
Edit this
Depth
buffer
text precision
to create a Heading
This Cause
Just
subtitle2ishas
20 50,000m
points view distance
That’sare
all the
way across the diagonal of the map!
Bullets
blue
Reversed depth buffer (near = 1, far = 0)
They
have 110% line spacing, 2 points before & after
Helps even for fixed point depth buffers!
Longer
in the
of a
Flipbullets
with projection
matrix,form
not viewport!
paragraph are harder to
D24FS8
on consoles,
D24S8line
on PC
read
if there
is insufficient
spacing. This is the
Dynamic near
plane
maximum
recommended
number of lines per slide
Normally 0.5, close up 0.1
(seven).
Sub bullets look like this
Edit this
PS3
depth
text
resolve
to create a Heading
This has
HW
subtitle
no native
is 20 points
depth texture format
D16 can
aliased as an L16
Bullets
arebeblue
D24S8 and D24FS8 aliased as RGBA8
They
have 110% line spacing, 2 points before & after
Shader needs to decode
Longer
bullets
in the
Lossy
texture sampling
form of a paragraph are harder to
of compiler
flags, output precision,
half-precisionThis
etc.
read ifBeware
there
is insufficient
line spacing.
is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit this
PS3
depth
text
resolve
to create a Heading
#pragma optionNV(fastprecision off)
This subtitle is 20 points
sampler2D DepthBuffer : register(s0);
Bullets are blue
void main(float2 TexCoord : TEXCOORD0, out float4 Depth : COLOR)
{ They have 110% line spacing, 2 points before & after
half4 dc = h4tex2D(DepthBuffer, TexCoord);
Longer bullets in the form of a paragraph are harder to
// Round to compensate for poor sampler precision.
read
if there
is insufficient
line
spacing. This is the
// Also
bias the
exponent before
rounding.
dc = floor(dc * 255.0h + half4(0.5h, 0.5h, 0.5h, 0.5h - 127.0h));
maximum
recommended number of lines per slide
float m = dc.r * (1.0f / 256.0f) + dc.g * (1.0f / 65536.0f);
(seven).
float e = exp2( float(dc.a) );
Sub bullets look like this
Depth = m * e + e;
}
Edit this text to create a Heading
Shadows
This
3
cascade
subtitle
atlas
is 20 points
Cascades
scaled with
Bullets
are blue
Xbox360 Memory ↔ GPU
time tradeoff
elevation
→ 16bit conversion
They have 110% line spacing, 2 32bit
points
before & after
Visually tweaked ranges
Memory export shader
Longer bullets in the form of a paragraph are harder to
Shadow stabilization
Tiled-to-tiled
read if there is insufficient line spacing. This is the
Sub-pixel jitter compensation
maximum
recommended number of lines per slide
Discrete resizing
(seven).
Size culling
Sub bullets look like this
Edit this optimization
Memory
text to create a Heading
This subtitle
Temporal
texture
is 20 aliasing
points
Shadow-map,
Bullets
are bluevelocity buffer, post-effects temporaries etc.
Ping-ponging with EDRAM
They
have 110% line spacing, 2 points before & after
Channel textures
Longer bullets in the form of a paragraph are harder to
Luminance in a DXT1 channel
read if there is insufficient line spacing. This is the
1.33bpp
maximum recommended number of lines per slide
Vertex
(seven).packing
Sub bullets look like this
Edit this
Vertex
compression
text to create a Heading
This subtitle
Example
“fat”isvertex
20 points
struct Vertex
Bullets
are blue
{
12 bytes 2 points before & after
Theyfloat3
havePosition;
110% line//spacing,
float2 TexCoord0;
// 8 bytes
float2
TexCoord1;
8 bytes
Longer
bullets
in the //
form
of a paragraph are harder
float3 Tangent;
// 12 bytes
readfloat3
if there
is
insufficient
line spacing. This is the
Bitangent;
// 12 bytes
float3 Normal;
// 12 bytes
maximum
recommended
number of lines per slide
float4 Color;
// 16 bytes
};
// Total:
80 bytes, 7 attributes
(seven).
Sub bullets look like this
to
Edit this
Vertex
compression
text to create a Heading
This subtitle
Standard
solutions
is 20 points
applied:
struct Vertex
Bullets
are blue
{
12 bytes 2 points before & after
Theyfloat3
havePosition;
110% line//spacing,
float4 TexCoord;
// 16 bytes
ubyte4
Tangent;
4 bytes,
1 unused
Longer
bullets
in the //
form
of a paragraph
are harder
ubyte4 Bitangent;
// 4 bytes, 1 unused
readubyte4
if there
is
insufficient
line spacing.
Normal;
// 4 bytes,
1 unused This is the
ubyte4 Color;
// 4 bytes
maximum
recommended
number of lines per slide
};
// Total:
44 bytes, 6 attributes
(seven).
Sub bullets look like this
to
Edit this
Vertex
compression
text to create a Heading
This subtitle
Turn
floats into
is 20
halfs?
points
Usually
notblue
the best solution
Bullets
are
Use shorts with scale & bias
They
have 110% line spacing, 2 points before & after
Unnormalized slightly more accurate (no division by 32767)
Longer
bullets in the form of a paragraph are harder to
struct Vertex
{
read
if there is insufficient
line spacing. This is the
short4 Position;
// 8 bytes, 2 unused
short4 TexCoord;
// 8 bytes
maximum
recommended
number of lines per slide
ubyte4 Tangent;
// 4 bytes
(seven).
ubyte4 Bitangent;
// 4 bytes
ubyte4 Normal;
// 4 bytes
Sub
bullets
look like this
ubyte4
Color;
// 4 bytes
};
// Total:
32 bytes, 6 attributes
Edit this text to compression
Tangent-space
create a Heading
This Cause
Just
subtitle2is–20
RG32F
points– 8bytes
float3 tangent = frac(
In.Tangents.x * float3(1,256,65536)) * 2 – 1;
Bullets
are
blue
float3 normal = frac(abs(In.Tangents.y) * float3(1,256,65536)) * 2 – 1;
float3 bitangent = cross(tangent, normal);
They have 110% line spacing, 2 points before & after
bitangent = (In.Tangents.y > 0.0f)? bitangent : -bitangent;
Longer bullets in the form of a paragraph are harder to
struct
read ifVertex
there is insufficient line spacing. This is the
{
short4 Position;
// 8 bytes,
2 unused
maximum
recommended
number
of lines per slide
short4 TexCoord;
// 8 bytes
(seven).
float2 Tangents;
// 8 bytes
ubyte4 Color;
// 4 bytes
look like this
}; Sub bullets
// Total:
28 bytes,
4 attributes
Edit this text to in
Tangent-space
create
4 bytes
a Heading
Longitude
This subtitle
/ latitude
is 20 points
R,G ⇒are
Tangent
Trigonometry heavy
Bullets
blue
Fast in vertex shader
B,A ⇒ Bitangent
They have 110% line spacing, 2 points before & after
float4 angles = In.Tangents * PI2 - PI;
Longer
bullets in the form of a paragraph are harder to
float4
sc0, sc1;
sincos(angles.x, sc0.x, sc0.y);
read if there
is insufficient
line spacing. This is the
sincos(angles.y,
sc0.z,
sc0.w);
sincos(angles.z,
sc1.x, sc1.y);
maximum recommended
number of lines per slide
sincos(angles.w, sc1.z, sc1.w);
float3
tangent
= float3(sc0.y * abs(sc0.z), sc0.x * abs(sc0.z), sc0.w);
(seven).
float3 bitangent = float3(sc1.y * abs(sc1.z), sc1.x * abs(sc1.z), sc1.w);
normal
Sub bullets
look like this bitangent);
float3
= cross(tangent,
normal = (angles.w > 0.0f)? normal : -normal;
Edit this text to in
Tangent-space
create
4 bytes
a Heading
Quaternion
This subtitle is 20 points
Orthonormal
basis
Bullets
are blue
They
have 110%
linefloat3
spacing,
pointsb,before
& after
void
UnpackQuat(float4
q, out
t, out2float3
out float3
n)
{
t =Longer
bullets
in the form of a paragraph
are harder to
float3(1,0,0)
+ float3(-2,2,2)*q.y*q.yxw
+ float3(-2,-2,2)*q.z*q.zwx;
b =read
float3(0,1,0)
+isfloat3(2,-2,2)*q.z*q.wzy
+ float3(2,-2,-2)*q.x*q.yxw;
if
there
insufficient
line
spacing.
This is the
n = float3(0,0,1) + float3(2,2,-2)*q.x*q.zwx + float3(-2,2,-2)*q.y*q.wzy;
maximum recommended number of lines per slide
(seven).
float4
quat = In.TangentSpace * 2.0f - 1.0f;
}
UnpackQuat(rotated_quat, tangent, bitangent, normal);
Sub bullets look like this
Edit this text to in
Tangent-space
create
4 bytes
a Heading
This subtitle
Rotate
quaternion
is 20 points
instead of vectors!
// Decode
tangent-vectors
Bullets
are
blue
...
// Rotate
decoded
tangent-vectors
They
have
110%
line spacing, 2 points before & after
Out.Tangent
= mul(tangent,
(float3x3) World);
Out.Bitangent
= mul(bitangent,
(float3x3)
World); are harder to
Longer
bullets
in the form of
a paragraph
Out.Normal
= mul(normal,
(float3x3) World);
read if there is insufficient line spacing. This is the
maximum recommended number of lines per slide
// Rotate quaternion, decode final tangent-vectors
float4 quat = In.TangentSpace * 2.0f - 1.0f;
(seven).
float4 rotated_quat = MulQuat(quat, WorldQuat);
UnpackQuat(rotated_quat,
Sub bullets look like this
Out.Tangent, Out.Bitangent, Out.Normal);
Edit this text to compression
Tangent-space
create a Heading
This subtitle
”Final”
vertexis 20 points
struct Vertex
Bullets
are blue
{
short4
Position;
8 bytes, 2 2
unused
They
have
110% line// spacing,
points before & after
short4 TexCoord;
// 8 bytes
ubyte4
Tangents;
4 bytes
Longer
bullets
in the//form
of a paragraph are harder
ubyte4 Color;
// 4 bytes
read
if
there
is
insufficient
line4spacing.
};
// Total:
24 bytes,
attributes This is the
recommended number of lines per slide
maximum
Other possibilities
(seven).
R5G6B5 color in Position.w
Sub bullets
look like this
Position
as R11G11B10
to
Edit thistrimming
Particle
text to create a Heading
Plenty
of alpha
area
This subtitle
is =200 points
Find optimal enclosing polygon
Bullets
are blue
Achieved > 2x performance!
They have 110% line spacing, 2 points before & after
Advances
in Real-Time
Rendering
Longer bullets
in the
form of a paragraph are harder to
in
Games
read
if there is insufficient line spacing. This is the
Graphics Gems for Games: Findings From
Avalanche Studios
maximum
recommended number of lines per slide
515AB, Wednesday 4:20 pm
(seven).
“Particle
Persson,
2009. [4]
Sub Trimmer.”
bullets look
like this
Edit this
Vertex
shader
text toculling
create a Heading
This subtitle is 20 points
Bullets are blue
They have 110% line spacing, 2 points before & after
Longer bullets in the form of a paragraph are harder to
read if there is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit this
Vertex
shader
text toculling
create a Heading
This subtitlewant
Sometimes
is 20topoints
cull at vertex level
Especially
useful within a single draw-call
Bullets
are blue
Foliage, particles, clouds, light sprites, etc.
They have 110% line spacing, 2 points before & after
Example: 100 foliage billboards, many completely faded out…
Longer
in thefarform
of a paragraph are harder to
Throwbullets
things behind
plane!
read
if there is insufficient line spacing. This is the
Out.Position = ...;
float alpha
= ...;
maximum
recommended
number of lines per slide
(seven).
if (alpha <= 0.0f)
Out.Position.z = -Out.Position.w; // z/w = -1, behind far plane
Sub bullets look like this
Edit this
Draw
calls
text to create a Heading
This subtitle
“Batch,
batch,
is batch”.
20 points
Wloka, 2003. [2]
300 draw
Bullets
are calls
blue/ frame
What’s
reasonable
these
days?2 points before & after
They have
110% line
spacing,
2-10x faster / thread
Longer
bullets in the form of a paragraph are harder to
We’re achieving 16,000 @ 60Hz, i7-2600K, single draw thread
read if there is insufficient line spacing. This is the
Not
so much
DrawIndexed()
per se
maximum
recommended
number
of lines per slide
ID3D11DeviceContext_DrawIndexed:
Culling
mov
eax, dword ptr [esp+4]
(seven).
Sorting
Sub bullets look like this
Updating transforms
lea
mov
mov
jmp
ecx, [eax+639Ch]
eax, dword ptr [eax+1E8h]
dword ptr [esp+4], ecx
eax
Edit this text
Reducing
draw
to calls
create a Heading
This subtitle is 20 points
Bullets are blue
They have 110% line spacing, 2 points before & after
Longer bullets in the form of a paragraph are harder to
read if there is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit this text
Reducing
draw
to calls
create a Heading
This subtitle is 20 points
Merge-Instancing
Multiple
Bullets
aremeshes
blue and multiple transforms in one draw-call
Shader-based vertex data traversal
They
have 110% line spacing, 2 points before & after
Longer
in the Rendering
form of ainparagraph
are harder to
Advancesbullets
in Real-Time
Games
read
if there
This is the
Graphics
Gemsis
forinsufficient
Games: Findingsline
From spacing.
Avalanche Studios
515AB, Wednesday
4:20 pm
maximum
recommended
number of lines per slide
(seven).
Sub bullets look like this
Edit this
State
sorting
text to create a Heading
This subtitle
64-bit
sort-id is 20 points
“Orderare
yourblue
graphics draw calls around!” Ericson, 2008. [3]
Bullets
Render-passes prearranged
They
have 110% line spacing, 2 points before & after
E.g. ModelsOpaque, ModelsTransparent, PostEffects, GUI etc.
Longer
bullets
in the form of a paragraph are harder to
Material
types prearranged
read ifE.g.
there
insufficient
Terrain,is
Character,
Particles, line
Clouds,spacing.
Foliage etc. This is the
recommended
number of lines per slide
maximum
Dynamic bit
layout
(seven).
Typically encodes state
Sub bullets look like this
Edit this text to create a Heading
Culling
This subtitle
BFBC
– Brute
is Force
20 points
Box Culling
Artist are
placed
occluder boxes
Bullets
blue
Culled individually, not union
They have
110% line spacing, 2 points before & after
Educate content creators
Longer
SIMD bullets
optimizedin the form of a paragraph are harder to
PPU
& SPU is
work
in tandem line spacing. This is the
read
if there
insufficient
maximum recommended number of lines per slide
“Culling the Battlefield.” Collin, 2011. [3]
(seven).
Sub bullets look like this
Edit this text to create a Heading
Streaming
Pre-optimized
data
disc
This subtitle is
20 on
points
Gigabyte
Bullets
aresized
bluearchives
Related resources placed adjacently
Zlib compression
They have 110% line spacing, 2 points before & after
Longer
bullets in the form of a paragraph are harder to
Request ordered by priority first, then adjacency
read if there is insufficient line spacing. This is the
Concurrent load and create
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit this
Other
funtext
stuff
to create a Heading
PS3
This dynamic
subtitle resolution
is 20 points
720p normally
Bullets
are blue
640p under heavy load
They
have 110% line spacing, 2 points before & after
Shader performance script
Longer
bullets
Before/after
diff in the form of a paragraph are harder to
if there
is insufficient line spacing. This is the
read
Tombola
compiler
maximum
number of lines per slide
Randomizerecommended
compiler seed
~10-15% shorter shaders
(seven).
Sub bullets look like this
Edit this text to create a Heading
References
[1]
[2] http://en.wikipedia.org/wiki/Gauss%E2%80%93Jordan_elimination
This subtitle is 20 points
http://developer.nvidia.com/docs/IO/8230/BatchBatchBatch.pdf
[3]
http://realtimecollisiondetection.net/blog/?p=86
Bullets are blue
[4] http://www.humus.name/index.php?page=Cool&ID=8
[5] http://publications.dice.se/attachments/CullingTheBattlefield.pdf
They have 110% line spacing, 2 points before & after
[6] http://www.altdevblogaday.com/2012/01/05/tricks-with-the-floating-point-format/
[7] http://fgiesen.wordpress.com/2010/10/21/finish-your-derivations-please/
Longer bullets in the form of a paragraph are harder to
read if there is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit This
this text
to create
slide
hasaaHeading
16:9 media
window
This subtitle is 20 points
Bullets are blue
Thank you!
They have 110% line spacing, 2 points before & after
Longer bullets in the Emil
formPersson
of a paragraph are harder to
read if there is insufficient
line
spacing. This is the
Avalanche
Studios
maximum recommended
number of lines per slide
@_Humus_
(seven).
Sub bullets look like this
Edit this text to create a Heading
This subtitle is 20 points
Bullets are blue
They have 110% line spacing, 2 points before & after
Bonus slides!
Longer bullets in the form of a paragraph are harder to
read if there is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this
Edit this text
Random
rantsto/ create
pet peeves
a Heading
Shader
mad-ness
intended)
This subtitle
is 20(pun
points
Understand the hardware
Bullets
are blue
(x + a) * b ⇒ x * b + c, where c = a*b
They
points
before & after
a / (xhave
- b) ⇒110%
1.0f / (cline
* x + spacing,
d), where c 2
= 1/a,
d = -b/a
// Constants
Longer
bullets in the form //
ofConstants
a paragraph are harder to
C = { f / (f-n), n / (n–f) };
C = { f / n, 1.0f – f / n };
read
if there is insufficient//line
spacing. This is the
// SUB-RCP-MUL
MAD-RCP
float GetLinearDepth(float
z)
float GetLinearDepth(float
z) slide
maximum
recommended
number
of
lines
per
{
{
return
C.y
/
(z
C.x);
return 1.0f / (z * C.y + C.x);
(seven).
}
}
Sub
bullets look like this
”Finish your derivation” [7]
Edit this text
Random
rantsto/ create
pet peeves
a Heading
Mergesubtitle
linear operations
into matrix
This
is 20 points
Understand
Bullets are depth
blue
Non-linear in view direction
They have 110% line spacing, 2 points before & after
Linear in screen-space!
Longer
bullets
in the form of a paragraph are harder to
Premature
generalizations
read
ಠ_ಠif there is insufficient line spacing. This is the
maximum
Don’t do it!recommended number of lines per slide
YAGNI
(seven).
Sub bullets look like this
Edit this text to create a Heading
Process
Design
for performance
This subtitle
is 20 points
”Premature optimizations is the root of all evil”
Bullets
are blue
"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet
we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency
They
have
line
2 points
&hasafter
by such
reasoning,110%
he will be wise
to lookspacing,
carefully at the critical
code; but onlybefore
after that code
been identified"
Code
reviews
Longer
bullets in the form of a paragraph are harder to
Profile
read ifevery
thereday
is insufficient line spacing. This is the
maximum recommended number of lines per slide
(seven).
Sub bullets look like this