Laporan Praktikum Dhani

Embed Size (px)

DESCRIPTION

laporan pratikum komputer grafiksri ramadhani1214370338

Citation preview

  • 1

    LAPORAN PRAKTIKUM

    KOMPUTER GRAFIK

    Nama

    praktikan

    Nomor

    mahasiswa

    Tanggal

    kumpul

    Tanda tangan

    praktikan

    Sri Ramadhani 1214370338 12 juni 2014

    Nama Penilai Tanggal

    koreksi

    Nilai Tanda tangan

    Dosen

    Indri Sulistianingsih, S.kom 12 juni 2014

    Universitas Pembangunan Panca Budi

    Fakultas Teknik

    Jurusan Sistem Komputer

    Medan

    2014

    KELAS

    TI4-D SORE

  • 2

    KATA PENGANTAR

    Segala puji syukur saya ucapkan kehadirat Allah SWT, atas berkat rahmatnya penulis

    dapat menyelesaikan tugas Laporan Praktikum Kompuer Grafik guna memenuhi syarat

    dalam menyelesaikan tugas UAS (ujian akhir semester), Adapun pembuatan laporan ini

    ditujukan untuk penyelesaian tugas untuk mata kuliah Grafika Kmputer Program studi

    Teknik Perangkat Lunak FTEKNIK UNHALU, lain juga sebagai pengantar kepada kita

    untuk lebih mengerti tentang OpenGL dan Penggambaran Obyek dengan OpenGL selain itu

    untuk menambah khasanah keilmuan tentang bahasa pemrograman yang lebih berminat pada

    bidang pemrograman.

    Penulis menyadari baahwa laporan ini masih jauh dari kesempurnaan dan masih

    banyak kekurangan, baik dari segipenulisan maupun dari tata bahasa,oleh karena itu penulis

    mengharapkan kritik dan saran kepada ibu . atas bimbingannya saya ucapkan terima kasih.

    Medan, 12 juni 2014

    Penulis

  • 3

    DAFTAR ISI

    Kata Pengantar . 2

    Daftar isi ... 3

    BAB I PENDAHULUAN

    I.I latar Belakang . 4

    I.II tujuan . 4

    BAB II LANDASAN TEORI

    I.I Transformasi 2 dimensi .. 6

    I.II Transformasi 3 dimensi 7

    I.V Defenisi 3 dimensi ....10

    I.V pengertian dari OpenGL .. 13

    BAB III HASIL PERCOBAAN

    1. Primitif drawing . 17

    2. Contoh 2 dimensi dan 3 dimensi 25

    BAB IV

    Analisa percobaan .. 29

    Penutup .. 30

    Saran .. 30

    Daftar pustaka ... 31

  • 4

    BAB I

    PENDAHULUAN

    1.Latar belakang

    Grafik komputer adalah bagian dari ilmu komputer yang berkaitan dengan

    pembuatan dan manipulasi gambar (visual ) secara digital. Dengan adanya kemajuan

    teknologi, terutama teknologi komputer maka banyak bidang yang memanfaatkannya. Salah

    satunya adalah bidang entertainmen yang meliputi film, iklan, animasi maupun game.

    Kesemuanya itu membutuhkan adanya obyek yang dimanipulasi. Sebelum komputer grafik

    berkembang maka obyek yang digunakan adalah obyek yang sesungguhnya sehingga sering

    terjadi kesulitan mencari obyek yang sesuai dengan keinginan. Setelah komputer grafik

    berkembang dan semakin maju maka obyek yang digunakan dibentuk dengan menggunakan

    rekayasa komputer. Kelebihan obyek yang direkayasa dengan menggunakan komputer adalah

    bentuk yang bisa disesuaikan dengan kebutuhan dan biaya pengadaan obyek yang relatif

    lebih murah.

    Dalam pemanfaatan komputer grafik untuk manipulasi obyek, ada dua jenis obyek

    yang bisa dimodelkan, yaitu obyek sederhana dan obyek kompleks. Obyek sederhana

    dimodelkan dengan menggunakan persamaan geometri, sedangkan obyek kompleks

    dimodelkan dengan merangkai banyak segitiga menjadi satu kesatuan obyek. Obyek

    sederhana mudah dimodelkan tetapi bentuk yang dihasilkan kurang bervariasi. Sedangkan

    obyek kompleks lebih sulit dimodelkan tetapi bentuknya sangat bervariasi. Untuk

    memodelkan obyek dengan cukup mudah dan bentuk bisa bervariasi, biasanya digunakan

    gabungan dari obyek sederhana dan obyek kompleks. Untuk menghasilkan bentuk

    permukaan yang lebih bervariasi, dapat digunakan kurva bezier. Bahasa pemograman

    Delphipun juga dapat digunakan.

    2.Tujuan praktikum

    Mahasiswa mampu menggambar objek 2 dimensi dan 3 dimensi menggunakan bahasa

    pemrograman visual C++ dan OpenGL

    Mahasiswa mampu mengimplementasikan fungsi transformasi 2 dimensi dan 3

    dimensi.

  • 5

    BAB II

    LANDASAN TEORI

    I.I TRANSFORMASI DUA DIMENSI

    a. Translasi

    Translasi dilakukan dengan penambahan translasi pada suatu titik koordiant dengan

    translation vector atau shif vector yaitu (tx, ty).

    Translasi adalah transformasi dengan bentuk yang tetap memindahkan objek apa adanya.

    Titik akan di translasi akan di pindahkan ke lokasi menurut garis lurus.. obyek grafik 2D,

    dalam hal ini di gunakan bentuk struktur (type data oracle) dan array. Menggambarka

    obyek 2D yang sudah di tentukan.

    b. Rotasi

    Rotasi 2 dimensi memindahkan sebuah obyek menurut garis melingkar. Untuk melakukan

    rotasi di perlukan sudut rotasi a dan pivot point. Nilai positif dari sudut rotasi

    menentukan arah rutasi berlawanan dengan arah jarum jam.sedangka sudut rotasi negatif

    memutar objet searah jarum jam.

    I.II DEFENISI OBYEK 2 DIMENSI

    Grafik komputer 2 dimensi biasa disebut dengan 2D atau bidang adalah bentuk dari benda

    yang memiliki panjang dan lebar. Grafik 2 Dimensi merupakan teknik penggambaran

    yang berpatokan pada titik koordinat sumbu x (datar) dan sumbu y (tegak). Agar dapat

    tampil dengan sempurna, gambar yang akan ditampilkan dengan teknik ini harus

    memiliki nilai koordinat x dan y minimum 0 dan maksimum sebesar resolusi yang

    digunakan.

    2 Dimensi Dalam Komputer Grafik

    a. Grafik komputer 2 dimensi

    Yaitu sebuah generasi gambar digital berbasis komputer. Yang kebanyakan

    mengambil objek 2 dimensi. Model Grafik 2D merupakan kombinasi dari

    model geometri (juga disebut sebagai grafik vektor), gambar digital (raster

  • 6

    graphics), fungsi matematika, dan sebagainya. Komponen-komponen ini dapat

    dimodifikasi dan dimanipulasi oleh transformasi geometri dua dimensi, Cara

    yang paling mudah untuk membuat sebuah gambar 2D kompleks yaitu dimulai

    dengan sebuah "canvas" kosong yang diisi dengan warna latar tertentu, yang

    kemudian kita "draw", "paint", atau "paste" suatu warna kedalamnya, dengan

    urutan-urutan tertentu. Intinya, kanvas tersebut merupakan "frame buffer" atau

    bayangan dari layar komputer.

    Model-model yang digunakan pada disain grafis 2D biasanya tidak

    mendukung bentuk-bentuk tiga-dimensi, atau fenomena yang bersifat tiga

    dimensi, seperti pencahayaan, bayangan, pantulan, refraksi, dan sebagainya.

    Namun demikian, mereka dapat membuat model berlapis-lapis (layer); nyata,

    translusen, dan transparan, yang dapat ditumpuk dalam urutan tertentu.

    Banyak antarmuka grafis atau yang kita kenal dengan GUI (Grapical User

    Interface) yang berbasiskan model grafis 2D. Software-software yang

    mendukung GUI dapat menciptakan "keadaan visual" dalam berinteraksi

    dengan komputer, sehingga para pengguna tidak selalu harus melihat tulisan.

    Grafik 2D juga penting bagi kendali peralatan-peralatan semacam printer,

    plotter, shredder, dan sebagainya. Mereka juga digunakan pada beberapa video

    dan games sederhana seperti solitaire, chess, atau mahjong.

    I.III TRANSFORMASI 3 DIMENSI

    Grafika komputer 3D menggunakan matriks 4x4 untuk mengubah dan mentayangkan model

    3D dalam bentuk citra 2D. Grafika komputer 3D memiliki 5 jenis dasar matriks transformasi:

    Matriks model (Model matrix): Menyimpan orientasi dan posisi model relatif

    terhadap suatu posisi.

    Matriks pandangan (View matrix): Menyimpan transformasi pandangan relatif

    terhadap posisi asal (yang bernilai (0,0,0)).

    Matriks proyeksi (Projection matrix): Menyimpan transformasi untuk mengubah

    ruang 3D menjadi citra 2D, dan sebaliknya.

    Matriks dunia (World matrix): Menyimpan orientasi dan posisi suatu posisi relatif

    terhadap posisi asal.

  • 7

    Matriks lokal (Local matrix): Menyimpan orientasi dan posisi suatu posisi relatif

    terhadap suatu posisi lain.

    Saat penayangan citra, kamera pandangan digunakan sebagai kerangka acuan ruang maya.

    Apabila kamera harus berpindah (translate) sejarak +10 unit di Poros-Z, maka seluruh model

    di ruang maya harus berpindah -10 di Poros-Z. Jadi, kamera sebenarnya tidak berpindah,

    melainkan ruang maya yang berpindah. Setiap benda (termasuk kamera) grafika komputer

    mempunyai matriks model yang menyimpan posisi dan orientasi model. Sementara, kamera

    juga memiliki matriks pandangan dan proyeksi. Matriks dunia dan matriks lokal tidak wajib

    diperlukan, dan bisa dianggap bernilai identitas.

    Berikut adalah contoh transformasi matriks dengan kode palsu OpenGL:

    void Draw(void)

    {

    glMatrixMode(GL_PROJECTION);

    glLoadIdentity();

    glViewport(0,0,1024,768);

    gluPerspective(45.0f,(GLFloat)(1024)/(GLFloat)(768),0.125f,1024.0f); /* Kode

    viewport di sini, transformasi matriks proyeksi di sini*/

    glMatrixMode(GL_MODELVIEW);

    glLoadIdentity();

    gluLookAt ( 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,-1.0f, 0.0f, 1.0f, 0.0f); /* Kode kamera,

    transformasi matriks pandangan */

    glTranslatef(1.0f,2.0f,3.0f); /* Kode perpindahan, transformasi matriks dunia */

    glPushMatrix();

    {

    glTranslatef(4.0f,5.0f,6.0f); /* Kode perpindahan, transformasi matriks lokal */

    glPushMatrix();

    {

    glTranslatef(7.0f,8.0f,9.0f); /* Kode perpindahan, transformasi matriks model */

    DrawModel(); /* Menggambarkan model nomor 1 */

  • 8

    }

    glPopMatrix();

    glPushMatrix();

    {

    glTranslatef(7.0f,8.0f,9.0f);/* Kode perpindahan, transformasi matriks model */

    DrawModel(); /* Menggambarkan model nomor 2 */

    }

    glPopMatrix();

    }

    glPopMatrix();

    glPushMatrix();

    {

    glTranslatef(10.0f,11.0f,12.0f);/* Kode perpindahan, transformasi matriks lokal */

    glPushMatrix();

    {

    glTranslatef(13.0f,14.0f,15.0f);/* Kode perpindahan, transformasi matriks model */

    DrawModel(); /* Menggambarkan model nomor 3 */

    }

    glPopMatrix();

    glPushMatrix();

    {

    glTranslatef(16.0f,17.0f,18.0f); /* Kode perpindahan, transformasi matriks model

    */DrawModel(); /* Menggambarkan model nomor 4 */

    }

    glPopMatrix();

    }

    glPopMatrix();

    }

  • 9

    I.IV DEFENISI 3 DIMENSI

    Grafika komputer 3D (Inggris: 3D Computer graphics) adalah representasi dari data

    geometrik 3 dimensi sebagai hasil dari pemrosesan dan pemberian efek cahaya terhadap

    grafika komputer 2D. Hasil ini kadang kala ditampilkan secara waktu nyata (real time) untuk

    keperluan simulasi. Secara umum prinsip yang dipakai adalah mirip dengan grafika komputer

    2D, dalam hal: penggunaan algoritma, grafika vektor, model frame kawat (wire frame

    model), dan grafika rasternya.

    Grafik 3 Dimensi merupakan teknik penggambaran yg berpatokan pada titik koordinat sumbu

    x(datar), sumbu y(tegak), dan sumbu z(miring).Representasi dari data geometrik 3 dimensi

    sebagai hasil dari pemrosesan dan pemberian efek cahaya terhadap grafika komputer 2D.

    Tiga Dimensi, biasanya digunakan dalam penanganan grafis. 3D secara umum merujuk pada

    kemampuan dari sebuah video card (link). Saat ini video card menggunakan variasi dari

    instruksi-instruksi yang ditanamkan dalam video card itu sendiri (bukan berasal dari

    software) untuk mencapai hasil grafik yang lebih realistis dalam memainkan game komputer.

    Grafika komputer 3D sering disebut sebagai model 3D. Namun, model 3D ini lebih

    menekankan pada representasi matematis untuk objek 3 dimensi. Data matematis ini belum

    bisa dikatakan sebagai gambar grafis hingga saat ditampilkan secara visual pada layar

    komputer atau printer. Proses penampilan suatu model matematis ke bentuk citra 2 D

    biasanya dikenal dengan proses 3D rendering.

    Grafik 3D merupakan perkembangan dari grafik 2D. Didalam grafika komputer, 3D

    merupakan bentuk grafik yang menggunakan representasi data geometri tiga dimensi.

    Suatu objek rangka 3D apabila disinari dari arah tertentu akan membentuk bayangan pada

    permukaan gambar.

    Proses pembuatan grafik komputer 3D dapat dibagi ke dalam tiga fase, yaitu 3D modeling

    yang mendeskripsikan bentuk dari sebuah objek, layout dan animation yang mendeskripsikan

    gerakan dan tata letak sebuah objek, dan 3D rendering yang memproduksi image dari objek

    tersebut.

    Di dalam dunia game, 3D secara umum merujuk pada kemampuan dari sebuah video card

    (link). Saat ini video card menggunakan variasi dari instruksi-instruksi yang ditanamkan

  • 10

    dalam video card itu sendiri (bukan berasal dari software) untuk mencapai hasil grafik yang

    lebih realistis dalam memainkan game komputer.

    2D dan 3D dalam bentuk animasi

    Animasi adalah suatu rangkaian gambar diam secara inbetween dengan jumlah yang banyak,

    bila kita proyeksikan akan terlihat seolah olah hidup (bergerak), seperti yang pernah kita

    lihat film film kartun di tevisi maupun dilayar lebar jadi Animasi kita simpulkan

    menghidupkan benda diam diproyeksikan menjadi bergerak.

    Untuk membuat ilusi gerakan tersebut, sebuah gambar pada layar komputer dengan sangat

    cepat digantikan oleh gambar lainnya yang mirip dengan gambit sebelumnya

    Animasi komputer adalah seni menghasilkan gambar bergerak melalui penggunaan komputer

    dan merupakan sebagian bidang komputer grafik dan animasi. Animasi semakin banyak

    dihasilkan melalui grafik komputer 3D, walaupun grafik komputer 2D masih banyak ada.

    Kadangkala sasaran animasi adalah komputer itu sendiri, kadangkala sasaran adalah antara

    lain, seperti filem. Untuk menghasilkan gambar pergerakan, image (gambar) dipaparkan pada

    screen komputer dan diganti dengan image (gambar) baru yang selaras gambar sebelumnya

    dengan pantas. Teknik ini serupa dengan bagaimana gambar bergerak dihasilkan melalui

    televi dan film. Animasi komputer 3D pada asasnya merupakan pengganti digit bagi seni

    animasi gerak (stop motion); patung animasi dibina pada screen komputer dan dipasang

    dengan rangka siber. Kemudian anggota badan, mata, mulut, pakaian, dan lain-lain bagi

    patung 3D digerakkan oleh juru animasi. Akhirnya, animasi dihasilkan.

    Jenis animasi yang banyak dikenal adalah animasi 2D dan 3D. Perbedaan dari animasi 2D

    dan 3D adalah dilihat dari sudut pandangnya. Animasi 2D menggunakan koordinat x dan y,

    sedangkan animasi 3D menggunakan koordinat x, y dan z yang memungkinkan kita dapat

    melihat sudut pandang objek secara lebih nyata.

    A. animasi 2 dimensi

    Animasi jenis ini juga biasa disebut dengan film kartun. Kartun sendiri berasal dari kata

    Cartoon, yang artinya gambar yang lucu. Contohnya misalnya: Looney Tunes, Tom and

    Jerry, Scooby Doo, Doraemon, dan lainnya.

  • 11

    B. animasi 3 dimensi

    Animasi 3D adalah pengembangan dari animasi 2D. Dengan animasi 3D, karakter yang

    diperlihatkan semakin hidup dan nyata, mendekati wujud manusia aslinya. Contohnya Toy

    Story, Monster Inc., Finding Nemo, The Incredible, Shark Tale. Cars, hingga Final Fantasy.

    Disini kita bisa melihat perbedaan visual jika dbandingkan dengan animasi 2D. Kesemuanya

    itu biasa juga disebut dengan animasi 3D atau CGI (Computer Generated Imagery).

    Untuk model animasi 3D, objek atau model tersebut dibuat dengan komputer dengan

    menggunakan software tertentu, seperti 3d Max atau lainnya, yang kemudian dirangkakan

    dengan tulang rangka virtual untuk membuat efek 3 dimensi nya.

    Sedangkan untuk model animasi 2D, animasi dibuat dengan menggunakan beberapa gambar

    yang memiliki layer terpisah yang berarti tanpa menggunakan rangka virtual. Kemudian

    anggota badan, mata, mulut dan sebagainya dari objek tersebut dibuat seolah olah bergerak

    oleh animator dengan menggunakan key frame secara terus menerus atau frame by frame.

    Proses tersebut disebut sebagai proses tweening motion atau morphing

    C. Game 2 dimensi

    Game dua dimensi dapat diketahui berdasarkan ruangnya yang hanya memiliki dua sisi ( X

    dan Y). Sedangkan untuk gambarnya sendiri dapat menggunakan Vector maupun Bitmap.

    Untuk membuat animasi bergerak (berjalan,melompat,berlari,dll) kita harus membuat gambar

    satu persatu yang disebut dengan(frame).

    Kerealisasian gerakan ditentukan dari gambar yang dibuat, jumlah gambar(frame) yang

    digunakan, serta hitungan gambar per detik (frame per second ( semakin tinggi hitungan

    gambar per detik maka semakin mulus gerakan yang akan dihasilkan)).

    Game dua dimensi ini memiliki 2 konsep, yaitu:

    - Static View, dimana semua objek berada pada satu bidang dan gerakan karakter utama

    hanya terbatas pada bidang itu saja.

    - Side Scrolling View, dimana objek-objek dan gambar latar akan terus bergerak ke

    kanan dan ke kiri sesuai dengan kecepatan gerakan karakter yang dimainkan.

    Contoh game berbasis 2 dimensi diantaranya adalah Pac-man, Space Invader, Mario Bros,

    dan game-game sederhana lainnya.

  • 12

    D. Game 3 Dimensi

    Setelah munculnya game 2D muncullah game dengan tampilan 3D datar (3D Plaine) hal ini

    sering membuat bingung karena sering disebut game 2D tapi mereka tidaklah sama. Game

    seperti ini bukan 2D tapi tidak juga full 3D. Biasanya gameplaynya memang mirip game 2D

    dimana kita hanya bisa bergerak secara horizontal dan vertical namun beberapa gambarnya di

    render secara 3D. Teori grafik seperti ini disebut dengan 2.5D atau pseudo-3D sedangkan

    pada istilah game lebih dikenal dengan isometric/diametric atau bahkan trimetric projection.

    Berbeda dengan game 2D, dalam game 3D anda akan menemui tiga sisi (X,Y,Z).

    Game bertipe ini menggunakan 2 macam tipe pemodelan:

    -3d ini merupakan model/ object 3 dimensi yang nantinya akan anda jadikan sebagai karakter

    utama, bangunan, object-object seperti senjata,musuh, permukaan tanah ,pohon, bukit,dll.

    Object 3d seperti ini bisa anda buat dengan menggunakan program seperti 3D

    S.Max,Maya,Hash,dll

    E. grafik 2 dimensi

    gambar 2d juga berperan dalam membuat game bertipe 3D fungsi gambar 2d antara lain:

    - sebagai texture untuk object

    - sebagai latar belakang ( langit , pemandangan,dll)

    - sebagai meteran untuk nyawa , gambar untuk speedometer (untuk game racing), dll.

    Sedangkan untuk membuat animasi dalam 3D dapat digunakan bones(tulang) yang layaknya

    manusia dapat digerakkan. Selain itu animasi tetap juga dapat menggunakan bitmap (gambar

    2d) untuk animasi pada texture air, api,dll

    I.V Penertian syntax pada OpenGL

    1. fungsi OpenGL

    Pada komputer memory untuk menampilkan gambar biasanya di isi dengan gambar yang

    berasal dari peringatan gambar paling akhir, jadi perlu di bersihkan dengan warna latar

    belakang sebelum di gambar lagi.

  • 13

    Contoh berikut ini perintah yang di gunakan untuk membersihkan layar latar belakang

    dengan warna hitam dan buffer apa yang di bersihkan. Dalam hal ini, buffer yang akn di

    bersihkan karena buffer warna merupakan tempat gambar di simpan,

    glClearColor 0, 0, 0, 0

    glClear GL_BUFFER_BIT OR GL_DEPTH_BUFFER_BIT

    2. Spesifikasi warna

    Pada OpenGL mendeskripsikan objek dengan warna objek proses yang berjalan sendiri

    sendiri. Sebelum warna di ubah maka semua objek yang di gambarkan sesudah perintah

    tersebut akan menggunakan warna terakhir yang dapat pada coloring scheme. Untuk warna di

    gunakan perintah glcolor3f. Contoh berikut menunjukkan warna yang di tampilkan adalah

    warna merah.

    glColor3f 1, 0, 0

    3. Menggambar Dibidang 3D dan 2D

    Untuk menggambar grafik jenis apapun pada komputer biasanya di mulai engan pixel. Pixel

    adalah elemen terkecil dari layar monitor yang mempunyai aitribut warna posisi..

    Sedangkan untuk membentukgaris poligon, bjek dan lain lain dapat di lakukan melalui

    urutan pixel yang berbeda. Menggambarkan dengan menggunakanOpenGL mempunyai

    perbedaan dengan bahasa lain, yaitu tidak perlu memikirkan koordinat layar secara fisik

    tetapi hanya perlu menspesifikasikan posisi koordinat dengan volume penglihatan. OpenGL

    memikirkan sendiri bagaimana caranya menggambar titik, garis, dan lainnya yang berada

    dalam ruang 3 dimensi dan 2 dimensi pada layar monitor.

    Area gambar yang di batasi ini adalah ruang koordinat kartesian yang mempunyai range dari

    -100 hingga 100 untuk sumbu x, y dan z. Secara sederhana bidang inidapat di anggap sebagai

    bidang gambar untuk perintah OpenGL.

    Untuk menggambar titik di gunakan satu perintah OpenGL yaitu : glVertex. Fungsi ini dapat

    mempunyai 2 sampai 4 parameter dan berbagai macam tipe data. Sebagai contoh perintah

    glVertex di bawah ini akan menspesifikasikan sebuah titik pada posisi 4 sumbu x, 4 sumbuy,

  • 14

    dan 0 untuk sumbu z. glVertex3f 4, 4, 0. Setelah di ketahui cara untuk menspesifikasina

    sebuah titik di ruang pada OpenGL. Selanjutnya yang harus di tambahkan adalah informasi

    tambahan mengenai titik tersebut, apakah titik tersebut akhir dari sebuah garis atau merupan

    sebuah titik sudut dari sebuah poligon atau lainnya, karena defenisi geometrik dari sebuah

    Vertex sebenarnya bkanlah hanya sebuah titik pada layar tetapi lebih merupakan sebuah titik

    dimana terjadi interksi antara dua buah garis atau kurva.

    Primitif adalah interpretasi sejumlah set atau deretan titik pada sebuah bentuk yang di gambar

    pada layar. Pada OpenGL terdapat sepuluh macam primitif dari mulai menggambar sebuah

    titik hingga poligon. Untuk itu di gunakan perintah glBigen sebagai cara memberi tau

    OpenGL untuk memulai menginterpretasi sederetan titik sebagai titik sebagai salah satu

    bentuk primitif. Dn untuk mengakhiri deretan titik ini di gunakan perintah glend.

    sebagai contoh :

    glBegin bmpolygon //spesifikasikan titik sebagai primitif

    glVertex3f 4, 4, 0 //spesifikasi posisi titik

    glEnd //mengakhiri perintah gambar titik

    maksud dari :

    #include untuk mendefenisi file hider, membaca file atau memanggil file

    hider pertama.

    Void draw dot(int x, int y) untuk menggambar dari titik x ke y

    Gl Vertex 2i untuk menentukan 2 titik koordinat

    Int main untuk menentukan atau mengatur tampilan dengan menggunakan RGB (red

    grend blue).

    Grafik komputer 3D merupakan suatu grafis yang menggunakan 3 titik perspektif

    dengan cara matematis dalam melihat suatu objek, dimana gambar tersebut dapat

    dilihat secara menyeluruh dan nyata. Untuk perangkat-perangkat lunak yang

    digunakan untuk grafik komputer 3D ini banyak bergantung pada aloritma-algoritma.

  • 15

    Animasi Komputer

    Animasi Komputer adalah seni membuat gambar bergerak melalui komputer.

    Biasanya ini digunakan pada film-film animasi berbudget besar. Tetapi film-film non

    animasi juga banyak yang menggunakan teknik ini, sebut saja Lord Of The Ring,

    Harry Potter, dsb.

  • 16

    BAB III

    HASI PERCOBAAN

    1. Primitive drawing

    Pada tutorial 01 telah diberikan contoh program untuk merepresentasikan model obyek

    segiempat 2D. OpenGL memiliki beberapa komponen dasar untuk merepresentasikan suatu

    obyek. Komponen dasar tersebut, disebut sebagai OpenGL Geometric primitives. Gambar 2

    menggambarkan semua OpenGL Geometric primitives yang tersedia.

    openGL Primitives

    Setiap obyek harus dimodelkan sebagai kombinasi dari komponen-komponen dasar tersebut.

    Sebagai contoh, obyek segiempat pada tutorial 01 tersebut dimodelkan dengan menggunakan

  • 17

    komponen dasar GL_POLYGON. Obyek tersebut dapat pula dimodelkan dengan komponen

    dasar GL_TRIANGLES atau pun GL_QUAD.

    Secara umum perintah-perintah dalam OpenGL memenuhi aturan sebagai berikut:

    openGL Commands

    Dalam OpenGL, menggambar geometric primitives selalu dilakukan di antara fungsi

    glBegin(PRIMITIVES)

    // Fungsi Menggambar Primitives di sini

    glEnd()

  • 18

    Obyek kompleks dapat dibuat dengan kombinasi dari primitif ini. Adapun contoh grafik

    primitif yang lain adalah :

    -simbol tertentu. Teks merupakan

    kumpulan lebih dari dua karakter.

    angan dan

    warna. Citra raster disimpan dalam komputer sebagai larik bernilai numerik. Larik tersebut

    dikenal sebagai piksel map atau bitmap. Ada tiga cara untuk menghasilkan citra grafik yaitu

    citra didisain dengan tangan, citra yang didapat dari perhitungan dan citra yang discan.

    Pemaparan citra raster dinyatakan oleh piksel dengan video displays (Cathod-ray Tube CRT),

    flat panel dispalys (LCD), hardcopy (printer laser, dot matrix printers, ink-jet printers).

    Contoh proses pemaparan permukaan adalah citra yang ditangkap lalu disimpan di frame

    buffer, kemudian digunakan untuk mewarnai sebuah titik pada permukaan pemapar.

    Selanjutnya proses scan di CRT. Frame buffer adalah matriks 2 dimensi yang mewakili piksel

    pada pemapar. Ukuran matriks harus cukup untuk menyimpan kedalam warna pemapar untuk

    semua piksel. Sebagai contoh pemapar (monitor) berresolusi 1280 x 1024 mempunya

    kedalaman warna 24 bit (~16 juta warna) membutuhkan ruang simpan sekitar 4 Mb.

    Contoh fungsi dari primitive drawing

    2 dimensi

    #include

    void userdraw()

    {

    static int tick=0;

    void drawDot(int x, int y);

    glBegin(GL_LINES);

    glVertex2i(300,250);

    glVertex2i(300,250);

    glVertex2i(50,50);

    glVertex2i(300,250);

  • 19

    glVertex2i(50,250);

    glVertex2i(300,250);

    glVertex2i(300,50);

    glVertex2i(50,250);

    glEnd();

    }

    void display(void)

    {

    //BERSIH LAYAR

    glClear(GL_COLOR_BUFFER_BIT);

    userdraw();

    glutSwapBuffers();

    }

    int main(int argc, char **argv)

    {

    glutInit(&argc,argv);//Inisialisasi Toolkit

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

    glutInitWindowPosition(100,100);

    glutInitWindowSize(640,480);

    glutCreateWindow("Diamond");

    glClearColor(1.0f,0.0f,0.0f,0.0f);

    gluOrtho2D(0.,700.,0.,400.);

    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

    return 0;

    }

  • 20

    2. Contoh projek gambar 5 titik

    #include

    void display(void)

    {

    /* bersihkan layar dari titik pixel yang masih ada */

    glClear (GL_COLOR_BUFFER_BIT);

    /* gambar 5 titik di layar */

    glColor3f (1.0, 1.0, 0.0);

    /* posisi vertex */

  • 21

    glBegin(GL_POINTS);

    glVertex3f (0.0, 0.0, 0.0);

    glVertex3f (0.0, 0.8, 0.0);

    glVertex3f (0.8, 0.0, 0.0);

    glVertex3f (0.0, -0.8, 0.0);

    glVertex3f (-0.8, 0.0, 0.0);

    glEnd();

    glFlush ();

    }

    void kunci(unsigned char key, int x, int y)

    {

    switch (key)

    {

    /* aplikasi berhenti ketika tombol q ditekan */

    case 27 : case 'q': exit(0); break;

    }

    glutPostRedisplay();

    }

  • 22

    int main(int argc, char *argv[])

    {

    glutInitWindowSize(400,400);

    glutInitWindowPosition(100,100);

    glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);

    glutCreateWindow("Primitif");

    glutDisplayFunc(display);

    glutKeyboardFunc(kunci);

    glutMainLoop();

    return 0;

    }

  • 23

    3. Contoh latihan fungsi dari 3 dimensi

    DIAMON

    #include

    void userdraw()

    {

    static int tick=0;

    void drawDot(int x, int y);

    glBegin(GL_LINES);

    glVertex2i(100,250);

    glVertex2i(300,250);

    glVertex2i(100,250);

    glVertex2i(200,200);

    glVertex2i(200,200);

    glVertex2i(300,250);

    glVertex2i(100,250);

    glVertex2i(200,50);

    glVertex2i(200,200);

    glVertex2i(200,50);

    glVertex2i(300,250);

    glVertex2i(200,50);

    glEnd();

    }

    void display(void)

    {

    //BERSIH LAYAR

    glClear(GL_COLOR_BUFFER_BIT);

    userdraw();

  • 24

    glutSwapBuffers();

    }

    int main(int argc, char **argv)

    {

    glutInit(&argc,argv);//Inisialisasi Toolkit

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

    glutInitWindowPosition(100,100);

    glutInitWindowSize(640,480);

    glutCreateWindow("Diamond");

    glClearColor(1.0f,0.0f,0.0f,0.0f);

    gluOrtho2D(0.,640.,0.,350.);

    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

    return 0;

    }

  • 25

    #include

    #include

    #include

    #include

    #include

    #include

    void cube()

    {

    //menggambar kubus dan transformasi tarnslasi ke titik 0.5 0.5 0.5 dan skala 1 1 1

    glPushMatrix();

    glTranslated(0.5,0.5,0.5);//cube

    glScaled(1.0,1.0,1.0);

    glutSolidCube(1.0);

    glPopMatrix();

    }

    void setMaterial()

    {

    //set properties of surfaces material

    GLfloat mat_ambient[] = {0.7f,0.7f,0.7f,1.0f}; // ada 4 jenis material yang dipakai,

    dengan kombinasi warna tertentu

    GLfloat mat_diffuse[] = {0.6f,0.6f,0.6f,1.0f};

    GLfloat mat_specular[] = {1.0f,1.0f,1.0f,1.0f};

    GLfloat mat_shininess[] = {50.0f};

    glMaterialfv(GL_FRONT,GL_AMBIENT,mat_ambient);

    glMaterialfv(GL_FRONT,GL_DIFFUSE,mat_diffuse);

    glMaterialfv(GL_FRONT,GL_SPECULAR,mat_specular);

    glMaterialfv(GL_FRONT,GL_SHININESS,mat_shininess);

    }

  • 26

    void setLighting()

    {

    //set light sources

    GLfloat lightIntensity[] = {0.7f,0.7f,0.7f,1.0f};//mensetting pencahayaan

    GLfloat light_position[] = {2.0f,6.0f,3.0f,0.0f};

    glLightfv(GL_LIGHT0,GL_DIFFUSE,lightIntensity);

    glLightfv(GL_LIGHT0,GL_POSITION,light_position);

    }

    void setViewport()

    {

    glMatrixMode(GL_PROJECTION);

    glLoadIdentity();

    double winHt = 1.0;//half height of the window

    glOrtho(-winHt*64/48,winHt*64/48,-winHt,winHt,0.1,100.0);

    }

    void setCamera()

    {

    //set the camera

    glMatrixMode(GL_MODELVIEW);

    glLoadIdentity();

    gluLookAt(3.3,3.3,3.0,0,0.25,0,0.0,1.0,0.0);

    }

    void displayObject()

    {

    setMaterial();

    setLighting();

    setViewport();

    setCamera();

  • 27

    //startDrawing

    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    cube();//memanggil fungsi menggambar kubus

    glFlush();//mengirim smua objek untuk dirender

    }

    void main(int argc, char **argv)

    {

    glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);

    glutInitWindowSize(640,480);

    glutInitWindowPosition(100,100);

    glutCreateWindow("simple 3d scene");

    glutDisplayFunc(displayObject);//fungsi dari display object yang menggabungkan

    kubus lighting material dan kamera

    glEnable(GL_LIGHTING);

    glEnable(GL_LIGHT0);

    glShadeModel(GL_SMOOTH);

    glEnable(GL_DEPTH_TEST);

    glEnable(GL_NORMALIZE);

    glClearColor(1.0f,1.0f,1.0f,0.0f);

    glViewport(0,0,640,480);

    glutMainLoop();

    }

  • 28

  • 29

    BAB IV

    HASIL ANALISA PERCOBAAN

    Perencanaan bangunan bertingkat memerlukan suatu analisa yang tepat lewat penggunaan

    program

    komputer yang tepat pula. Salah satu program komputer yang digunakan dalam perhitungan

    gedung tersebut

    adalah ETABS. Namun tidak menutup kemungkinan adanya penggunaan program komputer

    lain dalam

    membantu mendapatkan beban yang terjadi pada struktur utama yang berasal dari struktur

    pendukung.

    Bangunan perkantoran tingkat menengah dengan denah sederhana dalam skripsi ini akan

    dianalisa dan

    dibandingkan perilaku yang terjadi padanya. Beban yang diberikan adalah beban statik dan

    beban dinamik.

    Beban statik yang terjadi adalah beban akibat gaya gravitasi sedangkan untuk beban gempa

    adalah dengan

    analisa statik ekivalen dan analisa respon spektrum. Dengan mengambil portal yang mewakili

    dari bangunan

    tersebut, baik arah-x maupun arah-y, maka dilakukan pula analisa yang sama seperti pada

    kasus 3 dimensi

    tersebut. Hasil perhitungan yang dianalisa didapatkan dari output program ETABS baik

    displacement

    maupun gaya dalam kolom. Perilaku struktur dalam hal ini ditunjukkan oleh displacement

    dan gaya-gaya

    dalam tadi. Dengan demikian akan diketahui masing-masing perilaku portal sebagai wujud

    struktur 2

    dimensi dan gedung yang diwujudkan sebagai struktur 3 dimensi. Dalam hal ini pula, akan

    disusun tabeltabel

    perbandingan analisa statik-dinamik yang terjadi pada struktur 2 dimensi dan 3 dimensi serta

    prosentase selisih perbandingan analisa statik-dinamik pada perwujudan struktur yang sama.

    Dengan hasil

    yang diperoleh lewat perbandingan yang ada, maka akan lebih optimal jika perancang

    struktur.

  • 30

    PENUTUP

    a. Kesimpulan

    jadi, perbedaan antara grafik 3D dan 2D secara umum terletak pada komposisi objeknya.

    Pada bidang Cartesian, grafik 2D hanya memiliki sumbu X dan Y, sedangkan grafik 3D

    memiliki axis X, Y, dan Z. Dimana hal ini membuat objek grafik 3D memiliki volume

    atau memiliki isi. Sehingga objek 3D dapat dilihat dari berbagai macam sudut. Sedangkan

    Grafik 2D hanya memiliki satu sudut pandang saja, yaitu sisi yang sejajar dengan posisi si

    penglihat. Oleh sebab itu kita tidak dapat melihat bagian belakang maupun samping

    sebuah objek 2D.

    Contoh penggunaan grafik 2D misalnya pada typhography, cartography, menggambar

    teknik, periklanan, dll. Sedangkan contoh objek 3D misalkan benda-benda yang ada di

    sekitar kita. Contoh lain yang paling sering menggunakan grafik 2D dan 3D adalah

    pembuatan animasi dan game seperti yang telah dijelaskan diatas.

    b. Saran

    Setelah melihat uraian di atas, penyusun mempunyai saran.

    Terlebih dahulu harus belajar algoritma, karena algorima adalah salah satu kunci untuk

    dapat memahami permasalahan yang akan dihadapi didalam pembuatan grafik komputer.

    Bila ingin membuat suatu gambar/grafik, pilihlah program aplikasi yang lebih bagus

    menurut anda, lebih kompleks, dan yang khusus menanganipembuatan gambar/grafik

    serta yang mengikuti perkembangan jaman .

    Harus memahami sintak-sintak (gaya bahasa penulisan dalam bahasa pemrograman ) yang

    terdapat dalam bahasa pemrograman ataupun fitur fitur yang terdapat didalam program

    aplikasi.

  • 31

    DAFTAR PUSTAKA

    https://docs.google.com/document/d/15Us0Xa9Su30BmYysaQ8vTWnivvJbOT-

    84BvOJFkBJM0/edit?pli=1

    DARI CATATAN DARI PERTEMUAN 1 SAMPAI AKHIR

    file:///C:/Users/User/Documents/Makalah%20Grafik%20Komputer%20Yoga%20Finish.ht

    m

    file:///C:/Users/User/Documents/Laporan%20Tugas%20Grafika%20Komputer%20bangun

    %202%20dimensi%20Code%20Block.htm