!"#$%$&
!&&#' $
#($)
*+,#%-$&'($&.& &,/, &#
# & &
2
#($)
!"#$%$&
!&&#' $
# & ,5%$, 7 .,% #8$(#%!,&$#' #9(%+,# #& !(#!5&$/, &%#8$(#%!,&: #$& ;*+,#%-$&'($&.& &,/, &#
<
=
% !#%# ,/> 5% &$ , > +, % , ?$#% +,$ $( 9# % /,#,%%%$& !& '$&,# :
%, !# ># $) $#(:$) >! %! &5 : "# @,%!#'#@/#+,,%,#%(%!&#% :A%#$$%>%#/ (%!$#>#(>!(%!$ > &B%,!(#8$(#:
%, #$& > *+,#% -$& & #> ! ($"#$> !# ($(#%$& ! : %, (/ %#/ +, % % ,% %5#$& / #$&#/$&$,$#' #:
AC$#' #9D>!$ #$>+C$ (#$ $''#%$&#$&B"#(($7/#(D>!!#"#$$(#:
G
& %!$( ($&, , %($# % !/%&8% &#%, #' !#(H /9"#( #'#&, I! % !&$(# # ! #&#'!($$B'# %# & # %:5 &8% ,/#(%,%$"+, $"#$%$& #,&% /%@&#( > 5, ($I! % ,!"B(# 5J& &##%$ #$# $ ! $& : &#! "#$%$& !#( ! > ! I%!> ,% ,'#) % 5,& ,% '&> ! %# #$&! ,% ,!"B(#(,' 5 , "( :##59 #(@"),%# (&#)!&&#'% 5J& $& / ,% $' #,& , $ # (&#): @& $&# $# ! $& %# +,J,$& "%%@&!! &: %!$ 5&#@ ,!#'#,%I!%!# %>&@($#(!! & ",$(#$ ,"#(#$&%$& 5% (% % I# &$& % $( # !J& $' % !# :
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 &. #%$ #$% :
P
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:#$(#!# $,#H ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::RG K:2:5 ,&, :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::RK "8$(# -#5#/9"#( ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::RP !8$#(:%$& ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::43 !8$#(-:%!%$& :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::4<
4
Q3
#/,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
Q2
5=:Q:5&$!H %",$ !%,&H %C,>'>MD#) : ::::::::::::::::: =K 5=:2:%,&H C,>'>MD!('T:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: G2 5G:Q:%!%@&S(%' !! &$ &&5CSD:::::: R<
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 &#(:
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!# /%J&>/$.,%$' #,&"#%,%$& ,I! #'#: &#! &@($#( #)> !&$&> ,% B$& /%@&#( (% 5 $,% % I# &$&: !( ( ! $. ,% % $& (% !?%& ! ,% ",$>+,#9($,)#'#"#$%$&!/%"#$C#/,Q:GD:
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:
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&, > ,%!#(%@&"#&%&%!:
QP
$
%
&$& & # & &9 /$#) /,#$& "%; !B&, 2 && &5 (#$ ") ,% # (, (%!&#' $& _ !B&, < I!#(/,$ !#$(#!# ($(#& $''# $ %@&_ !B&, = && & &@($#( !! &_ !B&, G % & ,& > ")$ ,% (%! # (,&#$ %!$/%@&_!B&,K! $& ($(, H &5 ",&, :
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.
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'# !(%$&
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.
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
%@& 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
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: %@&, (, !# % &,# >(%+>"#%,%$& %!$+,$(%! %# %@& :
2=
#$'@ , !H !&&#' (%$ %@& S >%@& , !H ,$#"% >% ")(%,%&#$$+,#)>%&%!I(,> '#!&$&,%/#,&C#/,2:PD>+,%$&@%%($"%: "#/,> !$& #$#( %), '#%$&%'# #%(!&:
!& "#& $ % "#$ /$& (%!## $& & /#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:
2G
"/
0
(!B&,! $&,,%'# / 5 &5 9: !#$(#!# %@& S> :S@,%',,%&5$&#> ,!#/% % &, ,% &$ #( ! I!: ,/#, !# S> !(,$ I! ,% !$& $ S "(: > &%5@%> ,/#, !# S> I!,%,%(, !# %+, &'# !$B'$ %# $' :
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.
2P
!#!#$ /9"#( %$ C#/, <:2D &( !/%9'# (%
' , :!/%I(,&$' "),%%$#!,
( '@&#( %>@I(,&# %$&!('@&#(# !( :
,%%($&@%'@&#( >$&I(,H !/% (#' #) ! %%+, &:%(I(,>!/%(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>
% ! !' > $ ( ,% , '@&#( @ !( "% ( !& , ,& %#"#( :#/,<:<(>$#)%@"#&>!#I..!#I>
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"#(: (, # > "#%. +, & !( !#%#&#' > (% &#?$/, > , %$& ,%%&#$/,#):
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:
<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 :
<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&#' &@($#( @> !&$&> #%! %$&&#%#)!( %$&%:
<2
% # (, 5 ($(#& &@($#( "#$#)> ($(#& % /%&#(#$ (% &# & /'#%$&! $& :
$-
( &
((%&%#$/#C#,&:>233<D>,%%! '# &(%,% &#! !(#/"$ $7 (/%#$"%H 5 ,& '@&#( >(% ! #>$%>&(: $& ! !(&#'>"#$%$&% #'# & #%! %$& (% ,% #$ $7 $ /" %_ (% J, & % # ,% %$#!, ,& +, &$ $7 C% !(#>,&! #'@&#(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>&%.
<<
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:
<=
(#%%# (&#)>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:
<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 &#>
<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%!%$#!,%>$% %%#$#(#>(%
<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> $#
<R
!(&#' & % $& $& , ' ! &%#$+,! &!7/#( (:
@%>%&% #%!%$&$ # &% /9"#( &,# >@%# #%! &,% ,&!('@&#(%+,!( &: #/$#"#(+,@%# "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.
<4
+, @ , ! (#$ ! &!7/#( ( !$$&: +, &> /> @ (% &%#$ ,&# (&#)>>('@&#(:
(,%$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>,%' ($"%% %:
=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.
=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&,:
=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#:
=<
*"
:!.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).
==
(%!$(%'% "#& !%,&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:
=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 !%$&[;
=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.
=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.
=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:
=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:
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 .
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:
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[ $ !#%#(,$*% %>"%$ #%,%(#(:
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:
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+:
GG
Figura 4.13. Processamento de elementos agrupados em lotes, por meio do Instancing.
,%#%!%$&#$#(# /,!%$&!H >"). ,% #%! ', %$& %> #%>(&. +,# !H , $# (&#)%: %')+, #$"%H &$% #(& >(#. ,%/,!%$&!(! # &#$&X#>J>OY $, >#(#$. $ /,!%$& "8$(# %$& % (# &# !H :#/,=:Q=#, & #%!%$&:
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 :
GP
/,!%$& !(!5 $,&##):#/,=:QG#, & ,& $'#%!%$&:
Figura 4.15. Implementação otimizada do agrupamento de padrões.
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 %(%,%:
*/
% &
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'# >:'@&#(
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
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@%:
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(%%@&!! &:
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 @ ,%
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.
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&@%$#!,!"#((% %# (,' :@%
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.
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
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=:
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#/#$>'# ,//$(%,$#(.:
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:
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!#:
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&#:
P<
Figura 5.20. Aplicação do Displacement Mapping sobre a discretização da silhueta.
!#($ # (&#) % ,% % #$#(# 5 &$& #%! C#/, G:2QD> > % /,#> (%$& '@&#( ((%,%>5&@%. %"#$(%
% C#/,G:22D:
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#"% &#'##& $:
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).
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#"% &#':
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
PR
Figura 5.29. Aplicação do Displacement Mapping com Curved PN Triangle.
#/,G:<3#, &,%&#?$/,5 &$&# (&#) ,5%&#%5 &@($#( !
%# +,%: % /%&# ,&$& ,% !#( (% @ "&%$&#$",$(#! $%# $ '@&#( >%! #$&&#'%$&%$#!,>
% %(%% >!%#,%%$, # $%# !!&, ,9#:
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.
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':
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.
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>,&##)$!$: