SlideShare a Scribd company logo
1 of 121
Download to read offline
Sébastien Schertenleib
Principal Engineer
Sony Computer Entertainment Europe
Research & Development Division
Optimization for Making Stereoscopic 3D
Games on PlayStation® (PS3™)
Slide 2
• Stereoscopic 3D (S3D) Games Overview
• How Stereoscopic 3D Works
• PS3™ Implementation of S3D Games
• Reprojection
• SPU Optimisation
• Case Studies
Outline
Stereoscopic 3D Games Overview
Slide 4
• Movie
– Digital animation
– Actors
• Broadcast
– VOD
– FIFA World Cup 2010
• Professional
– Digital cinema camera
• Home
– TV and projector
– BD player/recorder
– BD movie
– Digital camera
– Stereoscopic gaming
on PlayStation®3
Sony’s Approach to Stereo 3D
Slide 5
• Increased immersion
• Some tasks are easier (driving, batting, ...)
• New types of games may become possible
(first person sports?)
Why is Stereoscopic 3D Important to Games?
Slide 6
• 3D TVs now in the home
• 3D works very well in close proximity
• Gamers tend to demand more immersion – never less
• Wide variety of 3D content should sustain momentum
(sports, movies, games, TV, photos, home movies)
3D is here to Stay!
Slide 7
• All S3D displays send a different image to the left and
right eye
• There are several different technologies in use
• The main ones are
– Anaglyph (Red Cyan Glasses)
– Passive (Polarized Glasses)
– Active ( Shutter Glasses)
– Auto-Stereo ( No Glasses)
S3D Displays
Slide 8
2D = 1 camera generates an
image which is displayed on the
TV screen and is then seen in
both eyes
3D = 2 cameras generate 2
images (one for each eye) which
are displayed on a 3DTV screen,
then separated by special
glasses to the correct eye.
How 3D works 2D 3D
Cameras
Images
TV screen
Glasses
Image seen
Slide 9
• Red Cyan Glasses
– Cons
• Only really works for black and white
– Pros
• Easy to make content for
• No special display needed
– Not recommended for commercial
titles
– Useful for research
• Works anywhere
Anaglyph
Slide 10
Absorptive Polarizer
• Uses 2 projector lenses, one for each eye
– Lens are polarized differently
– Polarized glasses de-mulitplex signal at your eyes
– Passive cinema projection requires a special "non-depolarising"
screen
• For front projection, this is normally metallic silver.
Passive Glasses (Movie Theatre)
Slide 11
• TV Surface is coated with a polarized filter
– Some parts of the TV are seen by the left eye
– Some parts of the TV are seen by the right eye
• Half the resolution of the image is lost
• Viewing angles can be limited
• Cons
– Lose resolution to mask
– Screen filter adds to TVs cost
• Pros
– Glasses are cheap
Passive Glasses (TV)
Slide 12
• The TV updates @ N*120Hz
• Alternate left and right images
• Shutter glasses synchronization with TV to mask
the left and right frames
Active Glasses
Slide 13
• This is the solution used in most of the new S3D TV shipping now
– Including Sony BRAVIA
• Pros
– Full HD to each eye
– Wide range of viewing angles
• Cons
– Glasses need batteries and are more expensive
Active Glasses
Slide 14
• These require no glasses to
operate
– Current solutions use a
parallax barrier or lenticular
technology
• Generally the viewing
angles are limited
Auto-stereo Displays
Slide 15
• HDMI 1.4 introduces a standard on both
ends
• PS3™ supports S3D via 3D over HDMI
– It will work on every HDMI 1.4 receiver
(e.g. 3DTV)
Connectivity
Slide 16
• The PS3™ outputs the
following formats for S3D
Supported Formats used by PS3™
Use Resolution
(Per Eye)
Hz
BD Playback
3D Photo Browsing
(PlayMemories)
1920*1080p 24
Games 1280*720p 60
Slide 17
• Stereoscopic 3D (S3D) Games Overview
• How Stereoscopic 3D Works
• PS3™ Implementation of S3D Games
• Reprojection
• SPU Optimisation
• Case Studies
Outline
How Stereoscopic 3D Works
Slide 19
• Stereoscopic 3D games require to setup
two cameras, one for each eye
• A naïve implementation can deteriorate the
3D experience
Setting up the 3D Cameras
Slide 20
Translate the cameras in 3D space
L R
Setting up the cameras
Attempt 1: Simple
Offset
Large portion of each image is only visible
to a single eye resulting in considerable
eye
strain.
Result: Failure
Slide 21
Translate the cameras in 3D space
L R
Setting up the cameras
Attempt 2: Toe-in
Convergence is not parallel with the
screen which causes vertical
parallax deviations. These deviations
are unnatural and make the
experience uncomfortable.
Result: Failure
Slide 22
Translate the cameras in 3D space
L R
Setting up the cameras
Attempt 3: Parallel Projection
The projection matrix is changed so that
the projection is asymmetric.
No vertical parallax and acceptable
portions of the scene are only visible to a
single eye. Comfortable to view for an
extended period of time.
Result: PASS


















−
−−
+
−
+
−
−
+
−
=
0100
2
00
0
2
0
00
2
fn
nf
fn
fn
bt
bt
bt
n
lr
lr
lr
n
Moblic
Slide 23
Translate the cameras in 3D space
Real World
A B
Screen
Plane
I
θ
S
α
View Space Legend
• I: camera separation
• S: distance to viewing plane
• Z : screen distance
• θ : horizontal field of view
• α : angle of convergence
i
D
Z
d
W
View Space
z
( )
dI
ID
Z
ziW
d
−
×
=
−
=
)2tan(2
)tan(2
θ
α
)tan(2
)tan()2tan(
α
αθ
Si
WIr
=
×=××
( )
zrrS
z
DZ
zSIrd
)1(
1
−+
×=
−××=
Theorem
Variable Definition
Derivation
Real World Legend
• i: eye separation
• D: distance to display
• d: amount of parallax
• W: display width
• Z: Depth of the object
Slide 24
• When you look at an object
– Both eyes are aiming directly
at the object
– For a distant object the eyes
are almost parallel
– For a close object the eyes
must toe inward
Convergence
See how the girl’s convergence angle decreases
as the bear gets more distant
Slide 25
• When viewing S3D your eyes are focused on
the screen
– But converging at a different depth
• Accommodation and Convergence can be
decoupled
Accommodation and Convergence
Accommodation
Convergence
Slide 26
• Perceived depth from separation in images
• Positive Parallax – behind screen
• Zero Parallax – on screen plane – left and right images are same
• Negative Parallax – in front of screen
Perceived Depth
Slide 27
• Same image with same
separation in both diagrams
• Perceived depth is affected
by viewer position
• Further back gives more
perceived depth with less
convergence
Where You Sit Matters
Slide 28
• Everything moves closer
• Everything decreases in
size
• Objects in the foreground move further
away
• Objects in the foreground increase in
size
• Objects in the distance are unchanged
Placement and Scaling in Stereoscopic 3D
Decrease the convergence
Decrease the interaxial
x
y
x
y
z
Slide 29
• Incorporating a 3D strength slider into your title is
recommended
– Slider should go from Max down to 0
• This gives players the chance to reduce the
stereo effect to a comfortable level
– Screen size and distance from screen as well as personal taste
3D Slider
Slide 30
• Scaling both the convergence and interaxial by the
same amount
– Stretch or squash the depth but maintain the (2D)
size of objects at point of convergence
– Use in our 3D slider implementation
• If both interaxial and convergence are set to zero, you get a 2D picture
Keeping Object Size
Display
Perceived Depth
2DMax
Slide 31
• The TV is a window
– Most content will be inside the
TV
– Content in front of the TV will
be
• Small and Fast Generally
– Avoid Window Violations
• Occurs when an object touches
the stereo window resulting in
cutting off more of an object in one
eye than the other
Stereo Reference
Screen
Space
Audience Space
Image
plane
Stereo
Infinity
Uncomfortable
Stereo
Comfortable Stereo
Comfortable areas for 3D stereo
Red is bad
Blue is good
Slide 32
Calculating Frustum Origin
Z = S / ( 1 + W / I )
Legend
• Z : frustum origin
• S: distance to viewing plane
• W : width of viewing plane in
view world
• I: camera separation
L R
Screen
S
W
I
Z
Monoscopic Frustum Culling
Slide 33
Calculating Frustum Origin
Z = S / ( 1 + W / I )
Legend
• Z : frustum origin
• S: distance to viewing plane
• W : width of viewing plane in
view world
• I: camera separation
L R
Screen
Steroscopic Frustum Culling
S
W
I
Z
Reduce window violations
Slide 34
COMFORT
ZONE
The limitations of parallax – the acceptable limits
Slide 35
The limitations of parallax - divergence
Slide 36
• Ensure +ve parallax is less than 1
degree
• Work for wide variety of screen size
from mobile to theatre and HDTV
• Typical screen the maximum depth is
approx. the same as viewing distance
• Including a 3D strength slider is useful
Parallax Management – use an arbitrary value
Slide 37
• Alternatively using PlayStation®Eye and Face
tracking, it is possible to measure the exact viewer
distance
– Combine with the screen size (HDMI1.4), we could
guarantee the best parallax for each user setup
• Installed base of millions of cameras and growing
– With the introduction of the PlayStation®Move motion
controller
PlayStation®Eye
Slide 38
Limiting the positive parallax: how the depth is perceived
Accurate depth but large restrictions on the game design
real world viewed world
max parallax
Slide 39
• Cross Talk or Ghosting can become very evident if
there is too much separation between images
– Most of this is inherent to the display technology
• Latency in the panels and glasses
– Some is due to separation in the images
• Left and right images are very different at extremes of negative and
positive parallax
• Eyes and brain start to realize they are being tricked…
Separation: Cross Talk
Slide 40
• Major drawback with
current shutter glasses
technology (sync-errors,
inability to block all the
light,...)
– The L/R eye see some residue
of the image dedicated to the
R/L eye
– Large contracts increase this
behaviour
Crosstalk
Slide 41
• Stereoscopic 3D (S3D) Games Overview
• How Stereoscopic 3D Works
• PS3™ Implementation of S3D Games
• Reprojection
• SPU Optimisation
• Case Studies
Outline
PS3™ Implementation of S3D
Games
Slide 43
• Frame packing method of 720p at 59.94Hz
• Extended APIs for stereo 3D
– Tells you if the TV supports 3D
– Gives you the screen size
– Choice to switch to 3D is up to the user from within
your game
• Sample code & documents
PS3™: Stereoscopic 3D Support
Slide 44
• New Initialization Code for S3D TV modes
• UI to switch to and from S3D including
strength slider
• Extra legal screen
• Cameras with asymmetric view frustums
• New frame buffer scheme containing full
resolution buffers for both eyes
• Render everything twice with exactly the
same state information at target frame rate
Stereoscopic Rendering
Slide 45
• Output Mode for
3D Game is
1280x1470
1280 pixels
720 pixels
720 pixels
1470 pixels
Left
Right
30 pixel gap filled with black colour
Slide 46
• Need to render most things twice
• Need to use appropriate 3D settings
• Need to separate update and render
• Use a well placed 3D HUD
• Plan from the start
Converting a Game to S3D
Slide 47
• Rendering two images from the same
hardware may require compromises or limit the
possibilities
– Performance
• The scene must be rendered twice.
– Video memory (VRAM) usage
• The frame buffer may be larger in some cases
– Resolution limits
• More pixels may be processed
Technical Consideration
Slide 48
• Need to traverse the scene for two
cameras
• Graphics Command Buffer will grow as
more data is involved (ModelViewProj
matrix, viewport…)
CPU Overheads
Slide 49
• The scene has to be rendered twice
• Double vertex processing
– Large fillrate and memory bandwidth
requirement
GPU Overheads
Slide 50
• When fill-rate is an issue:
– Hardware horizontal upscaler can help
• Supported frame buffer resolutions
• Reduces memory and fill requirements
• Or use a different approach such a reprojection
– More on that later
Any help?
Width 1280 1024 960 800 640
Slide 51
• Rendering to lower resolution buffers with AA looks
better than high resolution buffers with no AA
• Reduces High frequency noise
– Stair casing, “jaggies” , edge sparkle
– May not match in both eyes
– Can be misinterpreted as depth cue or movement
Resolution Vs. Anti-aliasing
Slide 52
Ouch!!
• Monoscopic games
– Wait for the next vertical blank
– Immediate flip
• Might leads to higher FPS but also screen tearing
• Stereoscopic games
– Must wait for next vertical blank
• Else get tearing in one eye only
Swapping the Buffers
Slide 53
• If the data is not synchronized artifacts will
be visible
Same Scene, Both Eyes
While(notdead)
{
updateSimulation(time);
render();
vsyncThenFlip();
}
Slide 54
• If the data is not synchronized artifacts will
be visible
Same Scene, Both Eyes
While(notdead)
{
updateSimulation(time);
render(LeftEye);
render(RightEye);
vsyncThenFlip();
}
Slide 55
• Share Common Objects
– View independent render targets (shadow map...)
• State caching
– Big saving for both CPU and GPU
Optimization
While(notdead)
{
updateSimulation(time);
renderShadows();
renderPlayers();
renderHUD();
vsyncThenFlip();
}
Slide 56
• Share Common Objects
– View independent render targets (shadow map...)
• State caching
– Big saving for both CPU and GPU
Optimization
While(notdead)
{
updateSimulation(time);
renderShadows();
renderPlayers(LeftEye,RightEye);
renderHUD(LeftEye,RightEye);
vsyncThenFlip();
}
Slide 57
• Shadow maps are independent of view
– Cache shadow depth map for both eyes
• Reflections are view dependent
– May still have to render for each eye depending
on how much detail is present
Shadow Depth and Reflection Maps
Slide 58
• Render once for both eyes
– Shadow Map
– Spot light maps projected in the scene
• Render once per eye
– Back Buffer
– Depth Stencil Buffer
– HDR
– Blur
– Bloom
– Mirroring
– Parallax mapping
– Depth of field
– ...
3D Rendering Strategies
Slide 59
• Instead of rendering entire scene into the left buffer,
then the right buffer
– Flip flop between render targets to reduce state
changes
• There is a cost associated with swapping render
buffers though
– Pipelines have to clear out
– Choose granularity carefully
– Alternatively, change the viewport / clip planes
Alternating Render Targets
Slide 60
• Avoid Billboard
– Distant billboard parallel to screen are
okay
• Avoid scintillating pixels
– Use texture filtering and anti-aliasing
– Avoid film grain effects
• Avoid large untextured areas
– Lack of depth cues (“cardboarding”)
• Sky filled with plenty of clouds >
Blue sky
• Bump mapping
– Flatness will ruin the effect
Visual Quality
problem
areas
Slide 61
• View dependant effects
– Reflections
• Difference of contrast for each Eye
– Some Tone Mapping implementation
– Might produce the Pulfrich effect
• Telephoto lenses can cause objects to appear flattened into layers
• Fast action
– When using stereoscopic viewing, the brain needs a small
amount of time to register the effect
Visual Quality
Slide 62
• Can be distracting in S3D
• Ideally on or very near the screen plane
– Consider using depth and transparency
– Maybe some elements can be raised slightly
to add visual interest
Stereo Design: HUD
Slide 63
• Some HUD elements will not work correctly in S3D
compared to 2D
– Cross hairs are inherently 2D
– You aim a gun with one eye creating a transit between the
target, eye and cross hairs
– Placing the Cross hair in the scene at the correct depth
solves this problem
– Or use a laser targeting system
• Looks great in S3D
Stereo Design: HUD
Slide 64
• Some post-processing effects may have to
be tuned for S3D
– For instance prefer motion vectors over
motion blur
– Use depth of field cautiously (more difficult to
focus in 3D)
Stereo Design: Post-Effect
Slide 65
• Sudden video cuts to images with their focal points at
different depths can be tiring for viewers
• Try to keep focal point of images at the same depth
between cuts
• Can adjust at run time by moving Zero Parallax Plane
– Convergence blending
Stereo Design: Video Edits
time
Bad Example Better Example
time
Slide 66
• Depth budget over time
– Allow some less depth intensive period
– User can rest and enjoy even more climax in
full 3D
Stereo Design: Dynamic Depth Intensity
0
50
100
Depth Intensity
Slide 67
• Place a frame in the scene with more negative
parallax than the closest object
– Creates the illusion of moving the surface of the
screen forward
• The window appears to float in front of the screen
Window Violations and Dynamic Floating
Windows
Floating Frame
Window Violation
Slide 68
• Avoid that one object becomes more visible
by one eye
Dynamic Floating Windows
Left Image Right Image
Left Image Right Image
Floating
Window
Floating
Window
Slide 69
• Static floating windows look obvious
• Dynamic Floating windows are a lot more
subtle
– Use in many movies
Dynamic Floating Windows
Slide 70
• Possible to have a lot of
fun with floating
windows in UI design
Window Violations and Floating Windows
Slide 71
• Simplify assets and shaders
• More aggressive LOD
• Remove small objects or some post-effects
• Reduce the game video resolution
– The human visual system does not just use the differences
between what each eye sees to judge depth. It also uses
the similarities to improve resolution ☺
Stereoscopic Vs. Monoscopic Version
Slide 72
• Write to both left and
right scenes in a single
pass
– Some post-effects
• Colour enhancements
• Crosstalk reduction
• …
– Objects at screen level
• Part of the HUD
Sharing Processing via MRT-2
Input Texture
Fragment
Program
MRT0
MRT1
GPU
Render Target
Right Scene
Left Scene
Slide 73
• “Ortho-stereo” viewing/head-
tracked VR
– This can produce a stunningly
realistic, hologram-like effect for
a single viewer as they move
around the room
• PlayStation®Eye
– libFace, libHead
• PlayStation®Move
– Movement in 3D space (Z axis)
Going One Step Furtherviewer
screen
asymmetric
fields of view
dynamic viewing frustum
Slide 74
• Can overcome issues arising from depth
perception or divergence
• Improve the 3D effects on areas the user is likely
to focus (character)s
Non Disparity Mapping for S3D
Reference: Lang, M., Hornung, A., Wang, O., Poulakos, S., Smolic, A. & Gross, M.
(2010, July). Nonlinear Disparity Mapping for Stereoscopic 3D
Slide 75
• Stereoscopic 3D (S3D) Games Overview
• How Stereoscopic 3D Works
• PS3™ Implementation of S3D Games
• Reprojection
• SPU Optimisation
• Case Studies
Outline
Reprojection
Slide 77
• Rendering the entire scene can be prohibitive
– Might lead to difficult trade off
• 60Hz game or split-screen game
– 30Hz in S3D should be doable
• Reduce scene complexity for S3D build
– Lower resolution, less details, disabling effects, etc
Something less depressing?
• Perhaps! ☺
Rendering Twice
Slide 78
• A screen space algorithm would be
appealing
– Fixed run-time cost, independent of scene
complexity ☺
– Might make S3D possible with fewer
limitations
How to Reduce the Burden?
Slide 79
• If we have a frame buffer and a Z buffer
• Possible to generate the other eye view from this
as a post processing step
• No need to re-architect the rendering pipeline for
S3D
• Could be faster than traditional methods
• Don’t have to render everything twice
What About Automated Stereo Conversion?
Slide 80
• Parallax from depth map
– Render a single image
– Create the second image using the
depth map and colour separation
– Pro:
• <2ms on RSX™
– Cons:
• Large parallax creates gaps which
need to be backfilled (borders)
• Transparency and reflections won’t
work
• Use proximity
– Raw occlusion queries
Alternative Ways of Creating Stereoscopic 3D
Slide 81
• Apply a depth-dependant parallax shift
• Image-space operation creating the right
image from the left image
Reprojection
Slide 82
• An image rendered using one view-projection
matrix can be remapped pixel by pixel to a
second view-projection matrix
– In our case, we only need a x-axis depth-
dependant offset
• Offset is based on a linear function using the Z value stored in
the depth buffer and the stereo camera parameters
Reprojection Matrix
Slide 83
• Scanline the RGBA colour buffer and depth
buffer
– Each input pixel will write a single output pixel
• Lead to small cracks when depth changes
• A second pass will then back-fill any such gaps
Reprojection
Slide 84
Reprojection
Effect code
Func(depth,
cameras,
InputPixelColor)
Input pixels from
the color buffer
and depth buffer
Output pixel
Colour
Buffer
Depth
Buffer
Left Right
Slide 85
• Read depth value
• Calculate pixel offset using the linear function
func(z, camParams)
• Read RGBA pixel
• Write pixel to intermediate buffer at offset
location (Xdest = X+offset)
1st Pass: Reprojection Per-pixel
Slide 86
Reprojection
Gaps will be created at depth
disparity
Invalid Pixels
Left Right
Slide 87
• Read intermediate output buffer
• If pixel is invalid, use most recently read
valid pixel value
• Pack and write pixel to output RGBA
scanline
2nd Pass: Back-fill per pixel
Slide 88
Reprojection
Invalid Pixels Back-fill Pixels
Remove
the Gaps!
Slide 89
Slide 90
• Works surprisingly well with sensible stereo
strength
• Great quality with positive parallax
– No major image artefacts for opaque objects
– Transparent objects look acceptable
– Slight stretching at screen edges (easy to
overcome)
– Works with negative parallax (objects coming out)
Screen Space Reprojection
Slide 91
• Transparent and reflection are incorrect
• Can create small cracks with depth changes
• Side band
– Black bars on the left and right side of the screen
• Hardly noticeable with TV with black borders
• Or extend the display buffer by x pixels (where x depends on
depth separation)
Limitations
Slide 92
• MSAA can lead to artefacts due to the depth discontinuities
– MLAA is less affected
• Objects that lead to large disparity between both views should be
render twice
– View dependent shading is not handled by the reprojection
operation
– Post-Effects
• Normal case is rendered via reprojection
Gotchas
Slide 93
Generating two images
• Heavy GPU overheads
– Potential trade-off with game
resolution and scene
complexity
• Results are correct also for
view dependent effects
Reprojection
• Artefacts visible at depth
discontinuity or for view
dependent effects
– Can be minimized but
require change in the
renderer
• Possible cardboarding
• Screen space effect with
reduced impact on the
performance
– Allow to keep higher in-game
resolution
Comparison
Slide 94
• Trioviz, Darkworks
• UE3 (via Trioviz), Epic Games
• CryEngine 3, Crytek
• …
Out-of-the Shelves Solutions
Slide 95
• Stereoscopic 3D (S3D) Games Overview
• How Stereoscopic 3D Works
• PS3™ Implementation of S3D Games
• Reprojection
• SPU Optimisation
• Case Studies
Outline
SPU Optimisation
Slide 97
• SPU can contribute to graphics and offload
RSX™
• Possible to take into account similarities
between both views
– E.g.: conservative occlusion queries
SPU Optimization for S3D
Slide 98
• Gross frustum culling is really important on the RSX™
– Anything not sent for rendering is a win
– Doubly important when rendering in stereo
• Frustum culling is fairly easy to move to SPUs
– Testing boxes or spheres against 6 planes
– Helps the performance of the 2D version of your game too
– A lot of bang for your buck
Frustum Culling
Slide 99
• Left and Right eyes should be seeing almost the same
scene
• Use single composite frustum for testing
– Extract planes from camera matrices
• Once this render list is created it can be used for both
eyes
– Saves CPU time
Frustum Culling
Slide 100
• Very popular via PlayStation®Edge
– Can be customized for S3D
Geometry Culling On SPU
L R
e
L R
N
Vl(Xl,Y,Z) Vr(Xr,Y,Z)
Slide 101
• Using Xl = Xr-e, we can potentially early reject or
accept both faces
Backface Culling
ZCYBeXrAXrAMax
CBANZYXrVrCBANZYeXrVl
**))(*,*(
0),,(),,(&&0),,(),,(
−−>−
>•>•−
.
Front-Facing for Left Eye only
Front-Facing for both Eye
Front-Facing for Right Eye only
Back-Facing for both Eyes
Reprojection on SPU
Slide 103
• Copy tiled color buffer and depth buffer to
linear system memory using RSX™
• Kick SPU jobs
• Sync on SPU results
• Copy the result back to VRAM
Reprojection on SPU
Slide 104
Pipeline
Render left eye main Copy
Reproject
Render left eye
problem objects
RSX
Copy RGBA and
depth buffers to
host
Copy Render right eye problem
objects
Left eye render
complete
Right eye render
complete
SPU
Host RAM RGBA +
D24S8
Result
buffers
Sync RSX/SPU Sync RSX/SPU
Slide 105
• Buffers transfer Host RAM <> VRAM is linear to buffer
size
• Reprojection on SPUs is fast
• The whole process take around 7.5% (~2.5ms) of a
30hz frame at 720p
– Buffer transfer (color + depth/stencil): ~0.4ms each way for
720p (~1.6ms)
– ~0.7ms for SPU jobs (on all 6 SPUs)
Performance
Slide 106
• In many cases, the latency is completely
hidden as RSX™ is rendering the
problematic objects for the left eye
How to Hide Latency for RSX™
Slide 107
• Stereoscopic 3D (S3D) Games Overview
• How Stereoscopic 3D Works
• PS3™ Implementation of S3D Games
• Reprojection
• SPU Optimisation
• Case Studies
Outline
Case Studies
Slide 109
• 2D version: 1080p@60Hz
• S3D version: 720p@30Hz
– (1280*720*2) = 1.7Mpixels
– (1920*1080) = 2.1Mpixels
• Fixed interaxial distance
• Max separation of 3%
WipEoutHD
Slide 110
• Some work on the HUD
– Push cross hairs into scene
• Add S3D elements to Menus
to keep the game feeling S3D
– Else it was very noticeable
when the game was only
displaying 2D graphics in
menus
WipEoutHD
Slide 111
• 2D version 720p@30Hz (dynamic framebuffer)
• No scope for cutting frame rate
• Game already had split screen view
– Pushes out LOD and fewer effects
• Bound by fill rate
– Used smaller render targets
• In car view uses fixed interaxial
• Chase came uses varying interaxial
– Quite wide settings to emphasize depth in the scene
Motorstorm: Pacific Rift
Slide 112
• Lowered HUD opacity
• Easy for player to filter on depth
– Look at HUD
– Look through HUD
Motorstorm: Pacific Rift
Slide 113
SuperStardustHD
• 2D version at 1080p@60hz
• 3D version at 720p@60hz
– No compromise in the game
assets (share for 2D/3D
version)
– Conversion made possible
via optimization
Slide 114
• Negative parallax
(out of screen)
SuperStardustHD
Slide 115
• Generating two separate images
– Sometime using half-height screen
buffer and the HW upscaler
– Combine with anti-aliasing produces
excellent results in 3D
– Process is easier if the game support
split screen
• Reprojection
– Good trade-off quality / performance
Different Ways to Convert to S3D
Split screen > L + R
Reprojection
Slide 116
Cost of 3D Game Development
3D Conversion Overheads:
• KillZone 3: 2%
• Hustle Kings: 2%
• The Fight: <1%
• MotorStorm Pacific Rift: 2%
• WipeoutHD: 1%
Will still require a few man months,
especially for tweaking the results
Total Cost
Typical 3D
Conversion cost
Slide 117
• Stereoscopic 3D (S3D) Games Overview
• How Stereoscopic 3D Works
• PS3™ Implementation of S3D Games
• Reprojection
• SPU Optimisation
• Case Studies
Outline
Conclusion
Slide 119
• Stereoscopic 3D games require less than twice the
amount of processing
– Some elements can be rendered once
– Reprojection is a fair technique
• Making Stereoscopic 3D content looks good require
some tuning
• Stereoscopic 3D should be comfortable to experience
– Always visually check on a full sized screen
Conclusion
Slide 120
• SCEE R&D
• WWS Stereoscopic 3D Team
• SCE Worldwide Studios (1st & 2nd Party studios)
Acknowledgments
Slide 121
Any Question?

More Related Content

What's hot

3D Television and Current trends.
3D Television and Current trends.3D Television and Current trends.
3D Television and Current trends.rexbison
 
Digital graphics (urtak)
Digital graphics (urtak)Digital graphics (urtak)
Digital graphics (urtak)francocolumbu
 
Graphics devices
Graphics devicesGraphics devices
Graphics devicesaa11bb11
 
98 374 Lesson 03-slides
98 374 Lesson 03-slides98 374 Lesson 03-slides
98 374 Lesson 03-slidesTracie King
 
3DTV state of the art
3DTV state of the art3DTV state of the art
3DTV state of the artDavid Metge
 
3 d television technology gajendra singh
3 d television technology gajendra singh3 d television technology gajendra singh
3 d television technology gajendra singhgajju177
 
3d tv broadcasting and distribution systems
3d tv broadcasting and distribution systems3d tv broadcasting and distribution systems
3d tv broadcasting and distribution systemsAbhiram Subhagan
 
E ball pc technology & space mouse
E ball pc technology & space mouseE ball pc technology & space mouse
E ball pc technology & space mouseindrathakur001
 
Technical document - BadBug Studio - Xbox Game
Technical document - BadBug Studio - Xbox GameTechnical document - BadBug Studio - Xbox Game
Technical document - BadBug Studio - Xbox GameUTC Fire & Security
 
Basic Optimization and Unity Tips & Tricks by Yogie Aditya
Basic Optimization and Unity Tips & Tricks by Yogie AdityaBasic Optimization and Unity Tips & Tricks by Yogie Aditya
Basic Optimization and Unity Tips & Tricks by Yogie AdityagamelanYK
 
Design your 3d game engine
Design your 3d game engineDesign your 3d game engine
Design your 3d game engineDaosheng Mu
 
Computer Graphics Notes
Computer Graphics NotesComputer Graphics Notes
Computer Graphics NotesGurpreet singh
 
Unite seoul 2016 Rooms2 mobile to VR
Unite seoul 2016 Rooms2 mobile to VRUnite seoul 2016 Rooms2 mobile to VR
Unite seoul 2016 Rooms2 mobile to VRSangYun Yi
 
Gamebryo LightSpeed(English)
Gamebryo LightSpeed(English)Gamebryo LightSpeed(English)
Gamebryo LightSpeed(English)Gamebryo
 

What's hot (20)

3 d television
3 d television3 d television
3 d television
 
3d television
3d television3d television
3d television
 
3D Television and Current trends.
3D Television and Current trends.3D Television and Current trends.
3D Television and Current trends.
 
Digital graphics (urtak)
Digital graphics (urtak)Digital graphics (urtak)
Digital graphics (urtak)
 
Graphics devices
Graphics devicesGraphics devices
Graphics devices
 
98 374 Lesson 03-slides
98 374 Lesson 03-slides98 374 Lesson 03-slides
98 374 Lesson 03-slides
 
3DTV state of the art
3DTV state of the art3DTV state of the art
3DTV state of the art
 
3 d television technology gajendra singh
3 d television technology gajendra singh3 d television technology gajendra singh
3 d television technology gajendra singh
 
3d tv broadcasting and distribution systems
3d tv broadcasting and distribution systems3d tv broadcasting and distribution systems
3d tv broadcasting and distribution systems
 
3 d technology
3 d technology3 d technology
3 d technology
 
3D television
3D television3D television
3D television
 
E ball pc technology & space mouse
E ball pc technology & space mouseE ball pc technology & space mouse
E ball pc technology & space mouse
 
Technical document - BadBug Studio - Xbox Game
Technical document - BadBug Studio - Xbox GameTechnical document - BadBug Studio - Xbox Game
Technical document - BadBug Studio - Xbox Game
 
Basic Optimization and Unity Tips & Tricks by Yogie Aditya
Basic Optimization and Unity Tips & Tricks by Yogie AdityaBasic Optimization and Unity Tips & Tricks by Yogie Aditya
Basic Optimization and Unity Tips & Tricks by Yogie Aditya
 
Design your 3d game engine
Design your 3d game engineDesign your 3d game engine
Design your 3d game engine
 
Computer Graphics Notes
Computer Graphics NotesComputer Graphics Notes
Computer Graphics Notes
 
Oculus Rift
Oculus RiftOculus Rift
Oculus Rift
 
Unite seoul 2016 Rooms2 mobile to VR
Unite seoul 2016 Rooms2 mobile to VRUnite seoul 2016 Rooms2 mobile to VR
Unite seoul 2016 Rooms2 mobile to VR
 
Gamebryo LightSpeed(English)
Gamebryo LightSpeed(English)Gamebryo LightSpeed(English)
Gamebryo LightSpeed(English)
 
Hp envy
Hp  envyHp  envy
Hp envy
 

Similar to Optimization for Making Stereoscopic 3D Games on PlayStation® (PS3™)

@Bristol Data Dome workshop - NSC Creative
@Bristol Data Dome workshop - NSC Creative@Bristol Data Dome workshop - NSC Creative
@Bristol Data Dome workshop - NSC CreativeSouth West Data Meetup
 
3d tecnnology
3d tecnnology3d tecnnology
3d tecnnologykingraj01
 
3d tecnnology
3d tecnnology3d tecnnology
3d tecnnologykingraj01
 
VR Introduction
VR IntroductionVR Introduction
VR IntroductionAdam Chen
 
Stereoscopic 3D Advertising FAQs
Stereoscopic 3D Advertising FAQsStereoscopic 3D Advertising FAQs
Stereoscopic 3D Advertising FAQsMike Fuchsman
 
Cinematography 1 (camera operation)
Cinematography 1 (camera operation)Cinematography 1 (camera operation)
Cinematography 1 (camera operation)Phillip Doyle
 
MetaZtron holographic Z depth factor
MetaZtron holographic Z depth factorMetaZtron holographic Z depth factor
MetaZtron holographic Z depth factorDiane Troyer
 
3D Display Technology
3D Display Technology3D Display Technology
3D Display TechnologyDilip Singh
 
How does 3D technology work ?
How does 3D technology work ?How does 3D technology work ?
How does 3D technology work ?Mohammed Abuibaid
 
Developing Games For VR - Lessons Learned
Developing Games For VR - Lessons LearnedDeveloping Games For VR - Lessons Learned
Developing Games For VR - Lessons LearnedMartin Climatiano
 
3 d t echnology
3 d t echnology3 d t echnology
3 d t echnologyvipulpop
 
DLP Projection systems
DLP Projection systemsDLP Projection systems
DLP Projection systemsVarun Kambrath
 
3dtv-130330020623-phpapp02 (1) (1).pdf
3dtv-130330020623-phpapp02 (1) (1).pdf3dtv-130330020623-phpapp02 (1) (1).pdf
3dtv-130330020623-phpapp02 (1) (1).pdfaswinsagar5
 

Similar to Optimization for Making Stereoscopic 3D Games on PlayStation® (PS3™) (20)

3D PC GLASS
3D PC GLASS3D PC GLASS
3D PC GLASS
 
@Bristol Data Dome workshop - NSC Creative
@Bristol Data Dome workshop - NSC Creative@Bristol Data Dome workshop - NSC Creative
@Bristol Data Dome workshop - NSC Creative
 
3d tecnnology
3d tecnnology3d tecnnology
3d tecnnology
 
3d tecnnology
3d tecnnology3d tecnnology
3d tecnnology
 
VR Introduction
VR IntroductionVR Introduction
VR Introduction
 
Stereoscopy
StereoscopyStereoscopy
Stereoscopy
 
3D Technology
3D Technology3D Technology
3D Technology
 
pallu
pallupallu
pallu
 
Stereoscopic 3D Advertising FAQs
Stereoscopic 3D Advertising FAQsStereoscopic 3D Advertising FAQs
Stereoscopic 3D Advertising FAQs
 
Cinematography 1 (camera operation)
Cinematography 1 (camera operation)Cinematography 1 (camera operation)
Cinematography 1 (camera operation)
 
MetaZtron holographic Z depth factor
MetaZtron holographic Z depth factorMetaZtron holographic Z depth factor
MetaZtron holographic Z depth factor
 
3D Display Technology
3D Display Technology3D Display Technology
3D Display Technology
 
How does 3D technology work ?
How does 3D technology work ?How does 3D technology work ?
How does 3D technology work ?
 
Developing Games For VR - Lessons Learned
Developing Games For VR - Lessons LearnedDeveloping Games For VR - Lessons Learned
Developing Games For VR - Lessons Learned
 
3D Workshop
3D Workshop3D Workshop
3D Workshop
 
3 d t echnology
3 d t echnology3 d t echnology
3 d t echnology
 
Mark newburn
Mark newburnMark newburn
Mark newburn
 
3 d television
3 d television3 d television
3 d television
 
DLP Projection systems
DLP Projection systemsDLP Projection systems
DLP Projection systems
 
3dtv-130330020623-phpapp02 (1) (1).pdf
3dtv-130330020623-phpapp02 (1) (1).pdf3dtv-130330020623-phpapp02 (1) (1).pdf
3dtv-130330020623-phpapp02 (1) (1).pdf
 

More from Slide_N

New Millennium for Computer Entertainment - Kutaragi
New Millennium for Computer Entertainment - KutaragiNew Millennium for Computer Entertainment - Kutaragi
New Millennium for Computer Entertainment - KutaragiSlide_N
 
Sony Transformation 60 - Kutaragi
Sony Transformation 60 - KutaragiSony Transformation 60 - Kutaragi
Sony Transformation 60 - KutaragiSlide_N
 
Sony Transformation 60
Sony Transformation 60 Sony Transformation 60
Sony Transformation 60 Slide_N
 
Moving Innovative Game Technology from the Lab to the Living Room
Moving Innovative Game Technology from the Lab to the Living RoomMoving Innovative Game Technology from the Lab to the Living Room
Moving Innovative Game Technology from the Lab to the Living RoomSlide_N
 
Cell Technology for Graphics and Visualization
Cell Technology for Graphics and VisualizationCell Technology for Graphics and Visualization
Cell Technology for Graphics and VisualizationSlide_N
 
Industry Trends in Microprocessor Design
Industry Trends in Microprocessor DesignIndustry Trends in Microprocessor Design
Industry Trends in Microprocessor DesignSlide_N
 
Translating GPU Binaries to Tiered SIMD Architectures with Ocelot
Translating GPU Binaries to Tiered SIMD Architectures with OcelotTranslating GPU Binaries to Tiered SIMD Architectures with Ocelot
Translating GPU Binaries to Tiered SIMD Architectures with OcelotSlide_N
 
Cellular Neural Networks: Theory
Cellular Neural Networks: TheoryCellular Neural Networks: Theory
Cellular Neural Networks: TheorySlide_N
 
Network Processing on an SPE Core in Cell Broadband EngineTM
Network Processing on an SPE Core in Cell Broadband EngineTMNetwork Processing on an SPE Core in Cell Broadband EngineTM
Network Processing on an SPE Core in Cell Broadband EngineTMSlide_N
 
Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Slide_N
 
Developing Technology for Ratchet and Clank Future: Tools of Destruction
Developing Technology for Ratchet and Clank Future: Tools of DestructionDeveloping Technology for Ratchet and Clank Future: Tools of Destruction
Developing Technology for Ratchet and Clank Future: Tools of DestructionSlide_N
 
NVIDIA Tesla Accelerated Computing Platform for IBM Power
NVIDIA Tesla Accelerated Computing Platform for IBM PowerNVIDIA Tesla Accelerated Computing Platform for IBM Power
NVIDIA Tesla Accelerated Computing Platform for IBM PowerSlide_N
 
The Visual Computing Revolution Continues
The Visual Computing Revolution ContinuesThe Visual Computing Revolution Continues
The Visual Computing Revolution ContinuesSlide_N
 
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...Slide_N
 
MLAA on PS3
MLAA on PS3MLAA on PS3
MLAA on PS3Slide_N
 
SPU gameplay
SPU gameplaySPU gameplay
SPU gameplaySlide_N
 
Insomniac Physics
Insomniac PhysicsInsomniac Physics
Insomniac PhysicsSlide_N
 
SPU Shaders
SPU ShadersSPU Shaders
SPU ShadersSlide_N
 
SPU Physics
SPU PhysicsSPU Physics
SPU PhysicsSlide_N
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Slide_N
 

More from Slide_N (20)

New Millennium for Computer Entertainment - Kutaragi
New Millennium for Computer Entertainment - KutaragiNew Millennium for Computer Entertainment - Kutaragi
New Millennium for Computer Entertainment - Kutaragi
 
Sony Transformation 60 - Kutaragi
Sony Transformation 60 - KutaragiSony Transformation 60 - Kutaragi
Sony Transformation 60 - Kutaragi
 
Sony Transformation 60
Sony Transformation 60 Sony Transformation 60
Sony Transformation 60
 
Moving Innovative Game Technology from the Lab to the Living Room
Moving Innovative Game Technology from the Lab to the Living RoomMoving Innovative Game Technology from the Lab to the Living Room
Moving Innovative Game Technology from the Lab to the Living Room
 
Cell Technology for Graphics and Visualization
Cell Technology for Graphics and VisualizationCell Technology for Graphics and Visualization
Cell Technology for Graphics and Visualization
 
Industry Trends in Microprocessor Design
Industry Trends in Microprocessor DesignIndustry Trends in Microprocessor Design
Industry Trends in Microprocessor Design
 
Translating GPU Binaries to Tiered SIMD Architectures with Ocelot
Translating GPU Binaries to Tiered SIMD Architectures with OcelotTranslating GPU Binaries to Tiered SIMD Architectures with Ocelot
Translating GPU Binaries to Tiered SIMD Architectures with Ocelot
 
Cellular Neural Networks: Theory
Cellular Neural Networks: TheoryCellular Neural Networks: Theory
Cellular Neural Networks: Theory
 
Network Processing on an SPE Core in Cell Broadband EngineTM
Network Processing on an SPE Core in Cell Broadband EngineTMNetwork Processing on an SPE Core in Cell Broadband EngineTM
Network Processing on an SPE Core in Cell Broadband EngineTM
 
Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3Deferred Pixel Shading on the PLAYSTATION®3
Deferred Pixel Shading on the PLAYSTATION®3
 
Developing Technology for Ratchet and Clank Future: Tools of Destruction
Developing Technology for Ratchet and Clank Future: Tools of DestructionDeveloping Technology for Ratchet and Clank Future: Tools of Destruction
Developing Technology for Ratchet and Clank Future: Tools of Destruction
 
NVIDIA Tesla Accelerated Computing Platform for IBM Power
NVIDIA Tesla Accelerated Computing Platform for IBM PowerNVIDIA Tesla Accelerated Computing Platform for IBM Power
NVIDIA Tesla Accelerated Computing Platform for IBM Power
 
The Visual Computing Revolution Continues
The Visual Computing Revolution ContinuesThe Visual Computing Revolution Continues
The Visual Computing Revolution Continues
 
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
Multiple Cores, Multiple Pipes, Multiple Threads – Do we have more Parallelis...
 
MLAA on PS3
MLAA on PS3MLAA on PS3
MLAA on PS3
 
SPU gameplay
SPU gameplaySPU gameplay
SPU gameplay
 
Insomniac Physics
Insomniac PhysicsInsomniac Physics
Insomniac Physics
 
SPU Shaders
SPU ShadersSPU Shaders
SPU Shaders
 
SPU Physics
SPU PhysicsSPU Physics
SPU Physics
 
Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2Deferred Rendering in Killzone 2
Deferred Rendering in Killzone 2
 

Recently uploaded

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Recently uploaded (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

Optimization for Making Stereoscopic 3D Games on PlayStation® (PS3™)

  • 1. Sébastien Schertenleib Principal Engineer Sony Computer Entertainment Europe Research & Development Division Optimization for Making Stereoscopic 3D Games on PlayStation® (PS3™)
  • 2. Slide 2 • Stereoscopic 3D (S3D) Games Overview • How Stereoscopic 3D Works • PS3™ Implementation of S3D Games • Reprojection • SPU Optimisation • Case Studies Outline
  • 4. Slide 4 • Movie – Digital animation – Actors • Broadcast – VOD – FIFA World Cup 2010 • Professional – Digital cinema camera • Home – TV and projector – BD player/recorder – BD movie – Digital camera – Stereoscopic gaming on PlayStation®3 Sony’s Approach to Stereo 3D
  • 5. Slide 5 • Increased immersion • Some tasks are easier (driving, batting, ...) • New types of games may become possible (first person sports?) Why is Stereoscopic 3D Important to Games?
  • 6. Slide 6 • 3D TVs now in the home • 3D works very well in close proximity • Gamers tend to demand more immersion – never less • Wide variety of 3D content should sustain momentum (sports, movies, games, TV, photos, home movies) 3D is here to Stay!
  • 7. Slide 7 • All S3D displays send a different image to the left and right eye • There are several different technologies in use • The main ones are – Anaglyph (Red Cyan Glasses) – Passive (Polarized Glasses) – Active ( Shutter Glasses) – Auto-Stereo ( No Glasses) S3D Displays
  • 8. Slide 8 2D = 1 camera generates an image which is displayed on the TV screen and is then seen in both eyes 3D = 2 cameras generate 2 images (one for each eye) which are displayed on a 3DTV screen, then separated by special glasses to the correct eye. How 3D works 2D 3D Cameras Images TV screen Glasses Image seen
  • 9. Slide 9 • Red Cyan Glasses – Cons • Only really works for black and white – Pros • Easy to make content for • No special display needed – Not recommended for commercial titles – Useful for research • Works anywhere Anaglyph
  • 10. Slide 10 Absorptive Polarizer • Uses 2 projector lenses, one for each eye – Lens are polarized differently – Polarized glasses de-mulitplex signal at your eyes – Passive cinema projection requires a special "non-depolarising" screen • For front projection, this is normally metallic silver. Passive Glasses (Movie Theatre)
  • 11. Slide 11 • TV Surface is coated with a polarized filter – Some parts of the TV are seen by the left eye – Some parts of the TV are seen by the right eye • Half the resolution of the image is lost • Viewing angles can be limited • Cons – Lose resolution to mask – Screen filter adds to TVs cost • Pros – Glasses are cheap Passive Glasses (TV)
  • 12. Slide 12 • The TV updates @ N*120Hz • Alternate left and right images • Shutter glasses synchronization with TV to mask the left and right frames Active Glasses
  • 13. Slide 13 • This is the solution used in most of the new S3D TV shipping now – Including Sony BRAVIA • Pros – Full HD to each eye – Wide range of viewing angles • Cons – Glasses need batteries and are more expensive Active Glasses
  • 14. Slide 14 • These require no glasses to operate – Current solutions use a parallax barrier or lenticular technology • Generally the viewing angles are limited Auto-stereo Displays
  • 15. Slide 15 • HDMI 1.4 introduces a standard on both ends • PS3™ supports S3D via 3D over HDMI – It will work on every HDMI 1.4 receiver (e.g. 3DTV) Connectivity
  • 16. Slide 16 • The PS3™ outputs the following formats for S3D Supported Formats used by PS3™ Use Resolution (Per Eye) Hz BD Playback 3D Photo Browsing (PlayMemories) 1920*1080p 24 Games 1280*720p 60
  • 17. Slide 17 • Stereoscopic 3D (S3D) Games Overview • How Stereoscopic 3D Works • PS3™ Implementation of S3D Games • Reprojection • SPU Optimisation • Case Studies Outline
  • 19. Slide 19 • Stereoscopic 3D games require to setup two cameras, one for each eye • A naïve implementation can deteriorate the 3D experience Setting up the 3D Cameras
  • 20. Slide 20 Translate the cameras in 3D space L R Setting up the cameras Attempt 1: Simple Offset Large portion of each image is only visible to a single eye resulting in considerable eye strain. Result: Failure
  • 21. Slide 21 Translate the cameras in 3D space L R Setting up the cameras Attempt 2: Toe-in Convergence is not parallel with the screen which causes vertical parallax deviations. These deviations are unnatural and make the experience uncomfortable. Result: Failure
  • 22. Slide 22 Translate the cameras in 3D space L R Setting up the cameras Attempt 3: Parallel Projection The projection matrix is changed so that the projection is asymmetric. No vertical parallax and acceptable portions of the scene are only visible to a single eye. Comfortable to view for an extended period of time. Result: PASS                   − −− + − + − − + − = 0100 2 00 0 2 0 00 2 fn nf fn fn bt bt bt n lr lr lr n Moblic
  • 23. Slide 23 Translate the cameras in 3D space Real World A B Screen Plane I θ S α View Space Legend • I: camera separation • S: distance to viewing plane • Z : screen distance • θ : horizontal field of view • α : angle of convergence i D Z d W View Space z ( ) dI ID Z ziW d − × = − = )2tan(2 )tan(2 θ α )tan(2 )tan()2tan( α αθ Si WIr = ×=×× ( ) zrrS z DZ zSIrd )1( 1 −+ ×= −××= Theorem Variable Definition Derivation Real World Legend • i: eye separation • D: distance to display • d: amount of parallax • W: display width • Z: Depth of the object
  • 24. Slide 24 • When you look at an object – Both eyes are aiming directly at the object – For a distant object the eyes are almost parallel – For a close object the eyes must toe inward Convergence See how the girl’s convergence angle decreases as the bear gets more distant
  • 25. Slide 25 • When viewing S3D your eyes are focused on the screen – But converging at a different depth • Accommodation and Convergence can be decoupled Accommodation and Convergence Accommodation Convergence
  • 26. Slide 26 • Perceived depth from separation in images • Positive Parallax – behind screen • Zero Parallax – on screen plane – left and right images are same • Negative Parallax – in front of screen Perceived Depth
  • 27. Slide 27 • Same image with same separation in both diagrams • Perceived depth is affected by viewer position • Further back gives more perceived depth with less convergence Where You Sit Matters
  • 28. Slide 28 • Everything moves closer • Everything decreases in size • Objects in the foreground move further away • Objects in the foreground increase in size • Objects in the distance are unchanged Placement and Scaling in Stereoscopic 3D Decrease the convergence Decrease the interaxial x y x y z
  • 29. Slide 29 • Incorporating a 3D strength slider into your title is recommended – Slider should go from Max down to 0 • This gives players the chance to reduce the stereo effect to a comfortable level – Screen size and distance from screen as well as personal taste 3D Slider
  • 30. Slide 30 • Scaling both the convergence and interaxial by the same amount – Stretch or squash the depth but maintain the (2D) size of objects at point of convergence – Use in our 3D slider implementation • If both interaxial and convergence are set to zero, you get a 2D picture Keeping Object Size Display Perceived Depth 2DMax
  • 31. Slide 31 • The TV is a window – Most content will be inside the TV – Content in front of the TV will be • Small and Fast Generally – Avoid Window Violations • Occurs when an object touches the stereo window resulting in cutting off more of an object in one eye than the other Stereo Reference Screen Space Audience Space Image plane Stereo Infinity Uncomfortable Stereo Comfortable Stereo Comfortable areas for 3D stereo Red is bad Blue is good
  • 32. Slide 32 Calculating Frustum Origin Z = S / ( 1 + W / I ) Legend • Z : frustum origin • S: distance to viewing plane • W : width of viewing plane in view world • I: camera separation L R Screen S W I Z Monoscopic Frustum Culling
  • 33. Slide 33 Calculating Frustum Origin Z = S / ( 1 + W / I ) Legend • Z : frustum origin • S: distance to viewing plane • W : width of viewing plane in view world • I: camera separation L R Screen Steroscopic Frustum Culling S W I Z Reduce window violations
  • 34. Slide 34 COMFORT ZONE The limitations of parallax – the acceptable limits
  • 35. Slide 35 The limitations of parallax - divergence
  • 36. Slide 36 • Ensure +ve parallax is less than 1 degree • Work for wide variety of screen size from mobile to theatre and HDTV • Typical screen the maximum depth is approx. the same as viewing distance • Including a 3D strength slider is useful Parallax Management – use an arbitrary value
  • 37. Slide 37 • Alternatively using PlayStation®Eye and Face tracking, it is possible to measure the exact viewer distance – Combine with the screen size (HDMI1.4), we could guarantee the best parallax for each user setup • Installed base of millions of cameras and growing – With the introduction of the PlayStation®Move motion controller PlayStation®Eye
  • 38. Slide 38 Limiting the positive parallax: how the depth is perceived Accurate depth but large restrictions on the game design real world viewed world max parallax
  • 39. Slide 39 • Cross Talk or Ghosting can become very evident if there is too much separation between images – Most of this is inherent to the display technology • Latency in the panels and glasses – Some is due to separation in the images • Left and right images are very different at extremes of negative and positive parallax • Eyes and brain start to realize they are being tricked… Separation: Cross Talk
  • 40. Slide 40 • Major drawback with current shutter glasses technology (sync-errors, inability to block all the light,...) – The L/R eye see some residue of the image dedicated to the R/L eye – Large contracts increase this behaviour Crosstalk
  • 41. Slide 41 • Stereoscopic 3D (S3D) Games Overview • How Stereoscopic 3D Works • PS3™ Implementation of S3D Games • Reprojection • SPU Optimisation • Case Studies Outline
  • 43. Slide 43 • Frame packing method of 720p at 59.94Hz • Extended APIs for stereo 3D – Tells you if the TV supports 3D – Gives you the screen size – Choice to switch to 3D is up to the user from within your game • Sample code & documents PS3™: Stereoscopic 3D Support
  • 44. Slide 44 • New Initialization Code for S3D TV modes • UI to switch to and from S3D including strength slider • Extra legal screen • Cameras with asymmetric view frustums • New frame buffer scheme containing full resolution buffers for both eyes • Render everything twice with exactly the same state information at target frame rate Stereoscopic Rendering
  • 45. Slide 45 • Output Mode for 3D Game is 1280x1470 1280 pixels 720 pixels 720 pixels 1470 pixels Left Right 30 pixel gap filled with black colour
  • 46. Slide 46 • Need to render most things twice • Need to use appropriate 3D settings • Need to separate update and render • Use a well placed 3D HUD • Plan from the start Converting a Game to S3D
  • 47. Slide 47 • Rendering two images from the same hardware may require compromises or limit the possibilities – Performance • The scene must be rendered twice. – Video memory (VRAM) usage • The frame buffer may be larger in some cases – Resolution limits • More pixels may be processed Technical Consideration
  • 48. Slide 48 • Need to traverse the scene for two cameras • Graphics Command Buffer will grow as more data is involved (ModelViewProj matrix, viewport…) CPU Overheads
  • 49. Slide 49 • The scene has to be rendered twice • Double vertex processing – Large fillrate and memory bandwidth requirement GPU Overheads
  • 50. Slide 50 • When fill-rate is an issue: – Hardware horizontal upscaler can help • Supported frame buffer resolutions • Reduces memory and fill requirements • Or use a different approach such a reprojection – More on that later Any help? Width 1280 1024 960 800 640
  • 51. Slide 51 • Rendering to lower resolution buffers with AA looks better than high resolution buffers with no AA • Reduces High frequency noise – Stair casing, “jaggies” , edge sparkle – May not match in both eyes – Can be misinterpreted as depth cue or movement Resolution Vs. Anti-aliasing
  • 52. Slide 52 Ouch!! • Monoscopic games – Wait for the next vertical blank – Immediate flip • Might leads to higher FPS but also screen tearing • Stereoscopic games – Must wait for next vertical blank • Else get tearing in one eye only Swapping the Buffers
  • 53. Slide 53 • If the data is not synchronized artifacts will be visible Same Scene, Both Eyes While(notdead) { updateSimulation(time); render(); vsyncThenFlip(); }
  • 54. Slide 54 • If the data is not synchronized artifacts will be visible Same Scene, Both Eyes While(notdead) { updateSimulation(time); render(LeftEye); render(RightEye); vsyncThenFlip(); }
  • 55. Slide 55 • Share Common Objects – View independent render targets (shadow map...) • State caching – Big saving for both CPU and GPU Optimization While(notdead) { updateSimulation(time); renderShadows(); renderPlayers(); renderHUD(); vsyncThenFlip(); }
  • 56. Slide 56 • Share Common Objects – View independent render targets (shadow map...) • State caching – Big saving for both CPU and GPU Optimization While(notdead) { updateSimulation(time); renderShadows(); renderPlayers(LeftEye,RightEye); renderHUD(LeftEye,RightEye); vsyncThenFlip(); }
  • 57. Slide 57 • Shadow maps are independent of view – Cache shadow depth map for both eyes • Reflections are view dependent – May still have to render for each eye depending on how much detail is present Shadow Depth and Reflection Maps
  • 58. Slide 58 • Render once for both eyes – Shadow Map – Spot light maps projected in the scene • Render once per eye – Back Buffer – Depth Stencil Buffer – HDR – Blur – Bloom – Mirroring – Parallax mapping – Depth of field – ... 3D Rendering Strategies
  • 59. Slide 59 • Instead of rendering entire scene into the left buffer, then the right buffer – Flip flop between render targets to reduce state changes • There is a cost associated with swapping render buffers though – Pipelines have to clear out – Choose granularity carefully – Alternatively, change the viewport / clip planes Alternating Render Targets
  • 60. Slide 60 • Avoid Billboard – Distant billboard parallel to screen are okay • Avoid scintillating pixels – Use texture filtering and anti-aliasing – Avoid film grain effects • Avoid large untextured areas – Lack of depth cues (“cardboarding”) • Sky filled with plenty of clouds > Blue sky • Bump mapping – Flatness will ruin the effect Visual Quality problem areas
  • 61. Slide 61 • View dependant effects – Reflections • Difference of contrast for each Eye – Some Tone Mapping implementation – Might produce the Pulfrich effect • Telephoto lenses can cause objects to appear flattened into layers • Fast action – When using stereoscopic viewing, the brain needs a small amount of time to register the effect Visual Quality
  • 62. Slide 62 • Can be distracting in S3D • Ideally on or very near the screen plane – Consider using depth and transparency – Maybe some elements can be raised slightly to add visual interest Stereo Design: HUD
  • 63. Slide 63 • Some HUD elements will not work correctly in S3D compared to 2D – Cross hairs are inherently 2D – You aim a gun with one eye creating a transit between the target, eye and cross hairs – Placing the Cross hair in the scene at the correct depth solves this problem – Or use a laser targeting system • Looks great in S3D Stereo Design: HUD
  • 64. Slide 64 • Some post-processing effects may have to be tuned for S3D – For instance prefer motion vectors over motion blur – Use depth of field cautiously (more difficult to focus in 3D) Stereo Design: Post-Effect
  • 65. Slide 65 • Sudden video cuts to images with their focal points at different depths can be tiring for viewers • Try to keep focal point of images at the same depth between cuts • Can adjust at run time by moving Zero Parallax Plane – Convergence blending Stereo Design: Video Edits time Bad Example Better Example time
  • 66. Slide 66 • Depth budget over time – Allow some less depth intensive period – User can rest and enjoy even more climax in full 3D Stereo Design: Dynamic Depth Intensity 0 50 100 Depth Intensity
  • 67. Slide 67 • Place a frame in the scene with more negative parallax than the closest object – Creates the illusion of moving the surface of the screen forward • The window appears to float in front of the screen Window Violations and Dynamic Floating Windows Floating Frame Window Violation
  • 68. Slide 68 • Avoid that one object becomes more visible by one eye Dynamic Floating Windows Left Image Right Image Left Image Right Image Floating Window Floating Window
  • 69. Slide 69 • Static floating windows look obvious • Dynamic Floating windows are a lot more subtle – Use in many movies Dynamic Floating Windows
  • 70. Slide 70 • Possible to have a lot of fun with floating windows in UI design Window Violations and Floating Windows
  • 71. Slide 71 • Simplify assets and shaders • More aggressive LOD • Remove small objects or some post-effects • Reduce the game video resolution – The human visual system does not just use the differences between what each eye sees to judge depth. It also uses the similarities to improve resolution ☺ Stereoscopic Vs. Monoscopic Version
  • 72. Slide 72 • Write to both left and right scenes in a single pass – Some post-effects • Colour enhancements • Crosstalk reduction • … – Objects at screen level • Part of the HUD Sharing Processing via MRT-2 Input Texture Fragment Program MRT0 MRT1 GPU Render Target Right Scene Left Scene
  • 73. Slide 73 • “Ortho-stereo” viewing/head- tracked VR – This can produce a stunningly realistic, hologram-like effect for a single viewer as they move around the room • PlayStation®Eye – libFace, libHead • PlayStation®Move – Movement in 3D space (Z axis) Going One Step Furtherviewer screen asymmetric fields of view dynamic viewing frustum
  • 74. Slide 74 • Can overcome issues arising from depth perception or divergence • Improve the 3D effects on areas the user is likely to focus (character)s Non Disparity Mapping for S3D Reference: Lang, M., Hornung, A., Wang, O., Poulakos, S., Smolic, A. & Gross, M. (2010, July). Nonlinear Disparity Mapping for Stereoscopic 3D
  • 75. Slide 75 • Stereoscopic 3D (S3D) Games Overview • How Stereoscopic 3D Works • PS3™ Implementation of S3D Games • Reprojection • SPU Optimisation • Case Studies Outline
  • 77. Slide 77 • Rendering the entire scene can be prohibitive – Might lead to difficult trade off • 60Hz game or split-screen game – 30Hz in S3D should be doable • Reduce scene complexity for S3D build – Lower resolution, less details, disabling effects, etc Something less depressing? • Perhaps! ☺ Rendering Twice
  • 78. Slide 78 • A screen space algorithm would be appealing – Fixed run-time cost, independent of scene complexity ☺ – Might make S3D possible with fewer limitations How to Reduce the Burden?
  • 79. Slide 79 • If we have a frame buffer and a Z buffer • Possible to generate the other eye view from this as a post processing step • No need to re-architect the rendering pipeline for S3D • Could be faster than traditional methods • Don’t have to render everything twice What About Automated Stereo Conversion?
  • 80. Slide 80 • Parallax from depth map – Render a single image – Create the second image using the depth map and colour separation – Pro: • <2ms on RSX™ – Cons: • Large parallax creates gaps which need to be backfilled (borders) • Transparency and reflections won’t work • Use proximity – Raw occlusion queries Alternative Ways of Creating Stereoscopic 3D
  • 81. Slide 81 • Apply a depth-dependant parallax shift • Image-space operation creating the right image from the left image Reprojection
  • 82. Slide 82 • An image rendered using one view-projection matrix can be remapped pixel by pixel to a second view-projection matrix – In our case, we only need a x-axis depth- dependant offset • Offset is based on a linear function using the Z value stored in the depth buffer and the stereo camera parameters Reprojection Matrix
  • 83. Slide 83 • Scanline the RGBA colour buffer and depth buffer – Each input pixel will write a single output pixel • Lead to small cracks when depth changes • A second pass will then back-fill any such gaps Reprojection
  • 84. Slide 84 Reprojection Effect code Func(depth, cameras, InputPixelColor) Input pixels from the color buffer and depth buffer Output pixel Colour Buffer Depth Buffer Left Right
  • 85. Slide 85 • Read depth value • Calculate pixel offset using the linear function func(z, camParams) • Read RGBA pixel • Write pixel to intermediate buffer at offset location (Xdest = X+offset) 1st Pass: Reprojection Per-pixel
  • 86. Slide 86 Reprojection Gaps will be created at depth disparity Invalid Pixels Left Right
  • 87. Slide 87 • Read intermediate output buffer • If pixel is invalid, use most recently read valid pixel value • Pack and write pixel to output RGBA scanline 2nd Pass: Back-fill per pixel
  • 88. Slide 88 Reprojection Invalid Pixels Back-fill Pixels Remove the Gaps!
  • 90. Slide 90 • Works surprisingly well with sensible stereo strength • Great quality with positive parallax – No major image artefacts for opaque objects – Transparent objects look acceptable – Slight stretching at screen edges (easy to overcome) – Works with negative parallax (objects coming out) Screen Space Reprojection
  • 91. Slide 91 • Transparent and reflection are incorrect • Can create small cracks with depth changes • Side band – Black bars on the left and right side of the screen • Hardly noticeable with TV with black borders • Or extend the display buffer by x pixels (where x depends on depth separation) Limitations
  • 92. Slide 92 • MSAA can lead to artefacts due to the depth discontinuities – MLAA is less affected • Objects that lead to large disparity between both views should be render twice – View dependent shading is not handled by the reprojection operation – Post-Effects • Normal case is rendered via reprojection Gotchas
  • 93. Slide 93 Generating two images • Heavy GPU overheads – Potential trade-off with game resolution and scene complexity • Results are correct also for view dependent effects Reprojection • Artefacts visible at depth discontinuity or for view dependent effects – Can be minimized but require change in the renderer • Possible cardboarding • Screen space effect with reduced impact on the performance – Allow to keep higher in-game resolution Comparison
  • 94. Slide 94 • Trioviz, Darkworks • UE3 (via Trioviz), Epic Games • CryEngine 3, Crytek • … Out-of-the Shelves Solutions
  • 95. Slide 95 • Stereoscopic 3D (S3D) Games Overview • How Stereoscopic 3D Works • PS3™ Implementation of S3D Games • Reprojection • SPU Optimisation • Case Studies Outline
  • 97. Slide 97 • SPU can contribute to graphics and offload RSX™ • Possible to take into account similarities between both views – E.g.: conservative occlusion queries SPU Optimization for S3D
  • 98. Slide 98 • Gross frustum culling is really important on the RSX™ – Anything not sent for rendering is a win – Doubly important when rendering in stereo • Frustum culling is fairly easy to move to SPUs – Testing boxes or spheres against 6 planes – Helps the performance of the 2D version of your game too – A lot of bang for your buck Frustum Culling
  • 99. Slide 99 • Left and Right eyes should be seeing almost the same scene • Use single composite frustum for testing – Extract planes from camera matrices • Once this render list is created it can be used for both eyes – Saves CPU time Frustum Culling
  • 100. Slide 100 • Very popular via PlayStation®Edge – Can be customized for S3D Geometry Culling On SPU L R e L R N Vl(Xl,Y,Z) Vr(Xr,Y,Z)
  • 101. Slide 101 • Using Xl = Xr-e, we can potentially early reject or accept both faces Backface Culling ZCYBeXrAXrAMax CBANZYXrVrCBANZYeXrVl **))(*,*( 0),,(),,(&&0),,(),,( −−>− >•>•− . Front-Facing for Left Eye only Front-Facing for both Eye Front-Facing for Right Eye only Back-Facing for both Eyes
  • 103. Slide 103 • Copy tiled color buffer and depth buffer to linear system memory using RSX™ • Kick SPU jobs • Sync on SPU results • Copy the result back to VRAM Reprojection on SPU
  • 104. Slide 104 Pipeline Render left eye main Copy Reproject Render left eye problem objects RSX Copy RGBA and depth buffers to host Copy Render right eye problem objects Left eye render complete Right eye render complete SPU Host RAM RGBA + D24S8 Result buffers Sync RSX/SPU Sync RSX/SPU
  • 105. Slide 105 • Buffers transfer Host RAM <> VRAM is linear to buffer size • Reprojection on SPUs is fast • The whole process take around 7.5% (~2.5ms) of a 30hz frame at 720p – Buffer transfer (color + depth/stencil): ~0.4ms each way for 720p (~1.6ms) – ~0.7ms for SPU jobs (on all 6 SPUs) Performance
  • 106. Slide 106 • In many cases, the latency is completely hidden as RSX™ is rendering the problematic objects for the left eye How to Hide Latency for RSX™
  • 107. Slide 107 • Stereoscopic 3D (S3D) Games Overview • How Stereoscopic 3D Works • PS3™ Implementation of S3D Games • Reprojection • SPU Optimisation • Case Studies Outline
  • 109. Slide 109 • 2D version: 1080p@60Hz • S3D version: 720p@30Hz – (1280*720*2) = 1.7Mpixels – (1920*1080) = 2.1Mpixels • Fixed interaxial distance • Max separation of 3% WipEoutHD
  • 110. Slide 110 • Some work on the HUD – Push cross hairs into scene • Add S3D elements to Menus to keep the game feeling S3D – Else it was very noticeable when the game was only displaying 2D graphics in menus WipEoutHD
  • 111. Slide 111 • 2D version 720p@30Hz (dynamic framebuffer) • No scope for cutting frame rate • Game already had split screen view – Pushes out LOD and fewer effects • Bound by fill rate – Used smaller render targets • In car view uses fixed interaxial • Chase came uses varying interaxial – Quite wide settings to emphasize depth in the scene Motorstorm: Pacific Rift
  • 112. Slide 112 • Lowered HUD opacity • Easy for player to filter on depth – Look at HUD – Look through HUD Motorstorm: Pacific Rift
  • 113. Slide 113 SuperStardustHD • 2D version at 1080p@60hz • 3D version at 720p@60hz – No compromise in the game assets (share for 2D/3D version) – Conversion made possible via optimization
  • 114. Slide 114 • Negative parallax (out of screen) SuperStardustHD
  • 115. Slide 115 • Generating two separate images – Sometime using half-height screen buffer and the HW upscaler – Combine with anti-aliasing produces excellent results in 3D – Process is easier if the game support split screen • Reprojection – Good trade-off quality / performance Different Ways to Convert to S3D Split screen > L + R Reprojection
  • 116. Slide 116 Cost of 3D Game Development 3D Conversion Overheads: • KillZone 3: 2% • Hustle Kings: 2% • The Fight: <1% • MotorStorm Pacific Rift: 2% • WipeoutHD: 1% Will still require a few man months, especially for tweaking the results Total Cost Typical 3D Conversion cost
  • 117. Slide 117 • Stereoscopic 3D (S3D) Games Overview • How Stereoscopic 3D Works • PS3™ Implementation of S3D Games • Reprojection • SPU Optimisation • Case Studies Outline
  • 119. Slide 119 • Stereoscopic 3D games require less than twice the amount of processing – Some elements can be rendered once – Reprojection is a fair technique • Making Stereoscopic 3D content looks good require some tuning • Stereoscopic 3D should be comfortable to experience – Always visually check on a full sized screen Conclusion
  • 120. Slide 120 • SCEE R&D • WWS Stereoscopic 3D Team • SCE Worldwide Studios (1st & 2nd Party studios) Acknowledgments