Advanced Real-time Post-Processing using GPGPU techniques. Presentation overview

Скачать презентацию Advanced Real-time Post-Processing using GPGPU techniques. Presentation overview Скачать презентацию Advanced Real-time Post-Processing using GPGPU techniques. Presentation overview

dof_presentation_dice.ppt

  • Количество слайдов: 26

>Advanced Real-time Post-Processing using GPGPU techniques Advanced Real-time Post-Processing using GPGPU techniques

>Presentation overview Problem description and objectives Depth of field Methods GPGPU programming Results Conclusion Presentation overview Problem description and objectives Depth of field Methods GPGPU programming Results Conclusion Questions

>Problem description and objectives Post processing filters Different depth of field algorithms Visual quality Problem description and objectives Post processing filters Different depth of field algorithms Visual quality Implement using HLSL and CUDA Performance Usability

>Depth of field Depth cue Focus plane Focus in area in front of and Depth of field Depth cue Focus plane Focus in area in front of and beyond Different blurriness

>Depth of field Thin lens camera model Circle of confusion Depth of field Thin lens camera model Circle of confusion

>Depth of field Calculate Circle of confusion Depth value and lins parameters Depth map Depth of field Calculate Circle of confusion Depth value and lins parameters Depth map COC map

>Methods Poisson disc blur Multi-passed diffusion Separable diffusion Summed-area table Methods Poisson disc blur Multi-passed diffusion Separable diffusion Summed-area table

>Methods – Poisson disc blur Distribution function COC defines scale Downscaled image Methods – Poisson disc blur Distribution function COC defines scale Downscaled image

>Methods – Poisson disc blur Calculate values and interpolate depending on COC Methods – Poisson disc blur Calculate values and interpolate depending on COC

>Methods – Multi-passed diffusion Every pixel gets new value depending on the COC gradient Methods – Multi-passed diffusion Every pixel gets new value depending on the COC gradient

>Methods – Separable diffusion Use a tridiagonal system to represent the heat conductivity Cyclic Methods – Separable diffusion Use a tridiagonal system to represent the heat conductivity Cyclic reduction can solve the matrices for each row

>Methods – Separable diffusion Each row is solved independently In each step a reduced Methods – Separable diffusion Each row is solved independently In each step a reduced tridiagonal matrix is calculated (and output value) until the system is solved

>GPGPU programming General Better flexibility Potential advantages CUDA Extension of C Large community GPGPU programming General Better flexibility Potential advantages CUDA Extension of C Large community

>GPGPU programming Executes in chunks of threads User specified blocks Several memory types Global GPGPU programming Executes in chunks of threads User specified blocks Several memory types Global Texture Shared Constant More choices and possibilities Hardware specific limits Great potential

>GPGPU programming Gaussian blur timings GPGPU programming Gaussian blur timings

>GPGPU programming Implementation impact using CUDA + Easy to get started (C) Memory indexing GPGPU programming Implementation impact using CUDA + Easy to get started (C) Memory indexing (no more floating point texture indices) Good support for timing on the GPU Good control over computations (threads and memory) - A lot of ”rules” (amount of threads, occupancy, etc) Hard to optimize Beta problems (lack of interop, slow operations)

>Results HLSL and CUDA for most methods Exceptions Poisson disc (HLSL only) Summed Area-Table Results HLSL and CUDA for most methods Exceptions Poisson disc (HLSL only) Summed Area-Table (CUDA only) Timings in runs of 100 on recent hardware

>Results Poisson disc timings Separable simluated diffusion timings Multi-passed diffusion timings Results Poisson disc timings Separable simluated diffusion timings Multi-passed diffusion timings

>Results Artifacts Color leaking Sharp edges Results Artifacts Color leaking Sharp edges

>Results Input data Results Input data

>Results Poisson disc Multi-passed diffusion Separable simulated diffusion Results Poisson disc Multi-passed diffusion Separable simulated diffusion

>Poisson disc Results Multi-passed diffusion Separable simulated diffusion Poisson disc Results Multi-passed diffusion Separable simulated diffusion

>Lens parameter settings Results Lens parameter settings Results

>Conclusions Current depth of field filters are good enough Not really, but better is Conclusions Current depth of field filters are good enough Not really, but better is too expensive Cut scenes do get time for more computations GPGPU techniques have great potential Not mature enough (hardware support etc.) Maybe better for other things than image processing Future work Diffusion based approach offers best visual quality Compute shaders anyone?

>Videos Videos

>End End