# Parametric Surfaces on GPU

Software and s/w Development

Dec 2, 2013 (4 years and 5 months ago)

103 views

Per
-
Pixel Evaluation of
Parametric Surfaces on GPU

ACM Workshop on General Purpose Computing on Graphics Processors

Los Angeles, USA, 7
-
8 August, 2004

Takashi Kanai

Keio University SFC

Yusuke Yasui

ASTOM Inc.

Per
-
Pixel Evaluation of
Parametric Surfaces on GPU

ACM SIGGRAPH 2004 Poster

Los Angeles, USA, 8
-
12 August, 2004

Takashi Kanai

Keio University SFC

Yusuke Yasui

ASTOM Inc.

Surface Rendering

In the rendering of parametric surfaces, in
general, we often use a polygon to draw the
approximation of its original surface.
However, such rendering of a polygon does
not represent its original surface exactly. This
occurs notably in the case that a polygon is
coarse or that a view position becomes closer
to a surface.

Our Contribution

Use of GPU (Programmable Graphics
Hardware)

Fragment
-
based evaluation (position,
derivatives) of parametric surfaces on
GPU

Robust and high
-
quality evaluation

Interactive computation

Parametric Surfaces on GPU

Linear form of parametric surfaces

(Bezier, B
-
spline, Coons, … )

Control points

stored to texture(s)

Basis functions

directly provided in a fragment program

i
i
n
i
C
v
u
b
v
u
s
)
,
(
)
,
(
i
C
)
,
(
v
u
b
n
i
Parametric Form of Subdivision
Surface [Stam98]

u,v n,k
(
n:
subdivision level
, k:
domain id)

1
st

derivatives of both

u, v
directions can also be computed

))
,
(
(

ˆ
|
)
,
(
,
1
0
v
u
t
b
X
C
v
u
s
n
k
k
n
T
n
k

Λ
Ω
Bi
-
cubic B
-
spline

basis functions

n
k
Ω
)
0
,
1
(
)
1
,
1
(
)
1
,
0
(
Subdivision Surface on GPU #1

eigenvalues for

A subdivision matrix

Coefficients of

eigenbasis functions

Control points

Implementation on GPU

Computed for all patterns of
n, k

(
n

= 1…15,
k

= 1, 2, 3. … 45 patterns)

stored in a texture

In the fragment program,

Fetch 16 control points from a texture

by

n, k

Basis functions

… directly computed in FP

Linear combination of basis functions and control
points

k
n
T
X
C
1
0
ˆ

Λ
))
,
(
(
,
v
u
t
b
n
k
Subdivision Surface on GPU #2

Texture Storage

Subdivision Surface on GPU #3

Texture Storage (Close
-
up View)

Subdivision Surface on GPU #3’

Algorithm Overview

Subdivided Polygon

-

parameters
u,v

-

face id

Rasterization

Fragments

fragment program #1

-

Compute

n
and

k
from

u,v

-

Fetch control points
from a texture

-

Compute basis functions

surface position

fragment program #2

-

Compute
n
and

k

-

Fetch control points

-

Compute basis functions

derivatives, normal

output

Application: Reflection Lines

[Yasui and Kanai, SMI 2004]

For each fragment,

1.
Compute
a
reflection vector

2.
Compute
an
intersection point

3.
Assign
a color

to a
fragment

4.
A line on a surface

with different color

a reflection line

Results

wireframe

polygon
-
based

fragment
-
based

Polygon
-
based

Pixel
-
based

Discussion

Position of a fragment

Position of parametric surface

computed on GPU

Current solution:

input polygon: better approximation of a surface

run fragment program with bigger size of image

Conclusion and Future Work

Conclusion

Fragment
-
based evaluation of parametric surfaces
on GPU

Robust computation

High
-
quality even for low polygons

Interactive computation

Future Work

The number of instruction sets in a fragment program

1,024 (GF 5x00)

65,000 (GF 6x00)

Processing on a single fragment program will be possible

(cuurrently … two FPs) in the near future.

Contact & References

Takashi Kanai

Keio University SFC

E
-
mail: kanai@sfc.keio.ac.jp

Web: http://www.sfc.keio.ac.jp/~kanai/

References

Yusuke Yasui and Takashi Kanai,

"Surface Quality Assessment of Subdivision Surfaces on Programmable
Graphics Hardware",

Proc. International Conference on Shape Modeling and Applications 2004
(Genova, Italy, 7
-
9 June 2004), pp.129
-
136, 2004.