Object Generator

download Object Generator

of 10

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;;