ptex and vector displacement in amd demos karl hillesland member of technical staff, amd

26
Ptex and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Upload: mikasi

Post on 11-Jan-2016

40 views

Category:

Documents


0 download

DESCRIPTION

Ptex and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD. Ptex Showings. September 2011 – Press Event Siggraph Asia 2011 – Sketch Radeon HD 7970 Launch – Press Event Modified GL version , won’t discuss. Ptex. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Ptex and Vector Displacement in AMD Demos

Karl HilleslandMember of Technical Staff, AMD

Page 2: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Ptex Showings

●September 2011 – Press Event●Siggraph Asia 2011 – Sketch●Radeon HD 7970 Launch – Press Event

● Modified GL version, won’t discuss

Page 3: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Ptex

Ptex: Per-face Texture Mapping for Production Rendering[Burley and Lacewell, 2008]

● No UV setup (it’s implicit)● No Seams● Per-Patch Resolution Control● Out-of-core Performance Advantages

Page 4: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Ptex

Ptex: Per-face Texture Mapping for Production Rendering[Burley and Lacewell, 2008]

●Per-face textures + MIPs●Adjacency for filtering

Page 5: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

McDonald and Burley

Per-face texture mapping for real-time rendering, McDonald and Burley, SIGGRAPH 2011 Talk.

Practical Ptex for Games, John McDonald, Game Developer Magazine, January, 2012

Page 6: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Borders for Filtering

Face A Texture Face B Texture

Kernel

Note: Quad centric

Page 7: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Borders for Filtering

Page 8: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Borders for Filtering

Page 9: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Borders for Filtering

Page 10: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Packed Ptex

Pack in one texture● Includes all MIPs● Sorted by resolution

Page 11: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Runtime Shader●Compute atlas location starting with primitive ID and face UV

Page 12: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Runtime Shader●Compute desired resolution using ddx and ddy of face UV

Page 13: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Runtime Shader●Compute desired resolution using face UV●Clamp to base resolution

Page 14: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Runtime Shader●Compute desired resolution using face UV●Clamp to base resolution●Find resolution block

Page 15: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Runtime Shader●Compute desired resolution using face UV●Clamp to base resolution●Find resolution block●Find face location

Page 16: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Runtime Shader●Compute desired resolution using face UV●Clamp to base resolution●Find resolution block●Find face location● Incorporate face UV for

final UV

Page 17: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Constant Buffers●Indexed by resolution●Row (V) offset

● Block location

●Prefix Sum● Face resolution● Offset in bin

●Ours: 20 4-byte values

BaseCount

Prefix Sum

16 x 16 5 5

32 x 32 5 10

64 x 64 3 13

Page 18: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Preprocess

●Sort primitives by resolution●Generate packed textures●Generate constant buffers

● Prefix sum of resolution count● Row (V) offset for each resolution

Page 19: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Texture Compression

●Start with at least 2x2●2-texel border to get mulitple of 4x4●Prevents compression across faces

Page 20: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Authoring Vector Displacement

●Author base mesh●Subdivide and edit●Export Displacement from base

Page 21: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Vector Displacement Without Seams●Preprocessing

● Border values match● Corners match

●Runtime● Constant tessellation for now

Page 22: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Demos

Page 23: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Time Cost – Displaced Leo● 1920 x 1200 ● Albedo, AO, Spec, Normal● Radeon HD 7970● Wall Clock

●Average frame time: 1.3 ms●Average frame cost: ~10 microseconds

● Perf Query●Average frame time: 2.8 ms●Average frame cost: 0.6 ms

Page 24: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Space Efficiency

37% Black 7% Black9-23% Borders

Page 25: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Problems

●GS or Tessellation for per-face UVs●Some sorting restrictions

● Indirection solves that at a cost●Anisotropic cost●Ties between geometry and texture●Quads only so far

Page 26: Ptex  and Vector Displacement in AMD Demos Karl Hillesland Member of Technical Staff, AMD

Conclusion

●Can actually save memory●Computationally cheap●Most promising for seamless displacement