Hardware Accelerated Volume Visualization. Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences

Similar documents
CHAPTER 1 Graphics Systems and Models 3

Volume Illumination. Visualisation Lecture 11. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

3/29/2016. Applications: Geology. Appliations: Medicine. Applications: Archeology. Applications: Klaus Engel Markus Hadwiger Christof Rezk Salama

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

Volume Rendering - Introduction. Markus Hadwiger Visual Computing Center King Abdullah University of Science and Technology

Volume Graphics Introduction

GPU-based Volume Rendering. Michal Červeňanský

Direct Volume Rendering

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

A Bandwidth Effective Rendering Scheme for 3D Texture-based Volume Visualization on GPU

Interactive Computer Graphics A TOP-DOWN APPROACH WITH SHADER-BASED OPENGL

CS230 : Computer Graphics Lecture 4. Tamar Shinar Computer Science & Engineering UC Riverside

CS GPU and GPGPU Programming Lecture 2: Introduction; GPU Architecture 1. Markus Hadwiger, KAUST

Shaders. Slide credit to Prof. Zwicker

Direct Volume Rendering

Models and Architectures

CS427 Multicore Architecture and Parallel Computing

GLOBAL EDITION. Interactive Computer Graphics. A Top-Down Approach with WebGL SEVENTH EDITION. Edward Angel Dave Shreiner

CS 464 Review. Review of Computer Graphics for Final Exam

Interactive Methods in Scientific Visualization

Scalar Data. Visualization Torsten Möller. Weiskopf/Machiraju/Möller

Real-Time Voxelization for Global Illumination

Graphics Hardware. Instructor Stephen J. Guy

Deferred Rendering Due: Wednesday November 15 at 10pm

Introduction to 3D Graphics

Volume Rendering. Computer Animation and Visualisation Lecture 9. Taku Komura. Institute for Perception, Action & Behaviour School of Informatics

Volume Rendering. Lecture 21

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

DEFERRED RENDERING STEFAN MÜLLER ARISONA, ETH ZURICH SMA/

Tutorial on GPU Programming #2. Joong-Youn Lee Supercomputing Center, KISTI

Pipeline Operations. CS 4620 Lecture 14

CS 354R: Computer Game Technology

Computer Graphics I Lecture 11

Applications of Explicit Early-Z Culling

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Octree-Based Sparse Voxelization for Real-Time Global Illumination. Cyril Crassin NVIDIA Research

Direct Volume Rendering

Photorealistic 3D Rendering for VW in Mobile Devices

Spring 2009 Prof. Hyesoon Kim

The Rasterization Pipeline

Rendering. Converting a 3D scene to a 2D image. Camera. Light. Rendering. View Plane

Advanced GPU Raycasting

First Steps in Hardware Two-Level Volume Rendering

Ray Tracing. Computer Graphics CMU /15-662, Fall 2016

Scalar Data. CMPT 467/767 Visualization Torsten Möller. Weiskopf/Machiraju/Möller

The Graphics Pipeline

CSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller

Chapter 7 - Light, Materials, Appearance

Ray Casting on Programmable Graphics Hardware. Martin Kraus PURPL group, Purdue University

CMSC427 Advanced shading getting global illumination by local methods. Credit: slides Prof. Zwicker

CS452/552; EE465/505. Clipping & Scan Conversion

Introduction to Computer Graphics with WebGL

CIS 467/602-01: Data Visualization

Sung-Eui Yoon ( 윤성의 )

CSE 167: Introduction to Computer Graphics Lecture #5: Rasterization. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2015

lecture 18 - ray tracing - environment mapping - refraction

Rasterization Overview

Level of Details in Computer Rendering

Enhancing Traditional Rasterization Graphics with Ray Tracing. March 2015

CS8803SC Software and Hardware Cooperative Computing GPGPU. Prof. Hyesoon Kim School of Computer Science Georgia Institute of Technology

Programmable Shaders for Deformation Rendering

X. GPU Programming. Jacobs University Visualization and Computer Graphics Lab : Advanced Graphics - Chapter X 1

Illumination and Shading

Applications of Explicit Early-Z Z Culling. Jason Mitchell ATI Research

Evolution of GPUs Chris Seitz

Real - Time Rendering. Pipeline optimization. Michal Červeňanský Juraj Starinský

Graphics Hardware and Display Devices

CS 498 VR. Lecture 19-4/9/18. go.illinois.edu/vrlect19

Volume Illumination & Vector Field Visualisation

Scanline Rendering 2 1/42

Direct Rendering of Trimmed NURBS Surfaces

OpenGl Pipeline. triangles, lines, points, images. Per-vertex ops. Primitive assembly. Texturing. Rasterization. Per-fragment ops.

Supplement to Lecture 22

The Traditional Graphics Pipeline

Mattan Erez. The University of Texas at Austin

An Efficient Approach for Emphasizing Regions of Interest in Ray-Casting based Volume Rendering

CSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University

CSE 167: Lecture #17: Volume Rendering. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Pipeline Operations. CS 4620 Lecture 10

Computer Graphics 10 - Shadows

Topic 12: Texture Mapping. Motivation Sources of texture Texture coordinates Bump mapping, mip-mapping & env mapping

Previously... contour or image rendering in 2D

Programmable GPUS. Last Time? Reading for Today. Homework 4. Planar Shadows Projective Texture Shadows Shadow Maps Shadow Volumes

Programming Graphics Hardware

lecture 21 volume rendering - blending N layers - OpenGL fog (not on final exam) - transfer functions - rendering level surfaces

Models and Architectures. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Data Visualization (CIS/DSC 468)

Lecturer Athanasios Nikolaidis

SRM INSTITUTE OF SCIENCE AND TECHNOLOGY

Last Time. Reading for Today: Graphics Pipeline. Clipping. Rasterization

Spring 2011 Prof. Hyesoon Kim

Topic 11: Texture Mapping 11/13/2017. Texture sources: Solid textures. Texture sources: Synthesized

Mattan Erez. The University of Texas at Austin

Sung-Eui Yoon ( 윤성의 )

Render methods, Compositing, Post-process and NPR in NX Render

Adaptive Point Cloud Rendering

Visualization Computer Graphics I Lecture 20

Real Time Rendering of Complex Height Maps Walking an infinite realistic landscape By: Jeffrey Riaboy Written 9/7/03

Data Visualization (DSC 530/CIS )

Transcription:

Hardware Accelerated Volume Visualization Leonid I. Dimitrov & Milos Sramek GMI Austrian Academy of Sciences

A Real-Time VR System Real-Time: 25-30 frames per second 4D visualization: real time input of data volumes High resolution data sets: 5123, 16 bit High image quality: shading, transparency, depth cues Interactive parameter changes: lookup tables, classification

Real-Time Data Visualization Simulation / visualization E.g., Surgical Simulation Render Acquisition / visualization E.g., 3D Ultrasound Render

Processing Requirements High demands on storage, processing, and communication of data E.g., a 5123 volume: 224 samples 30 instructions 30 frames/sec 500 MBytes/sec band-width between processor and memory. 256 MBytes of storage 120 billion instructions per second.

HW Acceleration General-Purpose Supercomputers Special Architectures Graphics Accelerators

General-Purpose Supercomputers MIMD (e.g. SGI Challenge - 16 processors, shared memory Performance 5-10 fps (Lacroute 1995) Drawbacks: very expensive shared among users

Special Architectures Not specialized on volume rendering (video or polygon processing) The PIXAR and PIXAR II Image Computer (1984) Pixel-Planes 5 (Fuchs 1989)

PIXAR Primary purpose: Visual effects in film industry Used for volume rendering (Drebin 1988) Fast volume rotation by shearing. Accumulation along volume rows

Pixel-Planes 5 Multipurpose system (ray casting, splatting) Graphics processors (20) and Renderers (8) 192 192 128 second Problems with bandwidth data sets at 11 frames per

Volume Rendering Accelerators PARCUM (Jackel 1985) parallel ray casting 5123 in about a minute The Voxel Processor (Goldwasser 1983) octree scene subdivision hierarchy of rendering an display processors back-to-front rendering of binary data, imagespace shading 2563, 25 fps Never built

SGI Reality Engine Texture mapping of polygons through 3D texture memory Multiple Raster Manager boards (16MB textures each) Rendering technique: planar texture resampling 10 fps (512 512 64) Cabral 1994 No shading Ray Casting Planar Texture Resampling

The CUBE Project (Kaufman 1988) Based on a Cubic Frame Buffer (CFB) linear memory skewing, simultaneous access to a beam of voxels Cube 1: orthonormal projections 163 data sets, 16 boards Cube 2: ditto, VLSI implementation (14000 transistors) Resulted in VolumePro (1999)

VolumePro: The Ray-Casting Pipeline Memory Interface Data traversal Data Buffers Data Traversal Resampling Interpolation 3D Gradients RGBA LUT Compositing Assign RGBA to each sample Shading Illumination Tri-linear interpolation Classification For each pixel, step along a ray Estimate gradients (normals) Per-sample illumination Compositing Blend samples into pixel color

Super-Sampling Along Rays SS = 1 SS = 2 SS = 4

Real-Time Classification Interactive design of color and opacity transfer functions

The Phong Illumination Model Emissive Diffuse Specular Color = (ke + kd Id ) SampleColor + ks Is SpecularColor No Illumination Phong Illumination

3D Line Cursor and Cut Plane

3D Line Cursor and Cropping

The VG500 Board

VolumePro 500 Summary DVR with trilinear interpolation and Phong sampling Future (??) Perspective projection Objects (masking) Overlapping volumes Intermixing volumes and geometry

2D Texture Mapping X textures Y textures Z textures Ray traced Rendered by VolView on standard 8MB graphic board (1998)

3D Texture-Mapping HW Volume is a 3D texture Proxy geometry: polygons perpendicular to viewing direction Clipping against volume bounding box Assign 3D texture coordinates to each vertex of the clipped polygons Project back-to-front using OpenGL blending operations Originally, no shading!!

3D Texture Mapping Increasing sampling rate

Programmable Graphics HW Nvidia, ATI Vertex & Fragment Shaders run programs Scene description Geometry processing Vertices Rasterization Primitives Fragment operations Fragments Image Pixels

Modern GPUs: Unified Design Vertex shaders, pixel shaders, etc. become threads running different programs on flexible cores

A Modern GPU Architecture

C for Graphics (Cg) A C-style language for writing vertex and fragment programs On-demand system-dependent compilation Significant simplification o HW programing

DVR using HW acceleration Proxy geometry based A set o polygons Defines relation between volume (3D texture) and viewing parameters Polygons textured by the shading program The role of HW Texture interpolation Evaluation of the program Blending of textured polygons

A Cg example (1) Shading by setting RGB colors to data gradient output_data main( input_data IN, uniform sampler3d volume) { output_data OUT; float4 color1 = tex3d(volume, IN.texcoord1); float3 normal; float3 t0 = IN.texcoord1; float3 t1 = IN.texcoord1; t0.x-=k; t1.x+=k; normal.x = tex3d(volume,t1).r-tex3d(volume,t0).r;... normal = normalize(normal); OUT.color.rgb = normal*0.5+0.5; OUT.color.a = color1.a; return OUT; }

A Cg example (2) Surface enhancement and shading output_data main(input_data IN, uniform float3 light, uniform sampler3d volume, uniform sampler3d gradient { output_data OUT; float4 color1 = tex3d(volume,in.texcoord1); float3 normal = tex3d(gradient,in.texcoord1); float3 vectolight = normalize(light - IN.position); float difuselight = max(dot( normalize(normal),vectolight),0); OUT.color.xyz = float3(1.0,1.0,0.0)*difuselight; OUT.color.a = 10*length(normal)*color1.a; return OUT; }

GPU-based Volume Ray Casting On principle the same as CPU ray casting Special conditions of the environment Store volume as 3Dtexture, cast rays in fragment program,...

Basic Ray Setup Start & end point and direction rquired Evaluated in shader by rasterization of the volume bounding box Back face Front face Ray directions

Standard Optimizations Possible Early ray termination: Isosurface: stop on a surface DVR: stop when accumulated opacity > threshold Empty space skipping: skip transparent samples Traverse hierarchy (e.g.: octree)

Empty Space Skipping Bricking: use approximation instead of the bounding volume

Intersection Refinement Bisection: fixed step number or refinement

Advanced Techniques Light interaction Illumination models Reflection Shadows Semi-transparent shadows Ambient occlusion (local, dynamic) Scattering (single and multiple, MonteCarlo,...)

A few results...

GPU for General Computations (gpgpu) Modern GPUs: Single and double precision computational units available Accessible through special API CUDA (NVIDIA) Brooks (ATI) OpenCL (HW independent, support multiple CPUs) Often used in supercomputers (see top500.org)

Gpgpu example: Gaussian filtering Filtering of m3 volume by n3 filter Theoretical complexity: 3nm 3 GPU requires enough data to process