Parametric Surfaces on GPU

sizzlepictureΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 9 μήνες)

70 εμφανίσεις

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 in advance


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.