+ All Categories
Home > Documents > Fast volumetric rendering of NURBS-based surfaces Andreas Maier Chair of Pattern Recognition...

Fast volumetric rendering of NURBS-based surfaces Andreas Maier Chair of Pattern Recognition...

Date post: 26-Dec-2015
Category:
Upload: brendan-grant
View: 220 times
Download: 1 times
Share this document with a friend
25
Fast volumetric rendering of NURBS-based surfaces Andreas Maier Chair of Pattern Recognition (Computer Science 5) Friedrich-Alexander-University Erlangen-Nuremberg Sunday 27 March 2022
Transcript

Fast volumetric rendering of NURBS-based surfaces

Andreas MaierChair of Pattern Recognition (Computer Science 5)

Friedrich-Alexander-University Erlangen-Nuremberg

Wednesday 19 April 2023

Motivation

X-ray acquisitions require the use of ionizing radiation

Exposure of X-rays to any human subjects should be minimized

Design and implementation of novel trajectories require a “testing environment”

The “test environment” should be as realistic as possible

Outline

Simulation of X-ray images using X-Cat Open CL acceleration based on

Hardware tessellation Append buffer-based triangle drawing Pixel-based absorption modeling

Results Summary and Outlook

Simulation of X-ray images with X-cat

X-Cat is a 3D model of the human body based on the visual human

Supports the simulation of motion: Breathing Heart beat

Based on 3D/3D Spline surfaces: Each surface is 2D that changesover time: (u, v, t)

Each tuple (u, v, t) correspondsto a 3D point (x, y, z)

Simulation of X-ray images with X-cat (2)

Simulation of an x-ray image:

Render 3D volume at time t Write volume to disk (~500 MB) Load volume for projection Project to 2D Save image to disk

133 to 495 projections requiredper simulated scan

X-Cat internally employs ray castingand iterative computation of rayspline intersections

Outline

Simulation of X-ray images using X-Cat Open CL acceleration based on

Hardware tessellation Append buffer-based triangle drawing Pixel-based absorption modeling

Results Summary and Outlook

Open CL acceleration

Hardware Tessellation

Ray / Spline intersection are computationally inefficient

Sampling of points and triangles is fast(Tessellation)

Tessellation in hardware is even faster

Hardware tessellation causes a slight loss in accuracy (here: ~ 28 micron)

=> Results in a 2D grid of 3D Points

Append buffer-based drawing

Projection of 3D points yields 2D points plus their z coordinate

Use 2D neighborhood relation of the set of points to generate and draw triangles (use any triangle rasterizing algorithm)

Draw points into an “append buffer” like structure

Idea: Save all drawn values

z buffer-based drawing

Screen buffer z buffer

x

y

If (z < z buffer(x, y)){screen buffer(x, y) = color;z buffer(x, y) = z;

}

x

y

2

Append buffer-based drawing (2)

append buffer

pixel buffer

append buffer pointer21

0 0

3

Append buffer-based drawing (2)

append buffer

pixel buffer

append buffer pointer2

1

0

0

43

Append buffer-based drawing (2)

append buffer

pixel buffer

append buffer pointer

21

0 0

54

3

Append buffer-based drawing (2)

append buffer

pixel buffer

append buffer pointer

2

1

0 0

65

4 3

Append buffer-based drawing (2)

append buffer

pixel buffer

append buffer pointer

2 10 0

6

54

3

Append buffer-based drawing (2)

append buffer

pixel buffer

append buffer pointer

2 10 0

6

54

3

Append buffer-based drawing (2)

append buffer

pixel buffer

append buffer pointer

2 10 0

Append buffer-based drawing (3)

By saving more than one entry per pixel we can store:

ID of the painted object Depth value Pointer to the next element in the list

Access to append buffer and pixel counter need to be atomic

Especially access to the global append buffer pointer is expensive

Reading from the append buffer is highly not coalesced

Pixel-based absorption modeling

Read the list from the append buffer

Sort the intersections along z

Remove impossible cases (e.g. three intersections in a row of the same object)

Compute length of line segments along z

Evaluate absorption model

Outline

Simulation of X-ray images using X-Cat Open CL acceleration based on

Hardware tessellation Append buffer-based triangle drawing Pixel-based absorption modeling

Results Summary and Outlook

Results – Tesselation (106 points)

1D Time [ms] Accuracy [mm]

CPU (Java) 625 -

Open CL 29 4.24 E-7

Open CL Texture 23 0.0017

2D Time [ms] Accuracy [mm]

CPU (Java) 2582 -

Open CL 45 9.54 E-7

Open CL Texture 25 0.003

3D Time [ms] Accuracy [mm]

CPU (Java) 10742 -

Open CL 100 3.71 E-5

Open CL Texture 30 0.028

Results – Projection

X-Cat Heart(23 Splines)

30 x 30Time [ms]

50 x 50Time [ms]

100 x 100Time [ms]

Global append buffer

244 251 294

Local append buffer

- 116 159

Z-Buffer 53 49 51

Monochromatic absorption

73 85 101

Outline

Simulation of X-ray images using X-Cat Open CL acceleration based on

Hardware tessellation Append buffer-based triangle drawing Pixel-based absorption modeling

Results Summary and Outlook

Summary and Outlook

Simulation of X-ray images is required to save dose X-Cat can be accelerated using

Hardware tessellation Append buffer-based triangle drawing Pixel-based absorption modeling

Computation of one projection can be done in 200 ms Current state of the software still requires some

debugging Next: Sample motion fields and volumes

Thank you for your attention


Recommended