• Nenhum resultado encontrado

Geração de malhas por refinamento adptativo usando GPU

N/A
N/A
Protected

Academic year: 2018

Share "Geração de malhas por refinamento adptativo usando GPU"

Copied!
101
0
0

Texto

(1)

!"#$%$&

!&&#' $

#($)

*+,#%-$&'($&.& &,/, &#

# & &

(2)

2

#($)

!"#$%$&

!&&#' $

# & ,5%&#6$, 7 .,% #8$(#%!,&$#' #9(%+,# #& !(#!5&$/, &%#8$(#%!,&: #$& ;*+,#%-$&'($&.& &,/, &#

(3)

<

(4)

=

% !#%# ,/> 5% &$ , > +, % , ?$#% +,$ $( 9# % /,#,%%%$& !& '$&,# :

%, !# ># $) $#(:$) >! %! &5 : "# @,%!#'#@/#+,,%,#%(%!&#% :A%#$$%>%#/ (%!$#>#(>!(%!$ > &B%,!(#8$(#:

%, #$& > *+,#% -$& & #> ! ($"#$> !# ($(#%$& ! : %, (/ %#/ +, % % ,% %5#$& / #$&#/$&$,$#' #:

AC$#' #9D>!$ #$>+C$ (#$ $''#%$&#$&B"#(($7/#(D>!!#"#$$(#:

(5)

G

& %!$( ($&, , %($# % !/%&8% &#%, #' !#(H /9"#( #'#&, I! % !&$(# # ! #&#'!($$B'# %# & # %:5 &8% ,/#(%,%$"+, $"#$%$& #,&% /%@&#( > 5, ($I! % ,!"B(# 5J& &##%$ #$# $ ! $& : &#! "#$%$& !#( ! > ! I%!> ,% ,'#) % 5,& ,% '&> ! %# #$&! ,% ,!"B(#(,' 5 , "( :##59 #(@"),%# (&#)!&&#'% 5J& $& / ,% $' #,& , $ # (&#): @& $&# $# ! $& %# +,J,$& "%%@&!! &: %!$ 5&#@ ,!#'#,%I!%!# %>&@($#(!! & ",$(#$ ,"#(#$&%$& 5% (% % I# &$& % $( # !J& $' % !# :

(6)

K

L #/!"%$(!( #$/#M#&&/M#$/, "#& !/%%#$/ %($# % ' 5$ &#%,&#$/ ' '#&, #&N $ & &#% $#$/ !!#(&#$ &5&&I!&/!#( M#$&(#'#/' "# %: ! "(, $ & !5% " % #,&& "#$%$& ' 5$ !,5# $ & ' / #$& !! # & 5&& I! & ,"( " &.#%$ #$ 5J(& 5#$/ $:$&N!"% "#$%$&&&($5%# %&#$/( &#$/,%> #O> " I%!> $ '&L % #$ '#&, #&N !!#(&#$: # O#$ " %&#$/ # ((%!# 5N %$ " (,' ,"( #$&!&#$ $ & ( % &: 5 #( ## # & !&#'N # (& & 5J(&L % $ &$ /$& $M #,&& , #$/ &# # (&#)&#$:'#, %& $N)$ %# ! $&&(#'5&& ,&: !! %& # " & 5(, " #& 5&& , " L !# %> $ & &($#+, MO M '$ " I# &#$/ % M#&,& & $( #&N " #/$#$/ $M &. #%$ #$% :

(7)

P

(8)

R

!B&,G:!#(H > ,& # (, :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::KQ G:Q:$&,::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::KQ G:2:!#((%,'#$/:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::KQ G:<:!#((%. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::KG G:=:!#((%@& (,# :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::KP G:G:!#((% # !(%$&!!#$/ :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::P3 G:K:!#((% # !(%$&!!#$/,'#$/ :::::::::::::::::::::::::::::::::::::::::::::PP G:P:!#((% # !(%$&!!#$/@& (,# ::::::::::::::::::::::::::::::::::::::::::::R3 G:R:$9# %!&#':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::R2 !B&,K:$(, H :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::RG K:Q:#$(#!# $&#5,#H ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::RG K:2:5 ,&, :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::RK "8$(# -#5#/9"#( ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::RP !8$#(:%$& ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::43 !8$#(-:%!%$& :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::4<

(9)

4

(10)

Q3

(11)

QQ

#/,G:QG:"#$%$&! #%,! $ #,&%(: :::::::::::::::::::::::::::::::: P3 #/,G:QK:##$"%H /%@&#( '6%:::::::::::::::::::::::::::::::::::::::::::::::::: P3 #/,G:QP:I&,#/&%! &, ( !$$& (!$&:::::::::::::::::::::::::::: PQ #/,G:QR:& #$"%H &,,%'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: P2 #/,G:Q4:# (&#) #,&::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: P2 #/,G:23:!#( # !(%$&!!#$/ 5# (&#) #,&: ::::::::::::::::::::: P< #/,G:2Q:#$#(# #%! !!#(': ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: P< #/,G:22:5&#(%'!#($,%# (&#)$.,$#"%: :::::::::::::::::::: P= #/,G:2<:'!#((%,%# (&#),$#"%:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: P= #/,G:2=: &I&, , ;"&'# &@#&#%/%': :::::::::::::::::::::::::::::::::::::::::::::: PG #/,G:2G:,!"B(# %$&(%"&C +,D %$&(%'C##&D: :::::::::::: PG #/,G:2K: #"$& &, '!#($ ,!"B(#%:::::::::::::::::::::::::::::::::::::::: PK #/,G:2P: # !(%$&!!#$/!#((%"& &@#&:::::::::::::::::::::::::::::::::::::::::::::::::::: PK #/,G:2R:,&'# # !(%$&!!#$/!#((%"& &@#&: ::::::::::::::::::::::: PP #/,G:24:!#( # !(%$&!!#$/(%,'#$/: ::::::::::::::::::::::::::::::: PR #/,G:<3:$#!,/%@&#( # !(%$&!!#$/(%,'#$/:::::::: PR #/,G:<Q:"#$%$&(% # !(%$&!!#$/,'#$/,%"::::::: P4 #/,G:<2:I&, , $"#$%$&"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: P4 #/,G:<<:"#$%$&!&&#'"::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: R3 #/,G:<=:!#(,%&I&,!(,(% # !(%$&!!#$/::::::::::::::::::::::::::::: RQ #/,G:<G:,&!$&'# &!#(&I&,!(,: ::::::::::::::::::::::::::::::::::::::::::::: RQ #/,G:<K:!#(&I&,!(,$%"#$,%",&::::::::::::::::::::::::::::::::: R2

(12)

Q2

5=:Q:5&$!H %",$ !%,&H %C,>'>MD#) : ::::::::::::::::: =K 5=:2:%,&H C,>'>MD!('T:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: G2 5G:Q:%!%@&S(%' !! &$ &&5CSD:::::: R<

(13)

Q<

!

% % &#(#$# ! &#$/# %# $B'# # % $ !#(H /9"#( % &%! &% # I! &I&, > , (% #%/$ +, %! 5 ,!"B(# 5J& &##%$ #$# C#/,Q:QD:

Figura 1.1. Aumento do realismo por meio de texturas.

@%&I&, >&%. , "#& #,%#$((, !(C NO$& :>233PD>C\$")#/&:>233RD>"#%,%$&&%5@%# %C#/,Q:2D: "#& #,%#$ #%! %$&"% #"$& (# ,!"B(# 5J& %",$ ,) %5 >&$&$")(%+,#%/%/5J&&##%$ #$! !( %# B &#(:

(14)

Q=

%5 J! B'% &I&, ,/,$ "#& !#( > % 5J& $ $,$(%#"#( ! %@& &#(#$# :I%!>% %, $ ,% $' &I&, GQ2IGQ2 #$'@ &I&, K=IK= , $#/, Q:Q> %5J&! $&#$($&#$,% %C#/, Q:<Q:=D:

Figura 1.3. Melhorando as texturas para maior realismo.

Figura 1.4. Objeto mais realista por meio de uma textura melhor.

"& % !%$( #$& $ %@& &#(#$# > #,& #$ I!H% #%!"#H % ,5J($&> &,#$ !(#%$& # % 5&# ! !#( %@& :

% ,& % !! & ! ,%$& # % @ I! % !7!# /%&#5J&>/$.,%$' #,&"#%,%$& ,I! #'#: &#! &@($#( #)> !&$&> ,% B$& /%@&#( (% 5 $,% % I# &$&: !( ( ! $. ,% % $& (% !?%& ! ,% ",$>+,#9($,)#'#"#$%$&!/%"#$C#/,Q:GD:

(15)

QG

(% C( &:> 233QD> +, ,&9$,%% (%(,' %#

,' +, , ' #$#(#: ! , ! I! % 5J& $ !#(#'#&,>(, &!# @&#'%$&5#I: "%>9!#( #&&5! $&%%,#& !#(&#' /9"#( &%!>(% # &% #'#&,>J/ >&(:

Figura 1.5. Síntese geométrica por meio de uma função que recebe uma malha existente.

"#%> @ #%!&$& %$(#$ +, %!$ ,% %@& ! #$",$(# 5 &$&# %5&#"#$: (+,$>!I%!>,%%@&I# &$&! "#$ &@ (& $B' "#I +,#> $,% &%#$ ! &%!> ,% $' %@& @ (!) &#$/# % % $B' "#I +,# $,% ! &%! %,#& %$: #%>!( $. %$% % !&%!/ &!%@&$&#> !@%/$$'%@&>!. 5&,%$B'%,#&%# &# %C#/,Q:KD:

(16)

QK

#/, Q:K> "#$%$& % ! ,% %@& I# &$& ($,) ,%

&%#$ ,& /9"#( $,% (& ! &%!: #/, Q:K5> ,% $' %@& /% % ,&/9"#(#/,Q:K>!@%, $,% !&%!%$:

#/, Q:K(> $' %@& &5 $ % % ! &%! +, %@& I# &$&

#/,Q:K>&#$/#$> #%>,% ,&/9"#("#$ ,!#:

"

# !

!! & &&5@! $&,%%@&"#$%$&% &#$/, +,! , ,",#&!(%!,&(#$,%> /,#$ &$8$(# ($& (%!,&/9"#(& %!$CM$ &:>233PD:/,$ !#$(#!# (, ]&#%/ , >(% & %C-N&>233KD>C-M$^#(&$5&> 233KDC#(&$5&^-M$>233KD: %!$@,% !#$(#!# 5J&#' &5 &%5@%> !# > ($"% I!#( $&#%$&> & ,% %!$ %# #/$#"#( ! 5&>&%5@%>,%# %%#:

Figura 1.7. Exemplo de aplicação do método.

,& @ ,% &@($#( "IB' +, !%#& #) %# #' &#! "#$%$&%%:#/,Q:P% & ,&/%@&#(> %, &I&, > ,%!#(%@&"#&%&%!:

(17)

QP

$

%

&$& & # & &9 /$#) /,#$& "%; !B&, 2 && &5 (#$ ") ,% # (, (%!&#' $& _ !B&, < I!#(/,$ !#$(#!# ($(#& $''# $ %@&_ !B&, = && & &@($#( !! &_ !B&, G % & ,& > ")$ ,% (%! # (,&#$ %!$/%@&_!B&,K! $& ($(, H &5 ",&, :

(18)

QR

" &

"

(!B&, ! $& !#$(#!# &@($#( "#$%$&% (%: &5 ! $& $,%%($7/#(>(%,% (#(B&#((,% $"&#)$!#/%& !5% $($& :

""

&

/,% ## 5 (% '&5 (% "#$%$& % % J9 ,/#%(% &7#(!! &!#, , (,& C#, &:>233<D: &5 #$#(## > (% -) (`C-) ^ (`> 233<D> , '% &@($#( CDCM$ &:>233PD># &@>I!'%!# (%!,&(#$!%#&@($#( %# /# #%, (% # ! #&#'> %>$ $&$&>"), !(## /%@&#( % %: /#&% >! ') >,%%'@&#( @! $&$,%"%!&!,%&5!#I >! I%!> $ ( !#I // #$"%H 5 '@&#( % $ !(

C#/, 2:QD: $&> 9 ,% !( %$& % $B' !#I $ > ! %# (%

>$ !#I %$#!, (% " %%%$& $,%@#( >$ #$&$ # (> #%/%. ,& :

Figura 2.1. Adaptação dos dados nas técnicas de processamento de malha por GPGPU.

(19)

Q4

"$

' ( )

&""),%"#$%$&%, $ !7!# ",$(#$# /%@&#( > &@ $& #$ $ #)> !# %# "9(# #%!%$& &#! "#$%$& !#( " &#'%$& #%! : I%!> # #%! ") ,% ,'#)% ! %# #$&! ,% ,!"B(#+," (C#/, 2:2D $I#/# $%#$"%H J(8$(# $%%# #$"%H +,!$ '@&#( $%# >+, %$& J9! $& $+,#&&,/%@&#(:

,!"B(#-@)#(]5#(&#$/, >! $&%C( &

:> 233QD> ,!#, $( #: ",$(#$> $ '> (% ,%

,B &#(!&#(,!&%#$,% ,!"B(#-@)#(]5#(&#$/,/: ,B &#(, %$& #/#$# ,%%5,&>$,%($9#$9 ( ) %# (#H /%@&#( 5J& $! $&:!$ &8 '@&#( aQ>2><b

$%# ( !$$& aQ>2><b $( 9# !, ,!"B(#C#/, 2:<D:

Figura 2.2. Método de refinamento local.

% ,!"B(#-@)#(]5#(&#$/,@"#$#!%#Q3!$& ($&: % K#$"%H /%@&#( caQ>2><>Q>2><b# !$B'# !(%$&

(20)

23

%5%$& %# ,' $ % $#) ! %# ,% #$&! +,9&#( $%# $ ,!"B(# #$'@ ,% #$&! #$> (% &#(#$%$& @ "#&: ,&# @,%&@($#( #%! /$!'# ,:

Figura 2.3. Dados básicos exigidos pelo Curved PN Triangle.

"(###%!%$& ,!"B(#% /"#'#$(#>(% , #%!%$&% C&#>233QD: &#%$&>-,5O, , (,& C-,5O,&

:>233GD! $&%,%' %#"#( >&$/,$ ,

("#(#$& !!%#&#$' %$#!,H ,!"B(#"#$/: "#"#&!%# #$&, &8 $' !?%& ( C D ! ( '@&#(; CUD> CWD CdD: , % "# (%> ! (, # > : !?%& ( ",$(#$%%($J,$&(%,%+,&!?%&#$>,%'&V: #/, 2:= 2:G % &% I%! %$#!, +, ! B'# ") , $ %$& !?%& :

Figura 2.4. Manipulação em conjunto dos parâmetros e para determinado vértice.

(21)

2Q

Figura 2.5. Manipulação do parâmetro para determinado vértice.

"#$%$&(% &#$/, >&#$!'#& !7!# ",$(#$# /%@&#( >$ (,, $&@($#( ,'#)!%# ,!"B(#

(% C. D>$%@&! $&!-,5O,(#(OC-,5O, & :> 233G5D: %@& , ' !H &!7/#( +, % ,$#"% C,% 5' I!#( ($(#& @$!B&,<D:# &> % % ,& ! $&% ,% ' % +, &5' (% !H !&&#' #$'@ ,$#"%

C-,5O, ^ (#(O> 233PD: (%% , $' %@& ! "# $

CSD:

($&%$&>$) `$C$)^ `$>233RD#$&,)#%,%,&%@& "#$%$&% &#$/, (%>(%%& "C D: %@& ,/#,(%!%$&$%@&S>&,$%$S&,'!#: $&,> (% ,& &%> "# "#& !(#"#(%$& ! (%!%$& S>$! ,5 &#&,B._ ,&,%(& ( #$@!#+,S:% $9# (%!&#'$& %@& S @! $&$!7I#% :

"*

+!,

%@& S &5 #)$ ,% $/ # & (% 6 > !( $%((%,%%$&%$&: !( %$& 9 /,#$&"%;# !$#5##)! %$& !( ")"#$%$&(% %:%&% #%!%$&> %@&,&##)'

!!( %$&'#9'# !# !$#5##)#$"%H 6

: ,% %# !",$%$& $ ($(#& 59 #( !/% (% > ($ ,&I($&#' &C &>233KD:%9!##$&,>%&( >@"#&$

(22)

22

%@& S> !&$&> ",$(#$ (% #$&$ (%,$#( $& > $,%# &(% !!(#$$]%%$& %#/#$:I%!> %#/#$&#' G33%$& > %,%I(, (%!& S ( G33

$&:

%9(&(, &#$$&%((%+,")6>(%$. +, %#$#%#)$]%&" ! ! %I#%#)&%$(&"> "#% +, !( %$& #) (%!$ (, & !7!# (%,$#(: %@& S@"&!# "%$/&#'>!# +,$ ! ,%&"%,#&!+,$! +, $ (%!$ (, &!7!# (%,$#(> !( "#( %# # !$# : ( +,$ %,#& /#H % !,( # (&#) > !# ( ,% /#H (&9,%&"%,#&!+,$!>!&$&># !$# :$# % '# &> %@& &5 (% ,% %&/# ! &> $ ") ,% ]$#( (%6#I#)&!( %$&$( 9#:

Figura 2.6. Comparação entre os métodos ARK e DMR.

%@& ,&##) %($# % (% & C-M$ ^

#(&$5&> 233KD +, !%#& #) ,% % &() * : #/$#"#( +,

(5>,%')>,%%(%!&(%%$& /,%,&%(% %$& >$"&@!+,$: #)$,&"%> & !%#&>! I%!>#),%!( %$&&#!Z!(&#?$/,#(5#%>/

&8 $' &#?$/, >5>( ! % ,&$&[: "&> @ !(# %$& # +,

%@& ")>/$ #%,%% ,&$&(%! &! !7!# &#?$/, !H &!7/#( :

@%>"# 5 ' +, %!$ & (# #/$#"#(&#'%$& $,% %!#"#(/%@&#(%$& +,$&%#""&: #/$#"#(+,,%#%#& # (&#) % @ #%! & ! _ &'#> %@& > $/$ %$&>

S

(23)

2<

($&$ !5%($ /,&#$/#%# $B'# # (&#):##@,&##),% "#$%$& !/ #'> +, ! (5 ,% % !'#%$& "#$ #%! %$& #(#$/,$ %$& 6% %>%$ ,$B'"#$%$&:e! B'&%5@%> $( 9#> "#$ ,% %> %'$ /,$ %$& : @% # > %@& &5(%&.#%$&>!( $$'%$& % +,!7!#/,%,% ! $&#: !$&>!@%> #""+,)%@& :,%> !( % (% %,#& /#H 5#I # (&#) %# !#%$& +, %@&S_!,&>!9/ &%,#& ! I(, 5&% ! &#$/#,% $B' # (&#) %# &> !5% +,$ ( (% %@& S:&$&>!. #)+,;%@&S@%# 9!#+, !( % (%/$# (&#)>$+,$&+,>!% (%5#I$B'# (&#)> %@& @%# 9!#+,%@&S:#/,2:K% &,%(%!$& %5 >'#$(#$+,%S9%,#&(%,$#($&>$+,$&+, % 9&.#%$&%# &,:

"-

)'.

%,&%@&"#$%$&% &#$/, (%> ! CD>"#!! &! NO$ , (,& %C NO$&:>2334D: %@&, (, !# % &,# >(%+>"#%,%$& %!$+,$(%! %# %@& :

(24)

2=

#$'@ , !H !&&#' (%$ %@& S >%@& , !H ,$#"% >% ")(%,%&#$$+,#)>%&%!I(,> '#!&$&,%/#,&C#/,2:PD>+,%$&@%%($"%: "#/,> !$& #$#( %), '#%$&%'# #%(!&:

!& "#& $ % "#$ /$& (%!&#5## $& & /#H > % %+,&$%# (&#)H &#(%$&#"$& :##@"),%! #(#$%$& '@&#( "$&#> %'$ !$& /# +, &% %# # (&#) ! $(#I (% !$& /# %$ # (&#): ! #(#$%$& ,/% &#?$/, +, '% (& : F9> !@%> ,% ,& !5% %# @#> #$$& 6 !7!#$&,)%@&;/% ,&$&%@&I#5>!') > /#H &$ # %,#& ($&B$, > (% & &$C&$> 233QD: ( !+,/#+,@!&$&,%"(,&@,%/#!+,$C#/,2:RD_% (%!>/#+,!# !&( ,&##) !H !&&#' !'#%$& (%!,& > '$ # % ($ #> # %,#& %# C#/, 2:R5D: % %5 "#/, > !$& #$#( %),!%%,! #:

Figura 2.8. O problema das regiões de transição muito descontínuas.

'$&/%%@&>&'#> &9$%#!# %+, 5&@%+,$ , +(%!+,$$]%!H &!7/#( ,$#"% : '. %5+,> ! ,% "#$%$& ,$#"% %> &%. ,% $]% %,#& %$ !H &!7/#( +, ! ,% "#$%$& !&&#' C & !%$( (% < $ %@&

S D:%@&>$]%(% 6@!!(#$ $]%!H &!7/#( : "#(9%# ((% I!#(H %@&!! & $ &&5:

(25)

2G

"/

0

(!B&,! $&,,%'# / 5 &5 9: !#$(#!# %@& S> :S@,%',,%&5$&#> ,!#/% % &, ,% &$ #( ! I!: ,/#, !# S> !(,$ I! ,% !$& $ S "(: > &%5@%> ,/#, !# S> I!,%,%(, !# %+, &'# !$B'$ %# $' :

(26)

2K

$ .

$

&(!B&,#$&,) !#$(#!# ($(#& 5 $''# $ &# &: (%!$ (%!& %@& !! &> @ $( 9# &5( $& ($(#& /%@&#( , ($(#& &@($#( +, '#%%#!#%!%$& %@& (#$ :e! $&,%!+,$#$&,6+,#&&,!/%9' % /,# ! $& ($(#& /%@&#( : @ ! $& % !#%# ,/ !+, /,$ ($(#& /%@&#( ! $& ! &#%$& ")% "8$(# (& !(& &@($#( :

$"

.1! 2.'

! ,% ,% +,#&&, "& !# %> "% !(#"#(%$& !J& ! !( %$& &B!#( (%!,& /9"#( % &%! : %5> $ ! > 5 #(%$& "#) % , &5 5 &#(#$ /9"#( C#/,

<:QD ,%%"#I 5% &5(#> $&#/!#/%&% # %#"#(> J99

/,$ $ @! B', #$ &,H ! (',%!/%+, 9I(,&% (& &( /9"#(C#/,<:2D:"&+, &( !/%9'# 9 !/%&&($& 5 :

Figura 3.1. Uma pipeline gráfica tradicional.

(27)

2P

!#!#$ /9"#( %$ C#/, <:2D &( !/%9'# (%

' , :!/%I(,&$' "),%%$#!,

( '@&#( %>@I(,&# %$&!('@&#(# !( :

,%%($&@%'@&#( >$&I(,H !/% (#' #) ! %%+, &:%(I(,>!/%(5(%$&,% '@&#(5,&%'' '@&#('#%$&!( :&#5,& >(%! #> $%(>!% %#"#( #'%$& "%:

Figura 3.2. Versão moderna de uma pipeline gráfica com trechos programáveis.

,&&(!/%9'/9"#(>, >&%5@%($(#(% >@(#$+,$%J9 $($&%'# "#$# $#)$&: !/% (# , @ I(,& # %$& ! ( !#I / ! $#) %: $#) / !#I > $& I(,H !/%

(# , #) : % ( I(,> !/% (5 (%

$& !#I %+, & &$ , (:/,$ (9(, #,%#$#$&! ( /%$&(%+,#:

#/, <:<> '#$(# #"$ $& %5 %($# % (#& :

#/,<:<>%#/#$$&$! '#%$&!( :#/,<:<5>

% ! !' > $ ( ,% , '@&#( @ !( "% ( !& , &#5,& %#"#( :#/,<:<(>$#)%@"#&>!#I..!#I>

(28)

2R

Figura 3.3. Processamento de uma malha geométrica na GPU.

$$

. 3 &2.'

%($# % !/%9'# ! $& $ $&# "%> ! '9# $ > ]$#( %# !/%!:@%>"##$&,)#! &#%$&>$ (% =f / C-N&> 233KD> ,% &(# %($# % !/%9'> ($(# (% & C-M$^#(&$5&>233KD: %($# %!%#&##,%$'&#! !( %$&/%@&#(:

& @ #$&,)# $ /9"#( !# ' : , ,$# 59 #(!( %$&@,%($J,$&(%!&'@&#( +,"#$%,%!#%#&#'/9"#(: (, # > "#%. +, & !( !#%#&#' > (% &#?$/, > , %$& ,%%&#$/,#):

(29)

24

Figura 3.4. Processamento de elementos da malha por meio do Geometry Shader.

#%> ( %$& ,% % ! #$#'#,%$& ! & C#/,

<:=D:,%%($&@%%$& >$&I(,H !/% (# &

#) C#/, <:=D: % ( I(,> !/% (5 %$& & (% $&> ' '' %$& & $ B> ! #'%$& %#"#( C#/,

<:=5D:I%!>,%%$&&#$/,@"$(#$"%,%($J,$&<'@&#( _

$&!/%%+, &!%#"#(#'%$&+,+,,% &8 '@&#( :")> ($&,>&$( & &8 '@&#( ,% 7')C$' >!,&> !$ '@&#( $!( ( B'D:

(30)

<3

@%> 5 ',. +, & $ ($ %,#& 5% $ %!#"#( /%@&#(_ , %!$ (# !#%$& ! ,% %!#"#( %# #$&$ C#/, <:GD: (, # > , & % B$& /%@&#( &% # #%#& 6 %!#"#(H /%@&#( !+,$ (:

0 5 10 15 20 25 30 35 40 45 50

0 20 40 60 80 100

Número de vértices emitidos para cada entrada Tempo (ms) 5.000 entradas 20.000 entradas 40.000 entradas 60.000 entradas Figura 3.5. Amplificação geométrica por meio do Geometry Shader cai bruscamente.

$*

+ @ ,% (, #$&,)#> &%5@%> $ =f / C-N&> 233KD> %&#' ! ,% !5% 5 &$& (%,%: ,#& !#(H /9"#( (%,%$& &8% ,% % % % /%@&#( +, @ !#(> #' ') > % ,% ' & ($9#> %! #H &%$ # &#$& C#/,<:KD:!#(>,#$ &?$(#>%/%@&#(%+, &> $'',%&%#$(, &!(#$! !( :

#/, <:K5> $,% & #$ &?$(# % $ !#(:

#(#$%$&> !#( &# +, !( > ! # !7!#> ( #$ &?$(# % !&#(,> "#$#$ +,$(#%$& +, % , !( $ &$ "%H /%@&#( !&#(, ( ( : @%> (% +> !( %$& !#( @ ,&%&#) ! "#& % !> $& !7!# : %#$#%#) ($ #'%$&(, &!(#$ !#(H :

(31)

<Q

/%@&#(!&#(,!#$ &?$(#>5 &( %&#)B$#($,%# &%&#) : ##@#, &$#/,<:P:

Figura 3.6. Várias instâncias de uma mesma malha geométrica sendo replicada.

'. 5 ' +,> $ '> $ 9 $$,% Z"#& /9"#([ %# > , $ +> +, $ ! 5&# % , 9. &%5@%: 5J&#' &@($#( @> !&$&> #%! %$&&#%#)!( %$&%:

(32)

<2

% # (, 5 ($(#& &@($#( "#$#)> ($(#& % /%&#(#$ (% &# & /'#%$&! $& :

$-

( &

((%&%#$/#C#,&:>233<D>,%%! '# &(%,% &#! !(#/"$ $7 (/%#$"%H 5 &#5,& '@&#( >(% ! #>$%>&(: $& ! !(&#'>"#$%$&% #'# & #%! %$& (% ,% #$ $7 $ /" %_ (% J, & % # ,% %$#!, &#5,& +, &$ $7 C% !(#>&#5,&! #'@&#(D:

,% +, & !&#(#> $ $&$&> "#$%$& % @ #/$> +,#> (%($J,$&(%!& !H ;" #$ #$7 " %$#!,$7 : %(% $7 %$#!, >! ,')>@,% ((&B &#(&#!"#$%$& , :&#!"#$%$&&5,%%!&#(,!&%#$(%'% %$#!, $7 C!I%!>, $,%",$+,#$&!,% ,!"B(#D:

Figura 3.8. Refinamento da malha: inserção e manipulação de nós.

#/,<:R! $&($(#&"#$%$&%# (,&#:#/,<:R>&%.

(33)

<<

Figura 3.9. Exemplo de refinamento de malha.

#/,<:4> ($(#&@!#($,%%#, &&#'$9,%# (&#)

%#: #/, <:4> &%. % #/#$: #/, <:45> % @ %#"#( !

#$ '9# $7 : " #$ $7 ! (% ,5#'# , # (&#) %> % ($& & (% % #/#$ C+, #$ $ "# ,5#'## , # (&#)D: #/,<:4(>'8. " %$#!, $7 $'% # (&#): % !(#>$ "#/,>9, %$#!,H $#) ;!#%#!#(,%,B$ ! # '@&#( #$#( CQD /,$!#(,%+,,%(,'$! # '@&#( #$#( C2D:

(34)

<=

(#%%# (&#)>5, ($%$&,%#$" &,&,+,!%#&+, !H ! % "#& "%%# "#(#$&! B':&$&>"#$%$&% (% # #%! %$&5, (")# , $5% (, # !$B'# $,%:

$/

)! &2.'

,$#59 #(!&5/%@&#($@&#?$/,:$ #$>!&$&> +,(%$&%$& &5($ # &$,%&#?$/,> ,5#'# ,% % #/$#"#(> $(#%$&> ,5#'## ( &#?$/, % %: !( ,5#'# &#?$/, >!&$&> #!#%#&"(%+, !(,!C#/,<:Q3D:

Figura 3.10. Subdivisão gradual de uma malha.

@%>'#,%!5% &#+,#&&, ,&># $ !# "#&#&%$&: %# $&#/ $&#$%,%(, !/%+, !%#&# #) ,5#'# ,% &#?$/, "$(# (% $&: (,

!/%9'# $& ,%#%' >J9! $& $

<:2: '# #$> $ !#/% !/% (% > ,% %($# % +, !%#&# #),% B$& /%@&#(C & #$$'# ##$&,)#D: (, # >,%,&(%#$&'+, (#!#) ,5#'# % :

#$& #%! "#&,% ,$/$ +,I!'5%!&$(# :##@+,>#$'@ !(, ,5#'##(%$&,%%I# &$&> ,&##)%. %$& J9 !$& ,5#'## > $,% "%& /$@#(> "). '# !& %$& > % &%! > ! % % !&#(,: %$& /$@#( >J9!$& > (% !H &!7/#( C'#<:PD:

(35)

<G

$4

.0 5

&5 "#$%$& % &#$/, (% $# ,&##)% !#%#%$& !H &!7/#( "#$%$&> $ ! # (% %@& "#$%$&#$&!H C D:

% ! &!7/#( @ ,% &#?$/, ,5#'##> (% '@&#( % ($ 5#(8$&#( C,> '> MD> (% % & #/, <:QQ: % '@&#( & % ($ 5#(8$&#( > &#?$/, ,5#'##",$(#$> $(#%$&>(%,%!&!/#; !#(,%&#?$/,+,+,")(%+,"#+,# (&#)((% !%!/C#/,<:Q2D:

Figura 3.11. Exemplo de um padrão topológico.

!&!7/#(5(,%(&# (&#)>+,! !(#"#(!,% '%( &:I%!>,% &(%$B'# (&#)c2' ,5#'## %# (, #'%$& , ') : $& XQ>2><Y ! , !

"#!&!7/#(+,, $B'# (&#)Q! ,!#%# &>2!

/,$<!&(#:I%!#/,<:QQ>!&!7/#(%+, & #

XQ>Q>QY:

%!&!7/#( @ #& +,$ %$&@% &#+, $B'# # (&#)% , & J%& #/,# CQc2c<D:h,$$9 &#>

(36)

<K

Figura 3.12. Aplicação de um padrão topológico a um triângulo qualquer.

e ! B' %$& ,% # & !H &!7/#( % ,( #' # (&#)H : I%!>, $. %$&!H ,$#"% > # &!# %$&(% !H X3>3>3Y>XQ>Q>QY>X2>2>2Y>X<><><Y>&(: "%>!#),%"#$%$&%# #$&$ > ,&##)# ,% ! # (&#) %#> (% X<> <> <Y_ ! ,% "#$%$& %$ #$&$ >,%!# (&#)%$>(%XQ>Q>QY:

'>##&,%# &!H &!7/#( !$&>!&,%/% # (&#)H ! B'# >@'#&! %@& "#$%$&%(%: ( !+, ( ! &!7/#( ! '#%$& ( $ %%7# $&,&##)&$& ') +,$&"%$( 9# :

Figura 3.13. Lista de padrões topológicos uniformes.

#/, <:Q< % & ,% # & !H &!7/#( % ,( #' # (&#)H >

#/,<:Q=% &,%I%!%$#!,%>$% %%#$#(#>(%

(37)

<P

Figura 3.14. Manipulação de uma malha usando padrões de diferentes discretizações.

$6

) .0

"& ' / ,% # & !$& !H &!7/#( 6 # ! # $ #/$#"#(+,>!%@&"#$%$&% >5 & (+,# !H ' , $%%+, &: #/$#"#(+,>!(&#?$/,%$&>' (#$ ,% ! &!7/#( +, $+, $ # (&#) J ! +, &#?$/,%!&#(,: !( @(%() -C#/,<:QGD:

Figura 3.15. Seleção de padrões.

%5$ +, ,% ! &!7/#( @ "# ! ,% &,! XQ>2><Y> $#

(38)

<R

!(&#' & % $& $& , ' ! &%#$+,! &!7/#( (:

@%>%&% #%!%$&$ # &% /9"#( &,# >@%# #%! &,% &#5,&!('@&#(%+,!( &: #/$#"#(+,@%# "9(#&,% &,!C'Q>'2>'<D+,"#$$B'# (&#)%(,% '@&#( 'Q>'2'<+,

&,!CQ>2><D+,"#$$B'# (&#)%(,% & Q>2<:

(, # >,%% #%! ($' ! &;+,$,%&#?$/, "!( >5&@%. &,!CQ>2><D%",$C'Q>'2>'<D")$. %@#$&

'@&#( >((% +,H <:Q><:2<:<: 1 2 1 2 v v a d d

d = +

(3.1) 2 3 2 2 v v a d d

d = +

(3.2) 3 1 3 2 v v a d d

d = +

(3.3)

+,H <:Q><:2<:<&%#$%$B'# (&#)$ & ,%&#?$/, %",$ , '@&#( :%&,!CQ>2><D5&#>! , @"#

J, &%$&!XQ>2><Y: !( ($' @#, &$#/,<:QK:

Figura 3.16. Conversão do valor de discretização dado em vértices para arestas.

(39)

<4

+, @ , ! (#$ ! &!7/#( ( !$$&: +, &> /> @ (% &%#$ &#5,&# (&#)>>('@&#(:

(,%$B'# (&#)!,%'@&#(! "#&%",$ #"$& (#&@# : I%!> ! /#H % +, & %# !7I#% 5 '>&. ,%$B'# (&#)%#:,&(#&@# #'#(,'&,% (!$&%!&%#$+,!",$' $B'# (&#)$/# ( !$$&:# >9#' ! (,'&,# !$B'# :( % &#$/, , %J/ ,& # &% /9"#( #$&&#' >,%! #%! (% (,'&, , #$ # (&CN & :> 2332D ! , : NO$ , (,& C NO$&:>233PD!!H%#$,%(#&@#+,# (&#)%# "&%$&&%$& %+, &J5%!7I#% ,5'# ,$&:"#&# @+,%"#((% ,%($&$'# ,%,#&5%"#$:

%&( > !(#"#( %$&! "#&"% ,&%9&#( ! ,% /#&%: /#&% ! I(,& $ !7!# ,> " ,"#(#$&%$& #%! !& ! +,#&&, > ! #) &%5@% $>!%#' >!I%!:

$7

( &

!( !H >(% 9+, &($"%#$%"#$i ! (#$,%!&!7/#(!,%%$&+,&$,%$]%#"$& !$& % &# $ & % +, % % %$& (%!&# (% ,% %$& '#)#$C#/,<:QPD:#/,<:QP5>9,%( $.($"%#$%/>>$

#/,<:QP>,%' ($"%% %:

(40)

=3

Figura 3.17. Malha conforme e malha não conforme.

#%>$ !H >% ,&$&@%$&#($"%!+, ( !H 9>%]&#%#$ &?$(#>%$B' &:I%!>$#/,<:QR5>6##&>,% &#?$/, +, , ! X3> Q> 3Y $(#I. !"#&%$& (% ,% '#)#$ , +, , !XQ>Q>QY>!# %5 &8%>$ &(%!&#>% %$B'cQ# (&#):

#$$#/,<:QR>%CD>&%. '9# I%! !H &!7/#( !&&#' :

!% '#%$&$(#I ,$ $ ,& +,$! ,%%(%,%,% & (%% %$B'# (&#):

Figura 3.18. Diversos padrões adaptativos e a conformidade da malha.

(41)

=Q

$8

.

!7 !H > (% '@&#( &#?$/, ( ! & % ($ 5#(8$&#( C,>'>MD>%@&"#$%$&"),%%!%$& #%! ! 5& ($ "#$# :$ #$CQ>2><D(% ($ '@&#(

&#?$/, #/#$ $ !( > %!%$& #) ! +,<:=> ! I%!> ! , ! / ,% #%! # (&#) ! ( &#?$/, % #/#$> ((%&!/# !H (#$ : ! &9#, &$#/,<:Q2:

"#$cQ,g2'g<M (3.4)

$

0

(!B&,#$&,)#, !#$(#!# ($(#& 5 $( 9# !,%$&$#%$& %@&: % '# & %($# % !/%9'# , ! %@& "#$%$& 9> (% ' & : # "#& &%5@% ,% %# %5 %$&&7#( 5+, #/$#"#(%$&"#$%$&% (%",$(#$> %$#/>,%/#&%"#$%$&% (%: !H &!7/#( $& ( !$$& "% &%5@% ! $& > $ # (,&# #$(, #' (% !#( $ %: &> /> # (, &@($#( !7!# %@& !! &: e %&## (, !7I#%(!B&,:

(42)

=2

* 9 ( !

& .0

*

%@& !! & $ ! $& &5 "#$ !&&#'%$& % &#$/, > , $!H &!7/#( !&&#' :$]%!H !&&#' @5 &$&,)# (% #$&, ,% $' +,% #$I !H : , $]% !H $% %$&+, & !%%7#,&##)>% !%#&#$>! (, %#,&##) >+, 5&$,%!# %%# #$&$ >,%$&$ %!$ #/$#"#(&#'%$&:#/,=:Q#$#,%'# //#&%:

! "# $ $ %$#&$'$()

* + % ,

# &$ '$ () $ -

$.

/ ! * 0

1"#

Figura 4.1. Uma visão geral do método proposto.

/ !H &!7/#( !&&#' C&!Q/#&%#$D@"#&

>%+, ,&%!I(,$(, $$,%#%!(& 5 %!$

%@&"#$%$&:!$ / ! &!># &@> !H &!7/#( !!#%$&#& >@+, #%!&$& : !% / ,%]$#(')$,%!/% 6!&/' %# (!! &#,&##)!%@&: #%>&')+,%@& "#$#(##)>5 &(!# %)$ $# (!%%7#:

(43)

=<

*"

:!.0

%(&!X#>J>OY!>"(#%$&> , (% " !XJ>#>OY>!

I%!: (!+,+,%!%$& ($ 5#(8$&#( C+,

<:=D! "(#%$&%#"#(!&5(% ' $,%%#"$&: #$'@ (#Q(%>2(%<(%>!. (#Q(%>2(%<(% >! I%!: "#& # $ !9&#( @ (% ! XJ> #> OY &#' # ,&##) #$'@ !X#>J>OY:(, # >#$'@ & K!%,&H # &#$& X#>J>OY %)$ (% !H &!7/#( # &#$& C#/, =:2D> !. %)$ ,% ]$#( ! C#/,=:25D %# 5&# !%#!%,& '#9'# C,>'> MD!%)$:

Figura 4.2. Permutação das coordenadas baricêntricas (u, v, w).

(44)

==

(%!$(%'% "#& !%,&H ($ 5#(8$&#( C,> '>MD"#% 5& !H J %",$ !H %)$ > #, & % /,#/,$ I%! :

Figura 4.3. Rotações de um padrão e permutações correspondentes.

#/,=:<% &+,&(#$,%!&!7/#(%&$#I0>$ $&#

$&#.9#> +,#'Z&(#$[ ($ 5#(8$&#( C,>'>MD: ! '# & (% ,%&#?$/,'@&#( >" &%5@%&(#$J,$&> #%! #&, '@&#( &#?$/,J9#$#(#!%,& #)! 5&! J:

I%!>$( % &$!& ,!##/,=:<>,%!X2>Q>3Y>+, #( $%%$&!&,!C,>'>MD>@&(#$,%')>5&$. !X3> 2> QY: ! X3> 2> QY @> $ '> % % ! #/#$ X2> Q> 3Y> !@% $ ( !%#&,!CM>,>'D#$'@ C,>'>MD:

(45)

=G

&(#$> (/$. "% $ ! XQ> 3> 2Y: &#?$/, ! $&&#' ($ 5#(8$&#( &%5@% @ '#%$& &(#$> #% 5&@% !%,& C'>M>,D>(%#$#($ "#/,: ]&#%!" &(#$%# ,%')> 5&# $'%$& ! #/#$: % # > $(. ,% (#(> &%#$%. !%,&H !(B"#( ! 5&$ !H X3>2>QYXQ>3>2Y %",$! #/#$X2>Q>3Y:

#/, =:=> ! $& %# !H 5 !H &!7/#( > ')

, $,%Z !%$&[;

(46)

=K

!%$& #/, =:=> &. ,% &%#$ #I $& Z/#. [ &#?$/, % &$ +, #I: #I & ( $ # ,% '@&#( &#?$/,+,! $& ($ 5#(8$&#( C,>'>MD:I%!>$!#%#( ! $&$#/,=:=>#I%+, &!$&$#'@&#(>>!(, # > !%$& % +, & / &#?$/, C'> ,> MD % ",$ &#?$/, #/#$ C,> '> MD> (%! '# &$ "#/,: #/$#"#(+,> ", !%,&C'>,>MD(% !#/#$X2>Q>3Y> 95&#!X2>3>QY#$#($"#/,: % %$&> ,& # ( #/,=:=5&8% !H X3>Q>2YXQ>2>3Y:

$&$. ,% (&9/ (% & !H 5&# ! !H #, & $

#/, =:<=:=>5&@%. /,#$&# &!H ;

#/#$;;"<<8=:

H 5&# #/,=:<;;8<"<=<;<8<"=:

H 5&# #/,=:=;;"<8<=<;8<<"=<;<"<8=:

# & (5 & !%,&H ! B'# ($ 5#(8$&#( C,> '> MD: @% # > % & +,> (% !$ ,% ! #$#(#> & ,& (#$( !H 5&# !%#!%,&H $ ($ 5#(8$&#( C,>'>MD:+, &+,' !#$#(#! (##!,%(#&@#5#&9#:! $&&5> /,#$& (#&@#! (+,!X#>J>OY%)$"#&;+,+,&% ' #>J> O$ $"%./.: #%>$ I%! ! $& >!X2>Q>3Y"#& (%!#/#$$"%/ ,& (#$(: !(&#' !H # & ! $& ( !$$& !%,&H C,> '> MD +, /% !H % & $5=:Q: &5($&@% !H 5&# ! !H #/, =:< =:=>(% !(&#' !%,&H #$#( :

Tabela 4.1. Obtenção de padrões em função das permutações em (u, v, w) realizadas.

(47)

=P

%>!&#,%]$#(!>!% / ,& (#$(!H %&%! > ! %# ,% #%! &( $& ' '#9'# 5#(8$&#( C,> '> MD> !#!$ +,$]%$( 9#!H &!7/#( !&&#' #!$ QjK $]%&&!H :@%>9!H &!7/#( +,! ,%' !&# # (&#)>(%XQ>2>QY,% %XQ>Q>QY: ( > !%,&H '#9'# 5#(8$&#( C,>'>MD$/%,& (#$(!H # &#$& : #%>$]%$( 9# !H &!7/#( @&%#$!+,=:Q:

3 2

N + 3N + 2N

6

(4.1)

+,"$($]%&&!H !&&#' X#>J>OY>(%#>J>Ok>+, !(# %"& %)$ > /,$ +,%!! &>! 5& %# !H %",$ !H %)$ :

$"% ! '# & $ /9"#( #/, =:G> , $ $]% !H $( 9# &$. #/$#"#(&#'+,$# (&#)%9I#%>>@':I%!>! c Q3> %)$ Q333 !H X#> J> OY ! %@& !&&#' &#(#$# % &#%#) !! &_ % ! +,% ! $& &5 !$ 223 !H %)$ >5&$. > #%>,%,PRl$$]%!H :

Número de Padrões Topológicos

0 100 200 300 400 500 600 700 800 900 1000

0 2 4 6 8 10

Nível de Discretização

Sem otimização Com otimização

Figura 4.5. Armazenamento de padrões topológicos.

(48)

=R

*$

3&.

" !H > ( %$& % #/#$ @ (# (% ,% &%#$!X#>J>OY>!@% %$&!+,5((#&@#./.I# &> ($"% "# ($'$(#$ $ =:2: (, # > '#9'# C,> '> MD> $ " %!%$&($ >!(# %! !,%!%,&+,>!5&$ ! X#> J> OY J: #%> ,% ') (# ! &!7/#( J ! ,% &%#$%$&%>'. , ,% !%,&H ! $& $5=:Q> !5&! J%&%!:$&,>@$( 9#+,>%&%!I(,> %@&"#$%$& J(!)(##+,!%,&, :

I%!> ! X3> 2> QY " (#$ ! ,% &%#$ %$& %> @ ! B' '#"#( $5 =:Q +, ! ! 5&# ! X2> Q> 3Y %)$> &'@ !%,& CM> ,> 'D> (% % & #/, =:K: @%> &5 ($&@% !$ /,$ ( !H _ ! I%!> $ ($&@% $$,% #$"% 5 !H X2>P>=Y>X<><>2Y>X4><>KY>&(:%>$&>/#&%!9(##+, !%,&, ! ( i

Figura 4.6. Obtendo a permutação do padrão desejado através da tabela.

(, # >,%/#&%/! (!%,& ")$( 9#: #/$#"#( +, /#&% ' (!) ( !%,& +, 6 5&$ +,+, ! X#> J> OY #(#&: !H # & $5 =:Q> /#&% '9 !$(% % % !%,&H #$#( $ &5:

(49)

=4

Figura 4.7. A variável define qual permutação fazer para obter o padrão desejado.

I%! #, & $ #/, =:P> # %$& % #$#( , % !%,&H !(B"#( !%)$X2>Q>3Y: !%,&@#$#(!' T+,!7!#%$&%%)$: "%>$+,$&,%%$&, Tc3> #$#($ !%,& ! C,> '> MD> ,& %$& , T c Q> #$#($ ,& !%,&: "#& # @ +, %$& (% T c 3 "#(9 (% ! X2> Q> 3Y % !%,&>%$&(%TcQ"#(9(%!XQ>2>3Y>5&#&'@ !%,& (#:

% #, &>!5%"#( ,(#$_/>@$( 9#!$ !(#"#( %$#((,T(%@ (#!%,& ($ 5#(8$&#( C,>'>MD% ",$'T:

%(%T! ((,@ #%! :%!%,&C,>'>MD!$ %X#>J>OY>$&5 &#),%/#&%+,&%#$>%$#]$#(>,%' +,!$$X#>J>OYC'#/#&%#/,=:RD: !# # >,% #%! (#Q;Q('! B'T(%,%!%,& !(B"#(! "#&:

$& ! /#&% @ +,8$(# $,%@#( C>/>D +, #$#( ! X#> J> OY J: ,$& /#&%> +,8$(# (5# 9 '#%$& $ ! "#( $ "%"#$>+,"# &5(#(% $./.C'#=:2D: "%"#$@+, #$#(!%)$:I%!>$#/,=:P>!%)$@X2>Q>3Y> ! J ! ,% %$& @ XQ> 2> 3Y: $& +,8$(# $,%@#( CQ> 2> 3D @ "$(# (% $& ! /#&% #/, =:R> +, "9 '# $ $]% 5&9 +,8$(#$,%@#("#$C2>Q>3D>J,$&%$&(%'TcQ:

(50)

G3

2

3'

*

'

/

4

5 3(

6

(

7

4

8 '3(

9 '

(

2

4/

Figura 4.8. Algoritmo para calcular .

/#&% ! $& ! % $&$# +,$ ($ # +, ,% $ ,% +,8$(# #&$ $,%@#( ! "#& !$ % ",$ &%#$ &( $& #&$ :( >!,% +,8$(#(%&8 #&$ >&@&8 &( ! $( 9# :(&("'#%$&(&/>$&$(%!& ! !$#!$ 5 '$(&9/&# &( :#/,=:4#, &(% $% &( $ $ "#& ! /#&%> '# %,$ +, ( &( (&%T:

Figura 4.9. As três trocas possíveis na ordenação e as respectivas mudanças em .

(51)

GQ

! , ! 5 +,# &( "% $( 9# ! $ ,% +,8$(# $,%@#(: "%(%'T@((,>$]%5&#J9! $& %9 ( 5#& : #/, =:Q3 #, & I%! $H , $ /#&% (9(, T ! $&: "#/,>#"$& !H X#>J>OY "$(# !/#&%>%( I%!>/#&%$ ' >/!"$(#! (/$"%./ .>(&/$(&("#& #%/$'T:

Figura 4.10. Como o pode ser calculado em função das trocas em uma ordenação.

'>( Tc<$,$(#9($I(,/#&%#/,=:R>J9+,>

($#H #$ 2G/#&%$#/,=:R"%'# >

($# #$ R &%5@% 9 $( #%$& '# C m 5 5 m (> ! &$ #&#' ! 0 &%. +, m ( $( #%$&_ # &$ ( T c < #%! B'($&(>J9+,$ ( ($#m( #$/D:

$'@%%5>#$>+,/#&%! $&",$(#$&%5@%! ( $ 9!&##&$ $,%@#( >(%>!I%!>! +,8$(#$,%@#(CQ>Q>2D:

(52)

G2

Tabela 4.2. Permutações (u, v, w) para cada valor de .

. ?@AB +@A"B ?+@A*B @CB .

2Q3 3 ,'M

Q23 D Q M',

QQ2 D 2 ,M'

23Q D = ',M

32Q D D G M,'

Q32 D D K 'M,

3Q2 D D D P ,M'

5 =:2 % & ,% (# ( ' T ! B' ((, (%

/#&%#/,=:R(%(!%,&5=:Q:%5@% % & +,# &( /#&%$#/,=:R#)!(( :%",$ &( >!. %$&,% +,%$ 5&@%!%,&(&C,>'>MD %,IB#5 =:Q: +,%@"$(#$/#&%#/,=:QQ:

$$:

;1<% '=

* ;><?@0!A0B+

/ ;><% '$ =

5 ;>< -

Figura 4.11. Algoritmo para calcular a permutação de (u, v, w) em função do .

/#&%!! &$#/,=:QQ>I! Z(,$##&[ #/$#"#(+,>! ZI[$(,$*>%(. ZN[$(,$S_!ZI[$(,$S>%(. ZN[$(,$ *S_ ! ZI[ $ (,$ *S> ! $ ' ,% (,$ 6 ##& *S> %(. ZN[ $ !#%#(,$*% %>"%$ #%,%(#(:

(53)

G<

#, &/#&%! $&># I%! ,"#(#$& :!#%#I%!> I(,&. /#&%!TcQ: ( >($ ,&$. 5=:2>!. '#"#(+, !$ (,$*&%,%ZI[%(:$&>!$ ,%ZN[@%($(,$6##&> (,$ S: /> $ (,$ +, "% %( (% ZN[ ##& ! +,> $($&. !$ (,$S_ #%>#)$,%&(&#!S$ +,8$(##/#$ C,>'>MD>5&@%. +,8$(#"#$CM>'>,D>(%(&%$&@#$#($5=:2:

% /,$I%!> /#&% @I(,& !TcK: ( > (,$ (% ,% ZI[ %( (,$ S *S: ($. (% ,% ZN[ !(&#' (,$ ##&> %( (,$ *S*C%5$+,>!*S ]&#%(,$ ##&> #%/#$. ,% ,& (,$ #$> 6 ##& *S> +, ! $& *D: /> #)$!#%#%$&&(*$ +,8$(##/#$C,>'>MD>5&@%. C'>,>MD_")$. > % /,#> &( *S $ +,8$(# C'> ,> MD> 5&@%. +,8$(# "#$ C'> M> ,D> (% (&%$&@#$#($5=:2:

& >"#! $&!(#%$&!&%#$ !%,&H +,'% "#& %5& !H &!7/#( J :A /,#>$=:=># (,&. (%!#( #$"%H ! $& &@+,#$%@&"#$%$&:

**

) .0 9'C

&! !H %@&"#$%$&> !H J !( %$&% '#%$& (#$ :%$%& !H "&I# &% $%%7#>#$&,). '#9'T!#$#((%#),%!%,& ($ 5#(8$&#( C,>'>MD>$" %!%$&%@&>"#%5& !H J ! %$& >%",$ !H +,"& &%)$ $%%7#:

=:<>"## (,&#(%((,'T!&%#$%$&% %",$!X#>J>OY (#$! %$&:%/,%%%$&> T 9 , ! (5#+,!%,&' "#&(% ($ 5#(8$&#( C,>'>MD "#%5&! J!%$&: & >!&$. % &(%# $(#I$/#&%/%@&:

#/, =:Q2> ,% /#&% ! !H $ % @ ! $&:

/#&%"), (9(,T! $&$/#&%#/,=:R:

(54)

G=

%=

%#&$'$() '

* 1,

/ $'$($

Figura 4.12. Algoritmo de aplicação de uma permutação de (u, v, w) em função do .

#$2/#&%#/,=:Q2' ! $#)!!#(:$"%

'# &$<:R> ($B'# (&#)>"#&!('@&#(%>! #)%",$ %# '# (#&@# >(%# &?$(#5 '>(,'&,>&(: !X#>J>OY (#!$ &%)$:(, # >@#%!&$&'#9'T +,#>!#$#((%5& !:

(%$&%>'% %)$ ;!X#>J>OY&%#$ 'T:@$( 9#%)$ !(#"#(%$& ' C#>J>OD! JX#>J> OY>% #% ' C#>J>OD+,#$#(%!%)$, (%5 !5& ! J:I%!> !XQ>2>3Y@ (#$>$&>&,!( !$$& C2>Q>3>QD@+,' %)$$%$&: &,!>"#(%#$#( !+, '5 >X2>Q>3Y>'T+,> $!#( 5 !>''9! JXQ>2>3Y: ,& " %@&> #$"%H $( 9# :

*-

.0

%%,$#$I!! &># &!H "#(,%$>!(, # > %# &#?$/, % #/#$ & , $ % % ! X#> J> OY %)$: ,% % %!@!&#%$&, ># #/$#"#(+,&@($#(+! , !(/#&%>!#)$!( %$&#)!& %$& % +, ,&##)% % % ! C#/, =:Q<D: &#! !# %> % % ,&##) %,#& ') %!>,%$&$5 &$& %!$: <:=($&@%%# & 5+:

(55)

GG

Figura 4.13. Processamento de elementos agrupados em lotes, por meio do Instancing.

,%#%!%$&#$#(# /,!%$&!H >"). ,% #%! ', %$& %> #%>(&. +,# !H , $# (&#)%: %')+, #$"%H &$% #(& >(#. ,%/,!%$&!(! # &#$&X#>J>OY $, >#(#$. $ /,!%$& "8$(# %$& % (# &# !H :#/,=:Q=#, & #%!%$&:

(56)

GK

Figura 4.14. Implementação inicial do agrupamento de padrões.

%5 #%!%$& #$#(#> ($"% I!#( $&#%$& '#$(# $

#/, =:Q=> J9 % & #$# !%# %!$> "# 5 '> ($&,> +, ,%

&#%#)%# "&#$ #! B'>$&%@&!! &:($&(+,>(%( %$&! ,# ,!7!#T>!. /,!& %$& +,, %!X2>Q>3Y X2> 3> QY $,% % % /,!> ! I%! C$#/, =:Q=> # +,#'# ",$#> ! I%!> /,! #$#( !X2>Q>3Y X2>3>QY>% & $ !& ,!#>$,% ]$#( /,!D:)!+,# &$! B'@+,!X2>3>QY, >$%@&!! &> % % %)$ !!X2>Q>3Y>J9+,%5 ! ,%% %! 5 :

(57)

GP

/,!%$& !(!5 $,&##):#/,=:QG#, & ,& $'#%!%$&:

Figura 4.15. Implementação otimizada do agrupamento de padrões.

(58)

GR

I%!> Q3 %$& % , % % % ! X2> Q> 3Y> $&> ! !#%##%!%$&>& Q3%$& #%!( $,%]$#(&:@%>! /,$ #%!%$&> & Q3 %$& +, , % ! X2> Q> 3Y #% !( $,% ]$#( & J,$&%$& (%> ! I%!> ,& Q3 %$& +, , % !XQ>2>3Y>,& Q3%$& +,, %!X3>Q>2Y>,& Q3%$& +, , %!X3>2>QY> #% ,( #'%$&: !H X#>J>OY+,!% 5&# !&# X2> Q> 3Y !( $,% ]$#( &> & ! %)$ X2> Q> 3Y: &$&> ,&##) > (% @ "#& +,#> @ 5 &$& &: &#%#) 7 "# ! B' #)!(, +,%5&$!H !%#!%,&H # (,&#$ H =:2=:<:

/#&% #/, =:QK (# /,!%$& %$& ($"% # (, "#& $&#%$&> ! #%!%$& &#%#): &( ! #%!%$& $. &#%#)> 5 &# %#"#( #$ 2 /#&%; $ &% Z! 5 [> &( ! Z![ #%! %$&:

%= #- &$'$()

* '1 #

/ # 5 6 #

7 #

Figura 4.16. Algoritmo para agrupar elementos da malha por padrão [i, j, k].

"#$ I(, /#&% #/, =:QK> '9# /,! & # (# > ($&$>%(,%>"8$(# & %$& %+,, %,%% %!. 5 %(%,%:

*/

% &

(59)

G4

%%$& #) ,% %!%$& ($ 5#(8$&#( ! ($ "#$# J :

%!%$&>%,#& "#& #"$& !% 5&# :. , &@($#( ! ,%$& # % ,!"B(# (% ,% &I&, C)#%N.S ^%$""> 233RDC#/, =:QPD>! I%!> , % % #) ,% ,% ,!"B(#!%@&#( ,'C#/,=:QP5D 5 ("(% $&:( >J9(#& @,%I%! &#! ,!"B(#:"#%>

% %* C#/,=:QP(D &%5@%%!/ :

Figura 4.17. Manipulações na silhueta podem ser feitas no estágio final da renderização.

" $#)> ( /,!%$& %$& $ " $&# @ !( /,#$& "%; %$. 1 !.5 X#> J> OY /,!%$&> , $ +> ! I(,H > $ @ $]% %$& ! $& $ /,!%$& % +, &:(I(,>'#%!%$&@#)>%&%!>$&!7!#

>!%#,%!/%$' >!I%!: !/%$'

(5('@&#(!&!7/#(>%($ 5#(8$&#( C,>'>MD>%#"#( '@&#( !"#( ((% %: I%!#"#( # >,% #%! # (&#) %> %%# "#& >@#, &$/#&%#/,=:QR: /#&%> '@&#( %$&&#$/,&,%$& $!( ( B'# !%# '#9'# Q>2

<>'@&#(%($ 5#(8$&#( @( B'!%# '#9'# >:'@&#(

(60)

K3

%$&# (&#)((%! (#$: !%,&H C,>'>MD, +,# &((%=:<:

$$:# =

-

* =

/ C2=D

4 4*:

5 C=D

:4 4*

6 C =D

4 :4*

7 C/=D

4 4*:

8 C5=D

:4 4*

9 C6=D

4 :4*

2C7=D

4 :4*

Figura 4.18. Um algoritmo de aplicação do em cada vértice processado no mapeamento.

*4

0

(61)

KQ

- 0 < ,

-

& (!B&, ! $& I%! !#( %@& "#$%$& !! &> #$&,)#$> +,$ $( 9#> !#$(#!# ($(#& &#' 6 !#(H % & : @% ,& 5&# > &%5@% @ ! $& ,% $9# (%!&#' %!$%@&:

-"

! .:

% !#$(#!# , %@& "#$%$& !! & @ ,'#) % I# &$& :I%!#/,G:Q! $&,%%5,&Q>G%#%$& ( &$"$#)! # &% /9"#( &#(#$# ,' $#)!&@($#( !! &: ' @ 5&# % ",$ % 5,&> , $ #$&! ,% ,!"B(#(]5#(-@)#($"% !(#"#( ># (&#)!$& &<R3%#%$& :%S#/#$> %!$$#)@4_(% %@&!! &@G4>,%,%$&GGKl:'# ,5&#@% %!%5 %@& >,%')+,%5 "%I(,& !% %&@($#(/%@&#( : @%> (% %!$ %@& !! & @ 5 &$& ,!#> !. ($,)#,%"#$%$&(%%,#&%# # (&#)#$>"%+,!7!# ,& '# ,! %,#&%# # &&%5@%:

(62)

K2

"#$%$&+,#) ,'#)%@ !(#%$&!(5#6%#+, 5J& !I#%5 ':% ,'#)>, ,9#!#(/9"#(!#%$& $& #%!"#H #,&%:% ,'#)>!@%>%($&#$,(%,% #,&5%"#$#>(% !$&$ & % & $#/,G:2:

Figura 5.2. Detalhe da silhueta da malha.

&@($#("#$%$&(% ,'#)@]&#% %!!#(H +,&5%(% % I# &$& $&#/ 5,& : ,'#) !#( $ !$ %# (#H /%@&#( 5J&: I%!> % % % %# & 5 IB( ($&$ #%! %$& (% &#?$/, % %> "#$%$& !#( #&%$& 5 ,% ' &#$/,#)5#I# (&#)IB(/,%5% ,&C#/,G:<D: I%!>%#/#$&#$Q%#%$& >$+,$&%"#$&%RQ%#: $#)(%S#/#$@Q3>($&22R(%%@&!! &:

(63)

K<

%5J& %# Z/?$#( [,Z$ [> ,'#) #,&@ !(#%$& !(!&B';! $&/9"#(>!&# ( >"#(5% ,!#:#/,G:=! $&,% I%!5J&Z$[$ &#! ,'#)@'$&J ;$ +,>% #/#$5J&>>$##&>%"#$(% ,'#) #,&:

Figura 5.4. Aplicação de suavização na malha de um objeto “arredondado”.

% ,'#)@!#($%@&"#$%$&!! &i ($" %!%$& ($ ! 5#(8$&#( ! ! /%@&#( %> ,$&$#)%@&C'=:KD:%/#&% ,'#)>, $

>@! $&$#/,G:G:

/#&%> (5. (% $& '#9'# > > +, ! $&% ($ 5#(8$&#( '@&#( $!( : '#9'# Q>2< '@&#(

&#?$/,&,>Q>2< !(&#' $%# :+,/#&%")@(9(, Q3

!$& ($& +, "#$% ,!"B(# C#/, G:KD> "#$# $ #$ Q.Q2> /,# #$&! !$& % +, & $ #$ Q<: $& "# #$&,)# ! "(##& I#5# (7#/ % !&#(,> @ #/$ (% ",$ !,& (:

#/,G:K>9,%#, & ,!"B(#!%@&#( >($&$

Q3!$& ($& ,!"B(#:'> ",$(#$(%,% ,B &#(!/,% ,!"B(#-@)#(]5#(&#$/,:, !$& ($& 5<33> 53<3 533< !7!# '@&#( &#?$/, #/#$_ !$& ($& 5QQQ @ ,%

(64)

K=

-*22

-2*2

* -22*

*

/ - 2

4$E$EF*

5 - 2

4$E$EF*

6 -2

4**$E$EF*

7 -2

*4*$E*$E*F*

8 -2

*4*$E*$E*F*

9 - 2

4**$E$EF*

2

- 24- 24-2 4-2 4-2 4- 2F6

44*F*

-

4F

*D-*22:*4-2*2*4-22**4*- 2:4*- 2:4

*- 2:4*-2 4*-2 :4*-2 46-:

Figura 5.5. Algoritmo de mapeamento para o Curved PN Triangle.

(65)

KG

-$

)E &

%(& !#(H >@! B'$I' +,! %J,$ (#% I# &$&: ( > ,% &@($#( ,'#) (% . ! , (% %@&!! &! ,'#)%,%"%%# ! $#):

I%! (% . #/, G:P> % #/#$ ($&@% <PK %$& > ' ,&$&>Q3%#: ") # (&#) %$& %> "# ,&##) !(,'&,, #$# (&CN&:>2332D>%$(#$$<:R:

. >#%!%$& (%%@&S#/#$>&#$/<G $ $#) $ I%!: *9 (% %@& !! &> "#$%$& (% . &#$/ 24Q $ $#)>,%,%$&P<Ql:

#/,G:P>6 +,>5 '. %#/#$, !"#$%$&_6##&>

% ,&$& &@($#( "#$%$& "#& ! . : "#$%$&> "% ($"#/, +,& '@&#( % #/#$> "#% /,# / ,!"B(# (,' J($& C#/,G:RD: ($"#/,H > , CUD>CWD CdD>@%!?%&'&#VC'#2:<D:

Figura 5.7. Malha da cabeça de um boneco, sem refinamento e com refinamento ST-Mesh.

,& I%! "#$%$& % , $ &@($#( . @ #, & $

#/,G:4>$%,%J&@%$#!,!"#((% %# (,' :@%

(66)

KK

Figura 5.8. Vértices na malha onde os parâmetros de scalar tags são configurados.

Figura 5.9. Manipulação da malha de um jato por meio do ST-Mesh.

(67)

KP

-*

9.

%5@%@! B', ,& &@($#( "#$%$&%>(%>!I%!>,% &@($#(+,%!/,%@& !(,# :##@&5(%",$H %&%9&#( 59 #( C(% $,( $>!I%!D>!#$&,)#/,%&#!Z! ,.,B[$ #,& %:"#& 5 #,&%' !%@&#(>%+,!+,$ J, & $,%@#( ! % "#& "#% 5&"#& J:

& > ,% "#& +, !(, #%, ! $ ,!"B(# ,% ( @ ! $&:"#&&%!?%& %!#&,CZ&%$ ! [D"+,8$(#:#/, G:QQ! $&% ,&$& &@($#("#$%$&, $!?%&%!#&, (%): ,&/@,%( %! :

Figura 5.11. Malha resultante da aplicação de pelos, com amplitude 0.0.

@%>,%$&$%!#&, ! >J9@! B'5 ',%#"$'# ,$ % /: #/, G:Q2 I#5 % ,&$& !#( &@($#( ! (% ,%"+,8$(#Q:3%!#&, 3:3<C6 +,D3:3RC6##&D:

#/,G:Q<I#5% ,&$&!#(! (%,%"+,8$(#<:3

(68)

KR

Figura 5.12. Aplicação de pelos, com frequência 1.0 e amplitudes 0.03 e 0.08.

Figura 5.13. Aplicação de pelos, com frequência 3.0 e amplitudes 0.03 e 0.08.

/ #%/$ ( (% ! > "# ,&##) %@& "#$%$& !! & $ & # & % ($J,$& (% ,% /#&% %!%$& ($ > "#$# $ " "#$ %@&: %5 ! % !,)# %,#& '#H /#&%>,%' #%! @! $&$#/,G:Q=:

(69)

K4

* *

:

/

EGE4EGE*4E*GEF*

5 V

*

6 E

E4E 4E*:

7 D

4 4*:4VE

Figura 5.14. Algoritmo para geração de pelos.

/#&%> '#9' ! $& !?%& ( "+,8$(#> '#9' ! $& !?%& ( %!#&,: '#9'# > ($ 5#(8$&#( ($ # > '@&#( &#?$/, Q>2<_ !(&#' $%#

Q>2<:#$K")#$&!$%>>(%5 $ $%# %#/#$>

! #%!#"#(:#$G((,,%"&>V>+,@, !%''@&#(%+, &$ # $% : e # +, "9 (% +, !%> $ #,&> !#( / ! ",$ $, $ #$ Q.<:

"& +, ! !,)# ! ,% %@& !(, !%#& +, !?%& "+,8$(# %!#&, ! J% J, & "(#%$& % &%! > #$(, #' (% $#%: ,& ! , % !#(H J/ , # '#&,!$#+,(! $&/9"#(:

#/,G:QG % & ! ((%M#"% &#'C +,D

&#' C##&D: I%!> $]% %$& % #/#$ @ Q>G %#> % ($& & (% $]% <R3 %# %$& % ,&$&: !(#%$& $#)> $ ( > 5&@%. QQ2 (% %@& !! & 4 (% %@& S#/#$>'# ,//$(%,$#(.:

(70)

P3

Figura 5.15. Refinamento para simular pelos na silhueta da malha do coelho.

--

,

!#(%@&!! &(%% I#/$& ,%5'# (,

($(#& (#$ % : #%>&@($#(/%

@# (,&# /,#>!# % & !%$ !#( &@($#($%@& !! &:

%/#&%% !#(#$"%H /%@&#( &"+,8$(#$ ,!"B(# ,% %C)#%N.S ^ %$""> 233RD: !9&#(> "#& # @ #,%' 5 ,!"B(# 5J& $! $& C#/,G:QKD:

(71)

PQ

#/, G:QK> 6 +,>,% % ! $&$,% !( @ $#)

(% &I&, (> !@% % %$#!, /,% , #,&: h,$ !#( &@($#( % > !@%> % ,&$& "#( %,#& %# #(> &$$ ! $&/9"#(5J&%# "#:

/#&%% !&5%#"#($'@&#( ,%#"#($ !#I C% !(#>'# #5##,($&I&,, $!#ID:h,$ &5 (%'@&#( >(%. /#&% ' % _+,$ &5(% !#I > /#&%@ (% % :&@($#(, $ &

$(#I$/,!/#&% ' % :

!#(&@($#(% $'',%>+,@,%&I&,% ( (#$) : &I&,> ( !$& (/ #$&$ # &, ' $+, ! # C#/, G:QPD: +, &@($#( % ")@ ,&##) #$"%H ' !'$#$& ! ( '@&#( % ,% ,!"B(#: # (%$&($% %#'&$%6 ,!"B(#$!$&($ #> %/$#&, (%$&@!!(#$6#$&$ ##$#($:

Figura 5.17. Textura do height map e as alturas correspondentes de cada ponto.

&I&, ! ($ &,B '9# %$# : #/, G:QR> ,% +,%5&$ #$&$ # @% &:%CD>,% #@$ (#% &@ &( $ ,!"B(# /,% 5J&_ > % C5D> # &?$(# !(# ! ( # @ ! $& $ "% ,%&% (#$): #%> &%. ,% Z%!%$&[ ' $,% "%(%&$ (#$)>+,@!7!#:

(72)

P2

Figura 5.18. Coleta das informações de altura de um relevo.

, &@($#( % $ %@& "#$%$& % > @ $( 9#>!#%#%$&> !(#"#($B'# (&#) J!(!&%: h,$ # (&#) @ !#(> % "#( (% '9# '@&#( Z 5$[ $ % % !$ ,% "(: $&> ,% #%! (%$& ! # '@&#( @ ,"#(#$& ! /#$"%':#/,G:Q4#, & !( # (&#)$ ,!"B(# %: # (&#) @ !&&#'># & @>, !H &!7/#( !&&#' > +,!%#& +,,%!& J%# # (&#)+,,&:

#/,G:23>!#( #$"%H ',% !#( 5

# (&#)#/,G:Q4: ,&@ (%$& '@&#( >$#$%> ((%#$&$ #5&#:

(73)

P<

Figura 5.20. Aplicação do Displacement Mapping sobre a discretização da silhueta.

!#($ # (&#) % ,% % #$#(# 5 &$& #%! C#/, G:2QD> > % /,#> (%$& '@&#( ((%,%>5&@%. %"#$(%

% C#/,G:22D:

(74)

P=

Figura 5.22. Malha obtida com o relevo aplicado numa discretização não-uniforme.

@%>(%%@&"#$%$& ,5J($&6&@($#(% $ !#( ,!&!H &!7/#( !&&#' >'!#(! %# &% (& /#H +,%,& : "%>$#/,G:22>(#$#(!(B(,), "#!! #&%$&#I(%,%# (&#)%$>"#%#, &'5&#$ ($9# % ($& & (% ' #/, G:2<> $ & ,!"B(# "# # (&#) "% ,$#"%: #/, G:22 G:2<> #%/% 6 +, ! $& % % % #%/%6##&> $' +,% &(%M#"% &#'##& $:

(75)

PG

#$& %&,%&@($#(% #%!%$&(%,%%@& "#$%$& +, &5 (% # (&#)H !&&#' @ /$> !# !%#&> ! I%!> +,,%&$ J%# (&#)+,$!7I#%5 ':

]&#%I%! & @"&! &@#&,% 9,5$ C#/,G:2=D: "#/,> "&6 +, C&# D> @ /,%#%/% % ( (#$) >C6##&D>+,"$( #$"%H '&$:

Figura 5.24. As texturas usadas: foto via satélite e imagem do relevo.

% "& 5&# > @! B' / ,% % !% > % &$&$"%&##%$ #$C#/,G:2GD:

Figura 5.25. Superfície somente com a foto (esquerda) e somente com o relevo (direita).

(76)

PK

$&# @% & (%,% (%$&%# C6 +,D ,% (%$&%$C6 ##&D: !@# "& C#/, G:2=D> ! I%!> !% & , &, J, & "%:

Figura 5.26. Diferentes alturas do relevo aplicado na superfície da malha.

#/, G:2PG:2R% &%%"#$!%@&!! &(%%

!#(: "#/, > #%/% 6 +, % & % ,&$& (% M#"%&#'>>6##&>% %%(%M#"% &#':

(77)

PP

Figura 5.28. Outra visão do Displacement Mapping aplicado com foto de satélite.

-/

, ! .:

e! B'#%!%$&,$#% (% >,%

% 5 &$& #%! : !( (%!& @ #, & $#/, G:24> $; % CD> 5 '. %#/#$(5#!%@&_%C5D>5 '. %# (&#)!7 " !H _%C(D>5 '. % ,&$&!#(&@($#( %$&_ % CD> 5 '. ,& !#( &@($#( %

%$&_%CD>5 '. ,&!#((%5#$

(%% :#/,G:24">@% & , !5&$

,& #, & $ #/, G:24 G:24> (% +,& ' , $ !( (%$& '@&#( :

,$# (%% ( /,#$&"%;$"

%!%$& ($ >$"#$%@&"#$%$&>"). (9(,! > 5&$. ,% ! # "#$ _ % /,#> !#(. (%$& !'$#$&&@($#(% > > 5_5&$. > #%>+,"#$c

(78)

PR

Figura 5.29. Aplicação do Displacement Mapping com Curved PN Triangle.

#/,G:<3#, &,%&#?$/,5 &$&# (&#) ,5%&#%5 &@($#( !

%# +,%: % /%&# ,&$& ,% !#( (% @ "&%$&#$",$(#! $%# $ '@&#( >%! #$&&#'%$&%$#!,>

% %(%% >!%#,%%$, # $%# !!&, ,9#:

(79)

P4

#/,G:<Q#, &,%( $5#7/>(& % & "&/9"#( "

,% &%#$ !$& $ "% &I&, C#/, G:<2D> ! 5 ' $,% !#( /9"#( !(##)"%& ,#+,)& > %!# !(# #(%!: $', > ,J# ,& ((&B &#( " !% '#%$& " #%! %$& J, &$. !?%& %/$#&, (%$& !#( (% % : @% # > (% " !$& "# & %! $,% % &##%$ #$> , ((&B &#( !% (,# %$&5 ' !+,+,?$/,:

Figura 5.31. Refinamento com Displacement Mapping e Curved PN Triangle de uma folha.

Figura 5.32. Texturas usadas no refinamento da folha.

(80)

R3

Figura 5.33. Refinamento adaptativo da folha.

#/, G:<<> " !$& @ # (&#) %# "&%$& $ /# !7I#%

(B(,#$#(_ "%>!$ !&$5#7/ &95 '$(%%# &$ !I#%#@%# "#$> $ %# !& "!( (%,%# (&#) %$:

-4

, 9.

&I&,, (%! /&'@ ,%%@&!(,: > % ($J,$& (% ,% #%/% '/& &%5@% / ! %@& !(,> ((&#)# ,% , %# & &@($#( % %@& !(,# > (% #, & $#/, G:<=: %5 %@& !(,> !!#%$& #&> $ J !#( #&%$& 5 '@&#( ,!"B(#%>(% @"#&$G:=>@!#( #$#&%$&!%#% :

#/,G:<=>%##&@ ,&"#$%$&!#( 5%

+,: "#/,> ,% &I&, !(, "# !#( &$& $ "% ,% #%/% %! 5 ,!"B(# 5J& (% $ "% ,% ($&$#$"%H 5':

(81)

RQ

Figura 5.34. Aplicação de uma textura procedural com Displacement Mapping.

#/,G:<G>,%,&!$&'# &@% &!% %%"#$"#/,

$&#: , &I&, !(,# > % ($J,$& (% &@($#( % > %5 !#( !%@&"#$%$&!! &>&$. ,%"%$&%,#&"IB' &#%#)!/($&]/9"#(% #%,H J/ :,&I%! &@($#( @#, &$#/,G:<K:

Figura 5.35. Outro ponto de vista da aplicação de textura procedural.

(82)

R2

Figura 5.36. Aplicação de textura procedural na malha refinada de uma fruta.

-6

1 !

,%+, &$%$(&,>%@&! $&$ &# &@+,#(% S CS M#& M &&$ $ $ &$(#$/D> % ($& & (% %@& #/#$ S:5G:Q>,%(%! &#& S#/#$ (%S @! $& (%,& % @% I%! J9% & :

%& &! !,%%!#"#(/%@&#(;/#&%(5$& (% (& $]% %$& / ,% B %$& : j #$#( %!#"#(#): %!$$#)@%#%+, ! /,$C > D> ,%$& %!$ @ ((, (% ) #"$ %!$ $#) %@& S S: #' # (&#)H ,&##) (# "% &7#> !@% % ( (%! $& %@& > % %# (&#) % %% , : & & "%($,)# (%,% &$K=n22:KF)>=->(4K33>,&##)$!$:

Imagem

Figura 2.7. Adaptação feita pelo SUAPT na fronteira entre os padrões.
Figura 3.2. Versão moderna de uma pipeline gráfica com trechos programáveis.
Figura 3.3. Processamento de uma malha geométrica na GPU.
Figura 3.4. Processamento de elementos da malha por meio do Geometry Shader.
+7

Referências

Documentos relacionados

Assim, os investimentos em educação, saúde, culto, rendas e segurança públicas se voltam para a consolidação de seus interesses, trazendo a perspectiva da província do Rio

Parcial Graduação: Licenciatura em Ciências com Habilitação em Matemática Especialização: Ensino de Ciências Davi Emanuel de Lima Gestão da Parcial Graduação:

ᯤ Alguns canais transmitem mais de um programa, para ver to- dos os programas do canal se- lecionado pressione — “DASH” (controle remoto) e selecione o canal secundário

Encaixe o conector de entrada RS-232C (porta serial) a um dispositivo de controle externo (como um computador ou sistema de controle A/V) para controlar externamente as funções

Trata-se de uma pesquisa bibliográfica, fundamentada em pesquisas de autores que discutem sobre a contextualização da química na modalidade EJA, para leitura e

A cobertura de discos C ´ e um conjunto, conforme definido na se¸c˜ ao 2.2, calculado sobre os v´ ertices do grafo de conectividade. Os centros dos discos ser˜ ao utilizados como

•  Relevance feedback: usuários provêem informação sobre documentos relevantes para uma consulta...

Atividade geral total em ambiente enriquecido, em unidades de movimentação, de fêmeas (A) e machos (B) adultos tratados com 0,0; 5,0; 10,0 ou 15,0 mg/Kg de dantrolene por