laporan pratikum komputer grafik

Upload: bayramdaulay

Post on 14-Oct-2015

116 views

Category:

Documents


0 download

DESCRIPTION

Laporan pratikum

TRANSCRIPT

  • LAPORAN PRAKTIKUM

    KOMPUTER GRAFIK

    Kelas

    TI 4 Sore C

    Nama

    Praktikan

    NPM

    Mahasiswa

    Tanggal

    Pengumpulan

    Tanda tangan

    Praktikan

    Tanda Tangan

    Dosen

    Bayram daulay

    1214370242

    Nama Dosen

    Pewampu

    Tanggal

    Penilaian

    Nilai Tanda Tangan

    Dosen Pewampu

    Indri Sulistianingsih,S.Kom

    UNIVERSITAS PEMBANGUNAN PANCA BUDI

    FAKULTAS TEKNIK

    JURUSAN SISTEM KOMPUTER

    MEDAN

    2014

  • i

    DAFTAR ISI

    Daftar Isi .................................................................................................................i

    Kata Pengantar ...................................................................................................... ii

    BAB I : PENDAHULUAN

    1.1 Defenisi Komputer Grafik .......................................................................... 1

    1.2 Peranan dan Fungsi Komputer Grafik.........................................................1

    1.3 OpenGL ...................................................................1

    1.4 Tujuan ......................................................................................................... 1

    BAB II : Landasan Teori

    A. Sejarah OpenGL....................................................................................... 2

    B. Definisi OpenGL ..................................................................................... 2

    C. Cara Kerja OpenGL ................................................................................. 4

    - Inisialisasi Awal ................................................................................. 4

    - Pembuatan Gambar ............................................................................ 5

    - Primitive Grafik ................................................................................. 6

    - Gambar 2D ......................................................................................... 9

    - Gambar 3D ......................................................................................... 9 BAB III : Praktikum

    1 Gambar 2 Dimensi ....................................................................................... 10

    o Jajar Genjang .................................................................................... 10

    o Bunga ................................................................................................ 12

    3.2 Gambar 3D ................................................................................................ 17

    o Kubus ................................................................................................ 17

    BAB IV : Analisa Hasil Percobaan

    - Analisa dari percobaan gambar jajar Genjang ............................. 28

    - Analisa dari percobaan gambar Bunga ........................................ 28

    - Analisa dari percobaan gambar Kubus ........................................ 24

    PENUTUP............................................................................................................ iii

    DAFTAR PUSTAKA .......................................................................................... iv

  • ii

    KATA PENGANTAR Bismillahhirrohmanirrohim. Dengan memanjatkan do'a dan puji syukur kehadirat Allah SWT serta sholawat serta salam tercurahkan ke junjungan kita Nabi Muhammad SAW, sehingga penulis dapat menyelesaikan pratikum computer grafik. Adapun penulisan makalah ini dapat terselesaikan berkat bantuan dari segala pihak yang membantu terselesaikannya makalah ini. Penulis menyadari bahwa makalah ini masih banyak kesalahan dan kekurangan, maka dari itu penulis mengharapkan sumbangan pikiran, pendapat serta saran saran yang berguna demi penyempurnaan makalah ini. Semoga makalah ini dapat berguna dan bermanfaat bagi pembaca.

    Medan, 12 Juni 2014

    Bayram daulay

  • 1

    BAB I : PENDAHULUAN

    1.1 Defenisi Komputer Grafik

    Komputer Grafik* atau Grafika Komputer adalah bagian dari ilmu komputer yang berkaitan

    dengan pembuatan dan manipulasi gambar (visual) secara digital. Bentuk sederhana dari grafika

    komputer adalah grafika komputer 2D yang menghasilkan gambar 2D, kemudian berkembang

    menjadi grafika komputer 3D yang lebih heboh dan canggih.

    Komputer grafik merupakan suatu proses pembuatan, penyimpanan dan manipulasi model dan

    citra. Model berasal dari beberapa bidang seperti fisik, matematik, artistik dan bahkan struktur

    abstrak.

    Istilah Grafik Komputer ditemukan tahun 1960 oleh William Fetter :

    pembentukan disain model cockpit (Boeing) dengan menggunakan pen plotter dan referensi

    model tubuh manusia 3 Dimensi

    Sistem interaktif grafik pertama, Sketchpad, ditemukan oleh Ivan Sutherland (1963) di MIT.

    Grafika komputer sering dikenal juga dengan istilah visualisasi data. Pemrosesan citra (image

    processing), dan pengenalan pola (pattern recognition). Sedangkan yang termasuk dalam

  • 2

    disiplin ilmu ini adalah Geometri: mempelajari cara menggambarkan permukaan bidang,

    Animasi: mempelajari cara menggambarkan dan memanipulasi gerakan, Rendering:

    mempelajari algoritma untuk menampilkan efek cahaya, Citra (Imaging): mempelajari cara

    pengambilan dan penyuntingan gambar. Visualisasi terhadap dunia nyata ke dalam obyek grafis

    merupakan salah satu bentuk pemanfaatan teknologi komputer grafik.

    Kerangka Grafika Komputer Interaktif

    Graphics library/package (contoh: OpenGL) adalah perantara

    Aplikasi dan display hardware (GraphicsSystem)

    Application program memetakan objek aplikasi ke tampilan/citra dengan memanggil

    graphics library

    Hasil dari interaksi user menghasilkan/modifikasi citra

    Citra merupakanhasil akhir dari sintesa, disain, manufaktur, visualisasi dll.

    Pemodelan Geometris

    Transformasi dari suatu konsep (atau suatu benda nyata) ke suatu model geometris yang bisa

    ditampilkan pada suatu komputer : Shape/bentuk, Posisi, Orientasi (cara pandang), Surface

    Properties / Ciri-ciri Permukaan (warna, tekstur), Volumetric Properties / Ciri-ciri

    volumetric(ketebalan/pejal, penyebaran cahaya), Lights/cahaya (tingkat terang, jenis warna),

    Dan lain-lain

    Pemodelan Geometris yang lebih rumit : Jala-Jala segi banyak: suatu koleksi yang besar

    dari segi bersudut banyak, dihubungkan satu sama lain. Bentuk permukaan bebas:

    menggunakan fungsi polynomial tingkat rendah. CSG: membangun suatu bentuk dengan

    menerapkan operasi boolean pada bentuk yang primitif.

    Elemen-elemen Pembentuk Grafik:

  • 3

    1. Geometri

    2. Pemrosesan Citra untuk ditampilkan di Layar

    3. Hardware Display Grafik : Vektor Vektor adalahpenggunaan bentuk-bentuk geometri

    primitif (contoh: titik/point, garis lurus/line, garis lengkung/curve, bangun

  • 4

    datar/shape/polygon) yang berbasis persamaan matematika untuk membentuk gambar.

    4. Hardware Display Grafik : Raster Raster (bitmap, pixmap) adalah Struktur data yang

    merepresentasikan piksel dalam grid, atau titik-titik warna, yang bisa ditampilkan pada

    monitor, kertas, atau medium lain.

    Arsitektur raster

    Dasar Matematika yang Diperlukan dalam Komputer Grafik

    Geometry (2D, 3D)

    Trigonometry

  • 5

    Vector spaces

    Points, vectors, dan koordinat

    Dot dan cross products

    Sejarah Perkembangan Komputer Grafik

    Awal tahun 60-an dimulainya model animasi dengan menampilkan simulasi efek fisik.

    1961: Edward Zajac menyajikan suatu model simulasi satelit dengan menggunakan

    teknologi Grafik Komputer.

    1963 : ditermukan Sutherland (MIT), -Sketchpad (manipulasi langsung, CAD) Alat

    untuk menampilkan Calligraphic (vector),-Mouse oleh Douglas Englebert

    1968 : ditemukan Evans & Sutherland.

    1969 : Journal SIGGRAPH pertama kali diterbitkan

    1970: Pierre Beezier mengembangkan kurva Beezier.

    1971: ditemukan Gouraud Shading,

    1972: ditayangkannya filmWestworld, sebagai film pertama yang menggunakan animasi

    komputer.

    1974: Ed Catmull mengembangkan z-buffer (Utah). Komputer animasi pendek, Hunger:

    Keyframe animation and morph ing

    1976: Jim Blinn mengembangkan texture dan bump mapping.

    1977: Film terkenal Star Wars menggunakan grafik komputer

    1979: Turner Whitted mengembangkan algoritma ray tracing,untuk pesawat Death Star.

    Pertengahan tahun 70-an hingga 80-an: Pengembangan Quest for realism radiosity

    sebagai main-stream aplikasi realtime.

    1982: Pengembangan teknologi grafik komputer untuk menampilkan partikel.

    1984: Grafik Komputer digunakan untuk menggantikan model fisik pada film The Last

    Star Fighter.

  • 6

    1986: Pertama kalinya Film hasil produksi grafik komputer dijadikan sebagai nominasi

    dalam Academy Award: Luxo Jr. (Pixar).

    1989: Film Tin Toy (Pixar) memenangkan Academy Award.

    1995: Diproduksi fillm Error! Hyperlink reference not valid. (Pixar dan Disney)

    sebagai film 3D animasi panjang pertama

    Akhir tahun 90-an, ditemukannya teknologi visualisasi interaktif untuk ilmu

    pengetahuan dan kedokteran, artistic rendering, image based rendering, path tracing,

    photon maps, dll.

    Tahun 2000 ditemukannya teknologi perangkat keras untuk real-time photorealistic

    rendering.

    Dengan teknologi komputer grafik yang semakin canggih/hebat/dahsyat dewasa ini, bahkan

    tokoh ciptaan komputer pun terlihat seakan nyata. Mulai dari bentuk yang sempurna mendekati

    asli dan gerak tubuh yang luwes (gak kaku lagi). Padahal itu semua hanyalah rekayasa

    komputer grafik semata

    1.2 Peranan dan Penggunaan Komputer Grafik

    Grafika komputer telah menunjukkan kemajuan yang pesat dalam

    pengembangan berbagai aplikasi untuk menghasilkan gambar. Walaupun pada

    awalnya aplikasi dalam sains dan engineering memerlukan peralatan yang mahal,

    perkembangan teknologi komputer memberikan kemudahan penggunaan komputer

    sebagai alat bantu aplikasi grafik komputer interaktif. Pada saat ini grafika

    komputer digunakan secara rutin dibidang ilmu pengetahuan, teknik, kedokteran,

    bisnis, industri, pemerintahaseni, hiburan, pendidikan, periklanan, dan lain

    sebagainya.

    1.3 OpenGL

    OpenGL adalah program aplikasi interface yang digunakan untuk

    mendefinisikan komputer grafis 2D dan 3D. Program platform API ini umumnya untuk

    menetapkan standar dalam industri komputer pada jenis interaksi komputer grafis 2D dan juga

    menjadi alat yang biasa digunakan dengan grafis 3D juga.

    Singkatan dari OpenGL Graphics Library, OpenGL menghilangkan kebutuhan untuk

    pemrogram dan menulis ulang bagian grafis dari suatu sistem operasi setiap kali akan meng-

  • 7

    upgrade ke versi baru dari sistem. OpenGL dikembangkan oleh Silicon Graphics Inc (SGI) pada

    tahun 1992 dan banyak digunakan dalam CAD, virtual reality, visualisasi ilmiah, visualisasi

    informasi, simulasi penerbangan, dan video game.

    Fungsi dasar dari OpenGL adalah untuk mengeluarkan koleksi khusus dari executable atau

    perintah ke sistem operasi. Dengan demikian, program ini bekerja dengan perangkat keras

    grafis yang sudah ada yang berada pada hard drive atau sumber tertentu lainnya. Setiap perintah

    di set rancang untuk melibatkan tindakan gambar tertentu, atau meluncurkan efek khusus

    tertentu yang terkait dengan grafis.

    Cara membuat perintah dalam OpenGL dapat dilakukan dalam dua cara berbeda. Pertama,

    adalah programmer membuat dan menyimpan daftar perintah yang digunakan secara berulang.

    Ini adalah salah satu cara yang lebih rutin digunakan program antarmuka. Seiring dengan

    perkembangan maka dibuat kelompok perintah yang lebih permanen, juga memungkinkan

    untuk membuat dan menjalankan salah satu perintah dalam perimeter waktu dari grafis

    komputer juga.

    Seiring dengan kemampuan melakukan antarmuka dengan sistem operasi, memberi manfaat

    perangkat keras grafis, OpenGL juga menyediakan beberapa protokol built-in yang mungkin

    berguna bagi pengguna akhir. Di antara fitur ini alat seperti alpha blending, pemetaan tekstur,

    efek atmosfer, dan surface removal. Alat ini menyesuaikan diri dengan sistem operasi yang

    sedang digunakan.

    Awalnya dikembangkan oleh Silicon Graphics, OpenGL kini dianggap standar industri.

    Antarmuka program aplikasi secara aktif didukung oleh Microsoft, yang menawarkan download

    gratis OpenGL untuk digunakan pada sistem Windows. OpenGL juga bekerja sangat baik

    dengan Inventor Open, juga diciptakan oleh Silicon Graphics.

    1.4 Tujuan

    1. Memahami pembuatan grafik pada komputer

    2. Bahan Ujian

    3. Mampu membuat suatu gambar 2D / 3D

  • 8

    BAB II : LANDASAN TEORI

    A.Sejarah OpenGL

    Tahun 1980-an, mengembangkan perangkat lunak yang dapat berfungsi dengan

    berbagai hardware grafik adalah tantangan nyata. Pengembang perangkat lunak antarmuka

    dan kebiasaan menulis driver untuk setiap perangkat keras. Ini mahal dan mengakibatkan

    banyak duplikasi usaha.

    Pada awal 1990-an, Silicon Graphics (SGI) adalah seorang pemimpin dalam grafik

    3D untuk workstation. Mereka IRIS GL API dianggap keadaan seni dan menjadi standar

    industri defacto, membayangi terbuka berbasis standar PHIGS. Ini karena GL IRIS dianggap

    lebih mudah digunakan, dan karena itu mendukung modus langsung rendering. By contrast,

    Sebaliknya, PHIGS dianggap sulit untuk digunakan dan ketinggalan zaman dalam hal

    fungsionalitas.

    SGI s pesaing (termasuk Sun Microsystems, Hewlett-Packard dan IBM) juga

    dapat membawa ke pasar 3D hardware, didukung oleh ekstensi yang dibuat pada PHIGS

    standar. Hal ini pada gilirannya menyebabkan pangsa pasar SGI untuk melemahkan karena

    lebih banyak hardware grafik 3D pemasok memasuki pasar. Dalam upaya untuk

    mempengaruhi pasar, SGI memutuskan untuk mengubah IrisGL API menjadi standar terbuka.

    SGI menganggap bahwa IrisGL API itu sendiri tidak cocok untuk membuka karena

    masalah lisensi dan paten. Juga, IrisGL memiliki fungsi-fungsi API yang tidak relevan

    dengan grafik

    3D. Sebagai contoh, termasuk windowing, keyboard dan mouse API, sebagian karena

    dikembangkan sebelum Sistem X Window dan Sun s NEWS sistem dikembangkan.

    Selain itu, SGI memiliki sejumlah besar pelanggan perangkat lunak; dengan mengubah ke

    OpenGL API mereka berencana untuk mempertahankan pelanggan mereka terkunci ke SGI

    (dan IBM) hardware untuk beberapa tahun sementara pasar dukungan untuk

    OpenGL matang. Sementara itu, SGI akan terus berusaha untuk mempertahankan

    pelanggan mereka terikat pada hardware SGI dengan mengembangkan maju dan kepemilikan

    Iris Inventor dan Iris Performer pemrograman API. Akibatnya, SGI merilis standar OpenGL.

    B. Pengenalan OpenGL

    OpenGL adalah sebuah program aplikasi interface yang digunakan untuk

    mendefinisikan komputer grafis 2D dan 3D. Program lintas-platform API ini umumnya

  • 9

    dianggap ketetapan standar dalam industri komputer dalam interaksi dengan komputer grafis

    2D dan juga telah menjadi alat yang biasa untuk digunakan dengan grafis 3D. Singkatnya,

    Open Graphics Library, OpenGL menghilangkan kebutuhan untuk pemrogram untuk menulis

    ulang bagian grafis dari sistem operasi setiap kali sebuah bisnis akan diupgrade ke versi baru

    dari sistem. Fungsi dasar dari OpenGL adalah untuk mengeluarkan koleksi perintah khusus

    atau executable kesistem operasi. Dengan demikian, program ini bekerja dengan perangkat

    keras grafis yang ada yang berada pada hard drive atau sumber tertentu lainnya. Setiap

    perintah dalam dirancang untuk melakukan tindakan tertentu, atau memulai efek khusus

    tertentu yang terkait dengan grafis.

    OpenGL adalah suatu spesifikasi grafik yang low-level yang menyediakan fungsi

    untuk pembuatan grafik primitif termasuk titik, garis, dan lingkaran. OpenGL digunakan

    untuk

    keperluan-keperluan pemrograman grafik. OpenGL bersifat Open-Source, multi-platform dan

    multi-language serta digunakan mendefinisikan suatu objek, baik objek 2 dimensi maupun

    objek 3 dimensi. OpenGL juga merupakan suatu antarmuka pemrograman aplikasi

    (application programming interface (API) yang tidak tergantung pada piranti dan platform

    yang digunakan, sehingga OpenGL dapat berjalan pada sistem operasi Windows, UNIX dan

    sistem operasi lainnya.

    OpenGL pada awalnya didesain untuk digunakan pada bahasa pemrograman C/C++,

    namun dalam perkembangannya OpenGL dapat juga digunakan dalam bahasa pemrograman

    yang lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun Fortran. Namun OpenGL di-

    package

    secara berbeda-beda sesuai dengan bahasa pemrograman yang digunakan. Oleh karena itu,

    package OpenGL tersebut dapat di-download pada situs http://www.opengl.org sesuai dengan

    bahasa pemrograman yang akan digunakan.OpenGl melayani dua tujuan :

    Untuk menyembunyikan kompleksitas dari interfacing dengan berbagai 3D

    accelerators, memamerkan oleh programmer dengan satu, seragam API.

    Untuk menyembunyikan kemampuan yang berbeda dari hardware platform, oleh

    semua yang memerlukan mendukung implementasi penuh fitur opengl set

    (menggunakan software emulation jika diperlukan).

  • 10

    C. Cara Kerja OpenGL

    OpenGL lebih mengarah pada prosedural daripada sebuah deskriptif API grafis.Untuk

    mendeskripsikan scene dan bagaimana penampilannya,sebenarnya programer lebih tau untuk

    menentukan hal-hal yang dibutuhkan untuk menghasilkan efek yang di inginkan.Langkah

    tersebut termasuk memanggil banyak perintah openGL,perintah tersebut digunakan untuk

    menggambarkan grafik primitif seperti titik,garis dan poligon dalam tiga dimensi.Sebagai

    tambahan,openGL mendukung lighting,shading,texture mapping,blending,transparancy,dan

    banyak kemampuan efek khusus lainnya.OpenGL mempunyai bnayak fungsi dan penggunaan

    perintah yang sangat luas, penggunaan openGL membutuhkan library tambahan yang harus

    di letakkan pada direktory system dari windows (OS),yaitu :

    OpenGL32.dll

    Glu32.dll

    Glut32.dll

    - Inisialisasi awal

    Inti dari tahapan ini adalah mengatur view port dan persepektif untuk penampilan obyek ke

    dalam layar monitor,viewport adalah besarnya layar monitor(image) yang dipakai untuk

    menampilkan obyek,sedangkan persepektif yang dimaksud adalah pengaturan sumbu z dalam

    penampilan obyek 3 dimensi,sehingga user dapat melihat obyek seolah-olah dalam bidang 3

    dimensi (X-Y-Z),selain itu penggambaran obyek yang dilakukan oleh programer juga dapat

    menggunaan koordinat 3 dimensi.

    Selain ke dua tujuan di atas pada tahap ini juga dilakukan koneksi awal dengan library

    openGL, koneksi ini dilakukan supaya fungsi-fungsi yang di sediakan openGL dapat

    digunakan. Fungsi/prosedur yang digunakan :

    LoadGlut(glut32.dll) -pemanggilan library openGL

    InitGL inisialisasi openGL awal yang harus dilakukan

    glViewport untuk pengaturan viewport

    glMatrixMode pengaturan viewport

    gluPerspective pengaturan persepektif

  • 11

    Contoh script untuk inisialisasi openGL :

    Try LoadGlut(glut32.dll);

    InitGL;

    Exept one :=

    exeption do

    Begin

    messageDlg

    { e.message, mtError, [mbOk],}; Halt {1};

    End;

    End;

    Script di atas merupakan script yang paling sederhana, dalam artian minimal diperlukan

    untuk

    menginisialisasi penggunaan openGL.Fungsi-fungsi lain seperti yang disebut diatas seperti

    glViewport, glMatrixMode, dapat di tambah kan pada script sesuai dengan kebutuhan.

    - Pembuatan gambar

    Didalam openGL pembuatan obyek dilakukan dengan titik-titik 3 dimensi,dengan mode

    GL_QUARDS, maka otomatis setiap 4 titik digambar menjadi sebuah bidang segiempat,sed

    angkan mode GL_LINES, pada setiap 2 titik digambar manjadi sebuah garis.Di dalam tahap

    ini setiap garis atau bidang juga dapat di atur warnanya.

    Fungsi atau prosedur yang digunakan :

    mode GL_QUARDS menggambarkan segi empat

    mode GL_LINES menggambark garis

    glVertex3f-penentuan titik 3 dimensi

    glColor3f penentuan warna

  • 12

    OpenGL memiliki lebih dari 200 fungsi. Fungsi tersebut

    bisa dikelompokkan menjadi :

    Fungsi primitif, menentukan elemen yang bisa menghasilkan gambar di layar. Fungsi

    ini terdiri dari 2 jenis, yaitu primitif geometric seperti polygon (segi banyak) yang

    bisa dibuat menjadi dua, tiga, atau empat dimensi, dan primitif gambar seperti

    bitmaps.

    Fungsi atribut, mengontrol tampilan dari primitif. Fungsi ini menentukan warna, jenis

    garis, properti material, sumber cahaya, dan tekstur.

    Fungsi pandangan, menentukan properti kamera. OpenGL menyediakan sebuah

    virtual kamera yang bisa diposisikan dan diorientasikan relatif ke obyek yang

    ditentukan dengan fungsi primitif. Lensa kamera juga bisa dikendalikan sehingga bisa

    dihasilkan sudut

    yang lebar dan pandangan telefoto (jarak jauh).

    Fungsi windowing, fungsi ini mengendalikan windows pada layar dan penggunaan

    dari mouse dan keyboard.

    Fungsi kontrol, menghidupkan macam-macam fitur OpenGL.

    Fungsi-fungsi OpenGL dimuat didalam 2 library yang disebut dengan gl dan glu

    (atau GL dan GLU). Library yang pertama, adalah fungsi utama dari OpenGL, berisi

    semua fungsi OpenGL yang dibutuhkan sedangkan yang kedua, openGL Utility

    Llibrary (GLU) memuat fungsi yang ditulis menggunakan fungsi dari library utama

    dan sangat

    membantu bagi pengguna. Fungsi utama mempunyai nama yang diawali dengan gl seperti

    glVertex3f(), sedangkan fungsi didalam GLU mempunyai nama yang diawali dengan glu

    seperti gluOrtho2D()

    - Primitive Grafik

    Primitif objek merupakan salah satu subbab dari grafika komputer yang terdiri dari titik, garis

    dan bangun dua dimensi. Dalam grafika komputer penghasilan citra menggunakan primitive

    grafik dasar, primitif ini memudahkan untur merender atau menggambar pada layar monitor

    sebagaimana penggunaan persamaan geometri sederhana. Contoh primitive grafika dasar

    antara lain : titik, garis, kurva, fill areadan text. Objek kompleks dapat dibuat dengan

    kombinasi dari primitive ini. Misalkan, Poligaris atau yang dapat didefinisikan sebagai urutan

  • 13

    garis lurus yang saling terhubung. Secara umum algoritma grafis memiliki persamaan yaitu

    bagaimana menampilkan hasil.

    Primitive grafis yang umum dijelaskan pada tabel berikut :

    OBJEK

    GRAFIS

    PRIMITIFE GRAFIS

    Pixel (dot) Posisi (x,y) warna

    Garis (line) Posisi (x1,x2,y1,y2),Warna,Thickness,Pattern

    Lingkaran (circle) Pusat (x,y),Radius,Warna,Thickness,Pattern

    Ellipse Pusat (x,y),Radius : Horisontal/Vertical,Warna,Thickness,Pattern

    Kurva Teratur/Tidak teratur (Bezier)

    Character Type,Slanted,Thickness,Colour DLL

    Fungsi dasar menggambar titik. Berikut adalah beberapa fungsi didalam menggambar suatu

    titik, antara lain :

    - glVertex2i(x,y)

    Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan

    berupa integer.

    Contoh glVertex2i(10,10)

    o glVertex2f(x,y)

    Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan

    berupa float. Contoh glVertex2f(10.0,10.0)

    o glVertex2d(x,y)

    Yaitu suatu fungsi untuk menggambar titik pada koordinat x dan y, dengan nilai satuan

    berupa double. Contoh glVertex2d(10.0,10.0);

    Cara pendefinisian primitive objek yang digunakan dalam pembuatan suatu objek :

    #define GL_POINTS

    Primitif objek ini dipergunakan untuk menciptakan suatu titik.

    # define GL_LINES

    Primitif objek ini adalah suatu primitive objek guna menciptakan suatu garis

    # define GL_LINE_LOOP

    # define GL_LINE_STRIP

    # define GL_TRIANGLES

  • 14

    Triangle atau segitiga adalah tiga buah titik yang terhubung menjadi suatu

    segitiga dengan blok di tengahnya.

    # define GL_TRIANGLES_STRIP

    Pada triangles strip jumlah vertex yang dipergunakan

    adalah 4 buah vertex

    # define GL_TRIANGLE_FAN

    Triangles fan adalah pembuatan suatu objek dengan menggunakan segitiga

    dimana hanya menggunakan 1 titik pusat saja.

    # define GL_QUADS

    Quad atau segempat adalah empat buah titik yang terhubung menjadi quat segi

    empat dengan blok di tengahnya.

    # define GL_QUADS_STRIP

    Pada quads strip 4 buah vertex merupakan 1 kelompok.

    Langkah rendering pada quads strip :

    a.Nomor yang berhadap (membentuk 2 garis yang sejajar

    b.Nomor ganjil dengan nomor ganjil dipertemukan

    c.Nomor genap dengan nomor genap dipertemukan

    d.Garis yang tersisa akan dipertemukan

    # define GL_POLYGON

    Polygon merupakan suatu fungsi yang mirip dengan polyline, tetapi

    menghasilkan kurva tertutup dengan blok warna (fill). Rendering yang

    dimiliki oleh GL_POLYGON sama dengan GL_TRIANGLE_FAN.

    Catatan :

    a) glLineWidth yaitu suatu fungsi yang berfungsi untuk mengatur tebalnya garis,

    b) glPointSize yaitu suatu fungsi yang berfungsi untuk mengatur besarnya suatu objek,

    c) gluOrtho2D yaitu suatu fungsi untuk mengatur proyeksi hasil eksekusi dan

    mendefinisikan besarnya sistem koordinat dengan urutan kiri-kanan dan bawah-atas.

    Untuk memberi warna pada objek, seperti titik atau garis, dapat dilakukan dengan

    menggunakan fungsi glColor3f(red,green,blue). Di mana red, green, blue berada pada 0

    sampai dengan 1, yang menunjukkan skala pencerahan dari masing-masing skala. Berikut

    adalah beberapa fungsi color :

    glColor3f(0,0,0);//black

  • 15

    glColor3f(0,0,1);//blue

    glColor3f(0,1,0);//green

    glColor3f(0,1,1)//cyan

    glColor3f(1,0,0)//red

    glColor3f(1,0,1)//magenta

    glColor3f(1,1,0);//yellow

    glColor3f(1,1,1);//white

    o Gambar 2 D

    Primitive object 2D adalah suatu model pembuatan gambar yang mengacu kepada prespektif

    2 titik. Umumnya object 2D ini merupakan suatu object yang terdiri dari sekumpulan titik-

    titik yang menyambung (dihubungkan) menjadi satu dengan perantara garis lurus berupa

    polyline, polygon maupun kurva.

    o Gambar 3 D

    Yang membedakan 2 dimensi dan 3 dimensi adalah kedalaman. Kedalaman didefinisikan

    sebagai jarak antara viewer terhadap benda yang dia lihat. Ini berarti berbeda dengan 2

    dimensi yang hanya menggunakan 2 ukuran, yaitu panjang dan lebar, maka 3 dimensi

    menggunakan 3 ukuran, yaitu panjang, lebar dan kedalaman. Secara geometri ketiga ukuran

    tersebut disimbolkan dengan sumbu x, y, dan z.

  • 16

    BAB III : Pratikum

    1. Gambar 2 Dimensi

    o Jajar Genjang glEnd();#include

    void userdraw()

    {

    static int tick=0;

    void drawDot(int x,int y);

    glBegin(GL_LINES);

    glVertex2i(50,50);

    glVertex2i(100,100);

    glVertex2i(50,50); glVertex2i(200,50);

    glVertex2i(200,50);

    glVertex2i(250,100);

    glVertex2i(250,100);

    glVertex2i(100,100);

    }

    void display(void)

    {

    //clear screen

    glClear(GL_COLOR_BUFFER_BIT);

    userdraw();

  • 17

    glutSwapBuffers();

    }

    int main(int argc, char**argv)

    {

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

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

    glutInitWindowPosition(200,200);

    glutInitWindowSize(640,480);

    glutCreateWindow("Menampilkan Titik");

    glClearColor(1.0f,0.0f,0.0f,0.0f); gluOrtho2D(0.,640.,-

    240.,240.); glutIdleFunc(display); glutDisplayFunc(display);

    glutMainLoop();

    return 0;

    } Hasilnya

  • 18

    o Bunga

    #include

    #include

    typedef struct

    {

    int x,y;

    }point2D_t;

    typedef struct

    {

    float r,g,b;

    }color_t;

    void setColor (color_t col)

    {

    glColor3f(col.r, col.g, col.b);

    }

    void drawPolygon(point2D_t pnt[],int n)

    {

    int i;

    glBegin(GL_POLYGON); for

    (i=0; i

  • 19

    {

    glVertex2i(pnt[i].x,pnt[i].y);

    }

    glEnd();

    }

    void fillPolygon (point2D_t pnt[], int n, color_t color)

    {

    int i; setColor(color);

    glBegin(GL_POLYGON); for

    (i=0; i

  • 20

    color_t biru ={0,1,1};

    fillPolygon(batang,4, biru);

    drawPolygon(batang,4);

    point2D_t

    pot[4]={{-60,-190},{60,-190},{30,-240},{-30,-240}};

    color_t hitam ={0,0,1};

    fillPolygon(pot,4, hitam);

    drawPolygon(pot,4);

    point2D_t

    pot2[6]={{-80,-160},{-50,-160},{-50,-190},{-60,-190},{-60,-

    170},{-80,-170}};

    color_t hitam3 ={0,0,1};

    fillPolygon(pot2,4, hitam3);

    drawPolygon(pot2,4);

    point2D_t

    pot3[6]={{80,-160},{50,-160},{50,-190},{60,-190},{60,-

    170},{80,-170}};

    color_t hitam2 ={0,0,1};

    fillPolygon(pot3,4, hitam2);

    drawPolygon(pot3,4);

  • 21

    static int tick=0; point2D_t

    shape[360]; double srad,r;

    for(int s=0; s

  • 22

    { glutInit(&argc,argv);

    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);

    //posisi layar

    glutInitWindowPosition(150,150);

    //ukuran layar

    glutInitWindowSize(640,480);

    //title windows

    glutCreateWindow("Bunga Raflesia");

    //warna back layar glClearColor(1.0,1.0,1.0,0.0);

    gluOrtho2D(-300.,400.,-300.,300.);

    glutIdleFunc(display); glutDisplayFunc(display);

    glutMainLoop();

    return 0;

    }

  • 23

    2. Gambar 3 Dimensi

    o Kubus 1

    #include

    #include

    struct point {

    float x,y,z;

    };

    struct vektor {

    float v[4];

    };

    struct matriks {

    float m[4][4];

    };

    struct face {

    int jumtitikons;

    int indextitik[40];

    };

    struct objek {

    int jumtitik;

    point titik[40];

  • 24

    int jumsisi;

    face sisi[30];

    };

    matriks mat;

    float theta=0.5;

    vektor point2vektor(objek balok, int i) {

    vektor vec;

    vec.v[0] = balok.titik[i].x;

    vec.v[1] = balok.titik[i].y;

    vec.v[2] = balok.titik[i].z;

    vec.v[3] = 1;

    return vec;

    }

    point vektor2point(vektor vec) {

    point pnt;

    pnt.x = vec.v[0];

    pnt.y = vec.v[1];

    pnt.z = vec.v[2];

    return pnt;

    }

    matriks identitas(void) {

    int i,j;

    matriks mat;

    for (i=0;i

  • 19

    matriks translasi(float dx, float dy, float dz) {

    matriks trans = identitas();

    trans.m[0][3] = dx;

    trans.m[1][3] = dx;

    trans.m[2][3] = dx;

    return trans;

    }

    matriks rotasiX(float theta) {

    matriks rotate = identitas();

    float cs = cos(theta);

    float sn = sin(theta);

    rotate.m[1][1] = cs;

    rotate.m[1][2] = -sn;

    rotate.m[2][1] = sn;

    rotate.m[2][2] = cs;

    return rotate;

    }

    matriks rotasiY(float theta) {

    matriks rotate = identitas();

    float cs = cos(theta);

    float sn = sin(theta);

    rotate.m[0][0] = cs;

    rotate.m[0][2] = sn;

    rotate.m[2][0] = -sn;

    rotate.m[2][2] = cs;

    return rotate;

    }

    matriks rotasiZ(float theta) {

    matriks rotate = identitas();

    float cs = cos(theta);

    float sn = sin(theta);

    rotate.m[0][0] = cs;

    rotate.m[0][1] = -sn;

  • 20

    rotate.m[1][0] = sn;

    rotate.m[1][2] = cs;

    return rotate;

    }

    vektor kali (matriks mat, vektor b) {

    int i,j;

    vektor c;

    for (i=0;i

  • 21

    c.v[3] = 1;

    return c;

    }

    void DrawPolygon(objek obj)

    {

    int i,j;

    float r,g,b;

    for(i=0;i

  • 22

    point HslTitik;

    mat = titling;

    objek balok =

    {8,{{10,15,30},{30,15,30},{30,15,10},{10,15,10},{10,30,30},{30,30,30},{30

    ,30,10},{10,30,10}},

    6,{{4,{0,1,5,4}},{4,{3,2,6,7}},{4,{0,3,7,4}},{4,{1,2,6,5}},{4,{0,1,2,3}},{4,{

    4,5,6,7}}}};

    for (i=0;i

  • 23

    Hasilnya :

    o Kubus

    #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();

  • 24

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

    }

    void setLighting()

  • 25

    {

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

  • 26

    glLoadIdentity();

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

    }

    void displayObject()

    { setMaterial();

    setLighting();

    setViewport();

    setCamera();

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

  • 27

    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

    BAB IV : Analisa Hasil Pratikum

    o Analisa dari Hasil Percobaan Jajar Genjang

    Pembuatan gambar diatas yaitu dengan menetapkan titik titik sebagai titik awal dan titik

    akhir dan kemudian di hubung kan menjadi sebuah garis, dan kumpulan garis garis tersebut

    yang membentuk jajar genjang.

    o Analisa dari percobaan gambar Bunga

    Dalam pembuatan gambar diatas, kita harus menguasai fungsi sin, cos, dan tan . dalam

    pemberian warna 1 untuk mengaktifkan suatu gambar, dan 0 untuk menonaktifkan nya,

    gambar ini juga menggunakan kumpulan titik titik sebagai denah pembuatannya.

  • 29

    o Hasil Percobaan Gambar Kubus

    Pada gambar diatas, tampak bahwa gambar dapat dilihat dari semua sisi, gambar tersebut

    juga bisa bergerak sesuai dengan script yang dibuat.

  • iii

    PENUTUP

    Dari penjelasan di atas dapat kita simpulkan bahwa penggunaan program OPENGL sangat

    membantu dalam studi Komputer Grafik bagi para pemula.Meskipun hasil dari praktikum

    yang telah saya lakukan di atas masih banyak mengalami kekurangan namun bagi saya yang

    merupakan seorang mahasiswa yang baru mengenal computer grafikc, hal ini sangat

    membantu Saya dalam pendalaman ilmu saya akan komputer grafik.

    Pada bagian penutup ini Saya juga dituntut untuk memberikan saran tentang program

    OPENGL tersebut.Tidak akan banyak saran Saya untuk program ini karena mungkin saja

    bukan program ini yang memiliki kekurangan,akan tetapi akibat Saya yang merupakan

    seorang pemula sehingga sangat kaku dan mengalami kesulitan dalam pengaplikasiannya

    didalam praktik langsungnya.Saya harap di kemudian hari program OPEN GL ini dapat

    menjadi sebuah program dalam komputer grafik dapat mempermudah dan mengefesiensikan

    kinerjanya dengan mengupgrade atau dengan hal lainnya yang dapat mempermudah kami

    sebagai pemula untuk dapat memahaminya dengan cepat.

    Demikian makalah praktikum sebagai tugas Ujian Akhir Semester program Studi Komputer

    Grafik semester IV ini Saya perbuat. Banyak kekurangan dalam penyajian ataupun dalam hal

    hasil akhir praktikum Saya. Namun Saya cukup berbangga hati dapat menyelesaikan makalah

    ini dengan hasil jerih payah usaha Saya sendiri yang mencari berbagai sumber pustaka yang

    berkaitan dengan makalah ini.

    Terimakasih Saya sampaikan kepada Dosen Komputer Grafik Ibu Indri Sulistianingsih,S.Kom

    dan seluruh penulis buku ataupun blog yang telah Saya manfaatkan tulisannya sebagai

    referensi dari makalah ini.

    Semoga makalah ini dapat bermanfaat dan mendapatkan respon yang positif dari pembaca

    Wassalamualaikum Wr Wb.

  • iv

    DAFTAR PUSTAKA

    . 2011. Komputer Grafik.

    http://dotsal.wordpress.com/2011/09/25/komputer-grafik/

    diakses tanggal 12 Juni 2014

    , 2008. Primitif Grafika. Online.

    http://materiquliah.wordpress.com/2008/11/15/primitif-grafika/

    . Diakses pada tanggal 12 Juni 2014

    2013. Grafika Komputer3D. (Online).

    (http://id.wikipedia.org/wiki/Grafika_komputer_3D

    Diakses pada tanggal 12 Juni 2014

    2012. Translasi, dan Rotasi Grafik Komputer.

    (Online). (http://kripiksukun.blogspot.com/2012 Page 337/04/translasiskala-dan-rotasi-

    grafik.html).

    Diakses pada tanggal 12 Juni 2014

    ______2012. Apa itu openGL dan fungsinya

    http://www.qbonk.net/apa-itu-opengl-dan-fungsinya.html

    diakses pada tanggal 12 juni 2014