Object Generator
-
Upload
khoirul-anam -
Category
Documents
-
view
218 -
download
0
Transcript of Object Generator
-
7/26/2019 Object Generator
1/10
Pembuatan GeneratorRuled SurfacedanRotational Object Dengan
MenggunakanKurvaBezier danB-splines.
Liliana1), Kartika Gunadi1), Fricky Valiant2)
1) Dosen tetap Fakultas Teknologi Industri, jurusan Teknik Informatika, UK Petra
2) Alumni Fakultas Teknologi Industri, jurusan Teknik Informatika, UK PetraJl !i"alankerto 121#1$1 !ura%a&a
e#mail ' lilian(peterpetraaid , kgunadi(peterpetraaid
Abtract
As of toda&, plent& of ommon soft"are made in order to assist in making $D o%jet To some
e*tent, some displeasements are risen %eause of t+e laking a%ilit& of t+e soft"are in reating
a omple* o%jet, su+ as a ure T+erefore, soft"are t+at an make a omple* o%jet and
fle*i%le in make t+em, is needed T+is soft"are an %e a support soft"are for anot+er t+at
deals "it+ proessing o%jet in $D T+e er& purpose of t+is final projet is to make soft"are
so t+e user an reate %e-ier ure and %#splines ure From t+at ure, a%le to make anot+er
o%jet su+ as ruled surfae and rotational o%jet
T+e making of a ure is %& input its ontrol points T+at ure, t+an an %e use for making of
ruled surfae and rotational o%jet T+is final projet also an sae t+at o%jets to o%j files
format so t+at anot+er appliation an use t+e o%jets for furt+er proess Appliation "as
made using .orland Delp+i / programming language and 0pen li%rar&
3*perimental result of t+e soft"are s+o" promising result "+ere user is apa%le of making
%e-ier ure and %#splines ure, and use t+at ure to make ruled surfae and rotational
o%jet T+is soft"are an isuali-e all t+ose o%jet on $D
Ke&"ord'
4ure, 5uled !urfae, 5otational 0%jet, $D, OpenGL
Abtrak
!aat ini tela+ %an&ak perangkat lunak &ang digunakan untuk mem%antu pem%uatan o%jek $D
Akan tetapi se%agian %esar perangkat lunak +an&a memiliki kemampuan untuk meniptakan
o%jek#o%jek seder+ana &ang kemudian diga%ung#ga%ungkan atau diola+ le%i+ lanjut Karena
itu di%utu+kan perangkat lunak &ang dapat mem%uat o%jek &ang kompleks namun fleksi%el
dalam pem%uatann&a, se+ingga perangkat lunak terse%ut dapat menjadi soft"are pendukung
untuk soft"are pengola+an o%jek $D &ang le%i+ %esar Tujuan dari tugas ak+ir ini adala+
mem%uat perangkat lunak agar user dapat mem%uat kuraBezier danB-Splines, kemudian
kura terse%ut diola+ le%i+ lanjut se+ingga meng+asilkan ruled surface maupun rotational
objectPem%uatan o%jek kura dilakukan dengan menginputkan titik kontrol dari kura Kura &ang
ter%entuk dapat digunakan untuk meniptakan ruled surface serta rotational object 0%jek
&ang di+asilkan terse%ut dapat disimpan dalam format file o%j &ang selanjutn&a dapat
digunakan ole+ aplikasi pengola+an o%jek $D lainn&a Pem%uatan perangkat lunak ini
menggunakan %a+asa pemrogramanBorland Delphi 7dengan libraryOpenGL.
6asil pengujian menunjukkan %a+"a dengan menggunakan perangkat lunak &ang tela+
dikem%angkan ini userdapat menggam%ar kura beziermaupun B-Splines dan menjadikan
kura ruled surfacemaupun rotational objectdalam ruang $D
Kata kuni'
4ure, 5uled !urfae, 5otational 0%jet , $D, OpenGL
mailto:[email protected]:@peter.petra.ac.idmailto:[email protected]:@peter.petra.ac.id -
7/26/2019 Object Generator
2/10
1! Latar "elakang
Dengan adan&a kemajuan teknologi, terutama teknologi komputer maka %an&ak
%idang &ang memanfaatkann&a !ala+ satun&a adala+ %idang entertainmen &ang meliputi film,
iklan, animasi maupun game Kesemuan&a itu mem%utu+kan adan&a o%&ek &ang
dimanipulasi !e%elum komputer grafik %erkem%ang maka o%&ek &ang digunakan adala+
o%&ek &ang sesunggu+n&a se+ingga sering terjadi kesulitan menari o%&ek &ang sesuaidengan keinginan !etela+ komputer grafik %erkem%ang dan semakin maju maka o%&ek &ang
digunakan di%entuk dengan menggunakan reka&asa komputer Kele%i+an o%&ek &ang
direka&asa dengan menggunakan komputer adala+ %entuk &ang %isa disesuaikan dengan
ke%utu+an dan %ia&a pengadaan o%&ek &ang relatif le%i+ mura+
Dalam pemanfaatan komputer grafik untuk manipulasi o%&ek, ada dua jenis o%&ek
&ang %isa dimodelkan, &aitu o%&ek seder+ana dan o%&ek kompleks 0%&ek seder+ana
dimodelkan dengan menggunakan persamaan geometri, sedangkan o%&ek kompleks
dimodelkan dengan merangkai %an&ak segitiga menjadi satu kesatuan o%&ek 0%&ek
seder+ana muda+ dimodelkan tetapi %entuk &ang di+asilkan kurang %erariasi !edangkan
o%&ek kompleks le%i+ sulit dimodelkan tetapi %entukn&a sangat %erariasi Untuk
memodelkan o%&ek dengan ukup muda+ dan %entuk %isa %erariasi, %iasan&a digunakanga%ungan dari o%&ek seder+ana dan o%&ek kompleks Dua jenis metode pemodelan o%&ek
&ang muda+ ara pemodelann&a adala+ ruled surfacedan rotational object !edangkan untuk
meng+asilkan %entuk permukaan &ang le%i+ %erariasi, digunakan kura %e-ier dan %#splines
7antin&a o%&ek &ang di+asilkan di+arapkan %isa digunakan di aplikasi &ang lain
Untuk itu maka o%&ek akan disimpan se%agai file o%&ek dengan format o%j Kele%i+an dari
file dengan format o%j ini adala+ %an&ak digunakan dan tidak terlalu rumit pen&impanan
datan&a Format o%j juga muda+ untuk diu%a+ ke format o%&ek &ang lain
2! #eori Penun$ang
Dalam pem%uatan perangkat lunak di%utu+kan teori#teori &ang dapat menunjang
pem%uatan dari perangkat lunak terse%ut Dalam %agian ini akan di%a+as teori mengenai
kuraBezier, kuraB-Splines,Ruled Surface,danRotational Object
2!1! Kurva "e%ier
KuraBezierdi%entuk ole+ 8 %ua+ titik 1 titik %erfungsi se%agai titik a"al 9* :,&:), 1
se%agai titik ak+ir 9*$,&$) dan 2 titik &ang lain, &aitu 9*1,&1) dan 9*2,&2) %erfungsi se%agai titik
ontrol
KuraBezierpada dua dimensi ter%entuk dari dua persamaan &ang menentukan titik#
titik pada kura terse%ut, %erdasarkan nilai inputan t &ang nilain&a kontinu antara : sampai
dengan 1 Persamaan kesatu meng+asilkan nilaidan persamaan lainn&a meng+asilkan nilai
y Dengan meningkatn&a nilai dari t &ang disu%stitusikan kedalam persamaan, di+asilkantitik#titik +asil!t",y!t"&ang %ergerak dari titik a"al sampai titik ak+ir kura 9am%ar 1)
am%ar 1 KuraBezier
-
7/26/2019 Object Generator
3/10
Persamaan dari kuraBezierdapat dili+at pada persamaan 1 dan 2 '
!t" # at$% bt
&% ct % ' 91)
(# '% c) $
(% !c% b" ) $
$# '% c% b% a
y!t" # ayt$% byt
&% cyt % y' 92)
y(# y'% cy) $
y y(% !cy% by" ) $
y$# y'% cy% by% ay
Persamaan 1 dan 2 dapat di%alik untuk mendapatkan nilai dari setiap koefisienn&a, se+ingga
menjadi '
c# $ !(- '"
b# $ !&- (" - c
a# $- '- c- b
cy# $ !y(- y'"
by# $ !y&- y(" - cyay# y$- y'- cy- by
2!2! Kurva "&'(line 9.ourke, Paul, 1;;
-
7/26/2019 Object Generator
4/10
.e%erapa elemen penting pada pem%entukan kuraB-Splinesadala+ '
Derajat 9p) # mengatur se%erapa dekat kura terse%ut mele"ati titik kontrol dari
kuraB-Splines !emakin keil derajat dari kuraB-Splinesterse%ut, maka semakin
dekat pula kura terse%ut akan mele"ati titik#titik kontrol pem%entukn&a, dan
se%alikn&a apa%ila derajat kura terse%ut semakin %esar, maka jarak titik kontrol
kura dengan kura akan semakin jau+ Blendin* function atau basis function 97) > merupakan fungsi &ang menentukan
se%erapa %esar lengkungan dari kura B-Splines, &ang dipengaru+i ole+ %esarn&a
derajat, knot ektor dan t
am%ar 2 adala+ %e%erapa onto+ kura B-Splines &ang memiliki 8 %ua+ titik
kontrol, dengan derajat p = 1, 2 dan $ p = 1 +an&ala+ %erupa garis lurus, dengan
meningkatn&a derajat, maka %entuk kura akan menjadi semakin +alus
am%ar 2 KuraB-Splines den*an derajat 9p) &ang %er%eda#%eda
aris putus#putus pada gam%ar 2 menunjukan garis poligon &ang ter%entuk dari 8
titik kontrol kura &ang ada, sedangkan garis lurus adala+ kura B-Splines Dapat dili+at
%a+"a kura B-Splines &ang ter%entuk %erada pada cone hull dari titik kontrol Pada
gam%ar %erikut ini, se%ela+ kiri menunjukkan kura B-Splines&ang memiliki titik kontrol
a"al dan ak+ir &ang sama, &aitu pada pojok kiri %a"a+ Kura B-Splinespada se%ela+ kananmemiliki titik kontrol a"al dan ak+ir &ang sama tetapi pada %agian tenga+ %a"a+
am%ar $ KuraB-Splinesdengan titik kontrol a"al dan ak+ir &ang %er+impit
!ama seperti am%ar $ se%ela+ kanan, am%ar 8 menunjukkan %e%erapa onto+
kura B-Splines dengan derajat &ang %er%eda#%eda dan titik kontrol a"al dan ak+ir &ang
%er+impit dan %erada di %agian tenga+ %a"a+
-
7/26/2019 Object Generator
5/10
am%ar 8 KuraB-Splinesdengan derajat &ang %er%eda dan titik kontrol a"al dan ak+ir
&ang %er+impit
2!! *ule 'ur+ace dan *otational b$ect
Ruled surfaceadala+ o%&ek $D &ang %erupa suatu permukaan !e%ua+ permukaan
dise%ut ruled jika setiap titik pem%entukn&a dilalui setidakn&a satu garis &ang terletak pada
permukaan terse%utRuled surfacemempun&ai %entuk parametrik seperti pada persamaan 8( ) ( ) ( ) ( )u.pup..up 1:1, += 98)
Dimana '
p:, p1 ' dua %ua+ kura &ang terletak di ruang $D
u ' aria%le &ang me"akili kura &ang di%uat .iasan&a
din&atakan dalam derajat
' aria%le dengan range nilai : sampai 1 Digunakan
untuk me"akili "aktu
Ruled surfaceterdiri dari garis > garis lurus &ang meng+u%ungkan setiap pasang titik
&ang %erkoresponden dari kedua kura &ang suda+ diinputkan !eara garis %esar, ruled
surfacedi%agi menjadi tiga kelompok, seperti dise%utkan dalam ?1@, &aitu'
a !ilinder!ilinder di+asilkan dari se%ua+ garis L &ang dise%ut *enerator &ang
men&usuri se%ua+ kura &ang dise%ut directri !elama men&usuri, garis selalu
paralel ter+adap dirin&a sendiri .entuk silinder tampak pada gam%ar !edangkan
%entuk parametrikn&a menjadi persamaan ( ) ( ) .dup.up += :, 9)
Dimana d adala+ jarak antara dua kura &ang paralel
am%ar Ruled Surface!ilinder
% Keruut
Keruut di+asilkan ole+ se%ua+ garis &ang %erpinda+ di sepanjang kura
datar tetapi garis terse%ut mele"ati suatu titik tertentu Titik inila+ &ang menjadi
ujung keruut 5uled surfae keruut dapat dili+at pada gam%ar
-
7/26/2019 Object Generator
6/10
am%ar
mula di%entuk garis dari setiap dua titik Kemudian dari garis &ang ter%entuk, di%uat
ruled Karena proses meng+u%ungkan dua titik terjadi dua kali sekaligus, maka
dise%ut %ilinear pat+ .entuk parametrik dari %ilinear pat+ adala+'
( ) ( ) ( )( )
( )( )8$1
2111,
uppu.
uppu..up
+
++=
9/)
Dimana '
p1,p2,p$,p8 ' empat titik &ang digunakan untuk mem%entuk kura
u ' digunakan untuk mem%entuk garis antara p1 dengan p2 dan garis antara p$
dengan p8
' digunakan untuk mem%entuk permukaan antara garis pertama dan garis kedua
am%ar /Ruled Surface.ilinear Pat+
Ruled surface &ang di%entuk dengan menggunakan kura &ang teratur %isa juga
di+asilkan dengan Rotational Object. Rotational Object adala+ se%ua+ kura &ang rotasi
ter+adap sala+ satu sum%u koordinat se+ingga meng+asilkan se%ua+ o%&ek &ang simetri
ter+adap sum%u terse%ut Untuk melakukan rotasi pada sum%u *, matrik dapat dili+at pada
persamaan C, rotasi pada sum%u & dapat dili+at pada persamaan ; dan rotasi sum%u - dapat
dili+at pada persamaan 1: Ara+ putaran ter+adap sum%u * dapat dili+at pada gam%ar C,ter+adap sum%u & dapat dili+at pada gam%ar ; dan ter+adap sum%u - dapat dili+at pada
gam%ar 1:
-
7/26/2019 Object Generator
7/10
1 : : :
: os sin :
: #sin os :
: : : 1
5*=
os : #sin :
: 1 : :
sin : os :
: : : 1
5&=
am%ar ; !um%u Putar E
am%ar C !um%u Putar
9C)
9;)
-
7/26/2019 Object Generator
8/10
Belalui matrik#matrik terse%ut diatas, o%jek#o%jek dalam ruang $
! Pengu$ian
Dilakukan uji o%a dalam menggam%ar se%ua+ kura Bezier &ang terli+at pada
gam%ar 11, dimana titik#titik &ang terli+at adala+ ke#8 titik kontrol pem%entuk kura .e-ier
terse%ut Detail o%jek#o%jek &ang terdapat pada gam%ar 11 adala+ se%agai %erikut '
(. KuraBezier
Titik Kontrol 1 = #1 1 1
Titik Kontrol 2 = # : : :
Titik Kontrol $ = : 1 :
Titik Kontrol 8 = 1 : :
am%ar 11 KuraBezier
am%ar 12 menunjukkan +asil pem%entukan rotational object&ang terjadi apa%ila
dilakukan perputaran ter+adap kura bezier&ang ter%entuk seperti pada gam%ar 11 am%ar
12a %entuk rotational objectdengan sum%u * se%agai sum%u putar am%ar 12% %entuk
rotational objectdengan sum%u & se%agai sum%u putar am%ar 12 %entuk rotational object
dengan sum%u - se%agai sum%u putar am%ar 12d %entuk rotational objectdengan garis &=1
se%agai sum%u putar Detail setiap rotational objectpada gam%ar 12 adala+ '
# Angle From = :
# Angle To = $
-
7/26/2019 Object Generator
9/10
# !keleton = true
# isi%le = true
am%ar 12 5otational 0%jet Dari Kura .e-ier pada gam%ar 11Dalam pengujian Ruled Surface silinder di%utu+kan dua %ua+ kura &ang akan
menjadi komponen pem%entukRuled Surfacesilinder Pada gam%ar 1$ erli+at penggam%aran
Ruled Surface silinder, dimana kura pertama iala+ kura Bezier dan kura kedua adala+
kuraB-Splines am%ar 1$a adala+ penggam%aranRuled Surfacesilinder pada saat aria%el
skeleton %ernilaifalsedan gam%ar 1$% adala+ penggam%aranRuled Surfacesilinder pada saat
aria%el skeleton %ernilai true 0%jek#o%jek &ang tergam%ar pada gam%ar 1$ adala+ se%agai
%erikut '
(. KuraBezier
Titik Kontrol 1 = #1 1,C #:,
Titik Kontrol 2 = #: 1,$ #1
Titik Kontrol $ = : :,2 :
Titik Kontrol 8 = 1 1 :
& KuraB-Splines
Derajat = $
Titik Kontrol 1 = #1 1 1
Titik Kontrol 2 = #: : :
Titik Kontrol $ = : 1 :
Titik Kontrol 8 = 1 :, 1,$
Titik Kontrol = 1 : 1
$ Ruled Surface!ilinder
-
7/26/2019 Object Generator
10/10
Kura1 = :
Kura2 = 1
4olor = l"+ite
isi%le = true
!keleton = a) False %) True
am%ar 1$ Per%andinganRuled Surface!ilinder
-! Keim(ulan
Dari +asil pengujian &ang tela+ dilakukan dapat diam%il %e%erapa kesimpulan
se%agai %erikut'
# .entuk kuraBezierdan kuraB-splinesderajat $ dengan 8 titik kontrol +ampir sama,
namun setela+ diteliti le%i+ jau+, koordinat titik#titik pem%entuk kedua kura terse%ut
terdapat sedikit per%edaan
# !emakin %an&ak titik kontrol pada kura .#!plines, maka lengkungan kura terli+at le%i++alus %ila derajat kura .#!plines terse%ut semakin %esar
# Derajat kura .#!plines &ang terlalu %esar karena %an&akn&a titik kontrol pem%entuk
kura, maka akan men&e%a%kan aplikasi %erjalan lam%at 6al itu dikarenakan proses
per+itungan kura .#!plines pada aplikasi ini menggunakan fungsi &ang %erjalan seara
rekursi .atasan untuk derajat kura .#!plines pada aplikasi ini se%esar 1:
.! Da+tar Putaka
B-Spline cures 9nd) Desem%er 1:, 2::
+ttp'"""doiaukdfgAnd&s!plineTutorial.!plines+tml
Bezier cures 9nd) Desem%er 1:, 2::
+ttp'"""doiaukdfgAnd&s!plineTutorial.e-ier+tml.ourke, Paul 97oem%er 1;;