Download - Laporan Praktikum Komputer Grafik
LAPORAN PRAKTIKUM
KOMPUTER APLIKASI
Nama Nomor Tanggal Tanda tangan
Praktikum Mahasiswa Kumpul Praktikum
Andronius
Perangin-angin
1214370192 12-Juny-2014
Universitas Pembangunan Panca Budi
Fakultas Teknik
Jurusan Sistem Komputer
Medan,12 juny
2014
Kelas
TI4-SORE D
Nama Penilai Tanggal Nilai Tanda tangan
Nama Dosen Koreksi Dosen
Pengampu
Daftar Isi
Daftar isi……………………………………………………………………………………..
Kata penghantar…………………………………………………………………………….
BAB I Pendahuluan…………………………………………………………………………
I.1 Umum…………………………………………………………………………….
I.2 Latar Bekalang…………………………………………………………………..
I.3 Tujuan Praktikum…………………………………………………………........
BAB II LANDASAN TEORI TENTANG KOMPUTER GRAFIK…………………….
II.1 Sistem Koordinat Dua Dimensi………………………………………………..
II.1.2 Titik / Pixel……………………………………………………………………
II.1.3 Garis…………………………………………………………………………..
II.1.4 Poligon………………………………………………………………………...
II.2 Teori Grafika Komputer Tiga Dimensi……………………………………….
II.2.1 Sistem Koordinat Tiga Dimensi……………………………………………..
II.2.1.1 Sistem Koordinat Cartesian Tiga Dimensi……………………………….
II.2.1.2 Sistem Koordinat Spheris………………………………………………..
II.2.2 Refleksi……………………………………………………………………..
II.2.3 Proyeksi…………………………………………………………………….
II.2.3.1 Proyeksi Paralel……………………………………………………………
II.2.3.2 Proyeksi Perspektif………………………………………………………..
II.2.4 Kamera Model……………………………………………………………..
II.2.5 Model Layar………………………………………………………………..
II.2.6 Pemotongan (Clipping)…………………………………………………….
BAB III HASIL PERCOBAAN /PRAKTIKUM…………………………………………
III.1.1 Contoh latihan fungsi dari primitive drawing…………………………….
BAB IV ANALISA HASIL PERCOBAAN………………………………………………
IV.1 Pendahuluan…………………………………………………………………..
Kesimpulan dan saran……………………………………………………………..
KATA PENGANTAR
Puji dan Syukur kami panjatkan ke Hadirat Tuhan Yang Maha Esa, karena berkat limpahan
Rahmat dan Karunia-nya sehingga kami dapat menyusun laporan ini dengan baik dan tepat
pada waktunya. Dalam laporan ini kami membahas mengenai 2 dimensi dan 3 dimensi
Laporan ini dibuat dengan berbagai observasi dan beberapa bantuan dari berbagai pihak
untuk membantu menyelesaikan tantangan dan hambatan selama mengerjakan laporan ini.
Oleh karena itu, kami mengucapkan terima kasih yang sebesar-besarnya kepada semua
pihak yang telah membantu dalam penyusunan laporan ini.
Kami menyadari bahwa masih banyak kekurangan yang mendasar pada laopran ini. Oleh
karena itu kami mengundang pembaca untuk memberikan saran serta kritik yang dapat
membangun kami. Kritik konstruktif dari pembaca sangat kami harapkan untuk
penyempurnaan laporan selanjutnya.
Akhir kata semoga laporan ini dapat memberikan manfaat bagi kita sekalian.
Medan, 12 Juni 2014
Hormat kami,
Tim Penulis
BAB I
PENDAHULUAN
I.1 Umum
Microsoft visual studio merupakan sebuah perangkat lunak lengkap(suite) yang
dapat digunakan untuk melakukan pengembangan aplikasi,baik aplikasi bisnis,aplikasi
personal,ataupun komponen aplikasinya,dalam bentuk aplikasi console,aplikasi
windows,ataupun aplikasi web.
Visual studio mencangkup compiler,SDK,integrated,development environment(IDE),dan
dokumentasi(umumnya berupa MSDN library)
Microsoft visual studio dapat digunakan untuk mengembangkan aplikasi dalam native code
(dalam bentuk bahasa mesin yang berjalan di atas windows)
Selain itu,visual studio juga dapat digunakan untuk mengembangkan aplikasi
Silverlight,aplikasi windows mobile(yang berjalan di atas .NET compact framework).
I.2 Latar Belakang
Secara umum kita belajar visual C++ agar setiap mahasiswa/i dapat mengerti
bahasa pemograman C++ itu sediri,bagaimana cara menjalankannya,dan arti dari bahasa
program itu.
Misalnya program 2D ini adalah merupakan dimensi panjang dan lebar dalam satu bidang
datar, jadi hanya ada panjang dan lebar saja tanpa adanya dimensi tebal. Bidang dua
dimensi dapat digambarkan dengan sumbu X dan Y. 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.contoh 2D adalah Line,
Circle, arc, polygon, text,section, rectangle, ellips, star, helix sedangkan 3D adalah
Merupakan adanya dimensi tebal pada gambar sehingga menjadikan gambar jauh lebih
nyata dari pada gambar dua dimensi. Biasanya bidang tiga dimensi dinyatakan dengan
sumbu X Y dan Z. Konsep tiga dimensi atau 3D menunjukkan sebuah objek atau ruang
memiliki tiga dimensi geometris yang terdiri dari: kedalaman, lebar dan tinggi. Contoh tiga
dimensi suatu objek / benda adalah bola, piramida atau benda spasial seperti kotak sepatu
I.3 Tujuan Praktikum
Tujuan praktikum ini agar mahasiswa/i dapat mengerti dan memahami program
C++ itu supaya dapat megembangkannya didalam kampus ataupun diluar kampus,
BAB II
LANDASAN TEORI TENTANG KOMPUTER GRAFIK
II.1 Teori Dasar Grafika Komputer
Pada bagian ini akan dibahas tentang teori dasar dari grafika komputer,yang akan
digunakan dalam pembahasan teknik environment mapping
II.1.1 Sistem Koordinat Dua Dimensi
Sistem koordinat digunakan untuk membedakan posisi atau lokasi suatu titik.
Sistem koordinat yang sering digunakan adalah sistem koordinat cartesian dua
dimensi seperti yang digambarkan pada gambar 2.1. Dalam sistem koordinat cartesian
dua dimensi digunakan 2 besaran (x,y). Sumbu x digunakan untuk memproyeksikan
panjang dan sumbu y untuk tinggi.
Gambar II.1.1 Sistem Koordinat Cartesian dua dimensi, dengan sumbu x
dan y
II.1.2 Titik / Pixel
Titik atau pixel (singkatan dari picture element) merupakan elemen penyusun
terkecil dari suatu objek dalam grafika komputer. Titik didefinisikan pada suatu posisi
(x,y) dalam koordinat cartesian. Gambar II.1.2 menunjukkan sebuah titik
pada posisi (3,4) dalam koordinat cartesian.
Gambar II.1. 2 Titik dengan koordinat cartesian (3,4)
Titik memiliki atribut yaitu warna dari titik tersebut. Selain itu, titik juga memiliki
property yang terdiri dari posisi atau koordinat (x,y) titik tersebut.
6
II.1.3 Garis
Garis merupakan persamaan matematika yang disusun oleh sekumpulan titik.
Suatu titik merupakan penyusun dari garis jika koordinat titik tersebut memenuhi
persamaan garis y = mx + c. Gambar 2.3 menunjukkan sebuah garis dengan
koordinat titik – titik ujung (2,2) dan (5,4).
Gambar II.1. 3 Garis dengan koordinat titik –
titik ujung (2,2) dan (5,4)
Garis memiliki atribut yang terdiri dari warna, tebal dan jenis dari garis
tersebut (gambar II.1.4). Garis juga memiliki property yang terdiri dari koordinat
dari titik – titik ujung garis tersebut (x1,y1) dan (x2,y2).
Gambar 2. 4 Jenis garis
7
II.1.4 Poligon
Poligon merupakan bidang tertutup yang dibentuk oleh minimal 3 simpul (titik
sudut atau vertices) yang terhubung oleh garis (sisi atau edge). Garis – garis
tersebut tidak saling memotong. Contoh : segitiga, segi lima, segi delapan, dsb.
Gambar 2.5 menunjukkan sebuah poligon yang berupa segi lima.
Gambar II.1. 5 Poligon segi lima memiliki lima simpul dan
lima sisi
Poligon juga memiliki atribut seperti : tebal tepi, jenis tepi, warna tepi dan jenis
isi poligon (gambar 2.6). Property dari poligon terdiri dari koordinat titik – titik
sudut penyusunnya.
Gambar II.1. 6 Jenis isi poligon (hollow, solid,
patterned)
8
II.2 Teori Grafika Komputer Tiga Dimensi
Teori grafika komputer tiga dimensi yang akan digunakan dalam pembahasan
teknik environment mapping akan dibahas pada bagian ini.
II.2.1 Sistem Koordinat Tiga Dimensi
Koordinat dua dimensi dirasakan kurang memadai dalam merepresentasikan
suatu objek tiga dimensi. Pada grafik tiga dimensi terdapat 2 buah sistem
koordinat, yaitu sistem koordinat cartesian tiga dimensi dan sistem koordinat
spheris.
II.2.1.1 Sistem Koordinat Cartesian Tiga Dimensi
Dalam sistem koordinat cartesian dua dimensi hanya terdapat 2 besaran saja
(sumbu x dan y). Sedangkan untuk memodelkan objek tiga dimensi yang memiliki
kedalaman, diperlukan 1 sumbu tambahan yaitu sumbu z, maka digunakanlah
sistem koordinat cartesian tiga dimensi. Sistem koordinat cartesian dibedakan
menjadi 2 yaitu, sistem koordinat tangan kanan dan sistem koordinat tangan kiri.
Sistem koordinat tangan kanan diilustrasikan dengan jari telunjuk tangan kanan
sebagai sumbu x diputar sebesar 90 derajat ke arah jari tengah tangan kanan
sebagai sumbu y, sehingga arah ibu jari tangan kanan sebagai sumbu z mendekati
pengamat (arah z positif). Gambar 2.7 menunjukkan orientasi sumbu koordinat
menggunakan sistem koordinat tangan kanan.
Gambar II. 7 Sistem Koordinat Tangan Kanan
9
Sedangkan pada sistem koordinat tangan kiri dapat diilustrasikan dengan jari telunjuk
tangan kiri sebagai sumbu x diputar sebesar 90 derajat ke arah jari tengah tangan kiri
sebagai sumbu y, sehingga arah ibu jari tangan kiri sebagai sumbu z menjauhi
pengamat (arah z positif). Gambar 2.8 menunjukkan orientasi sumbu koordinat
menggunakan sistem koordinat tangan kiri. Dalam komputer grafik lebih banyak
digunakan sistem koordinat tangan kanan.
Gambar 2. 8 Sistem Koordinat Tangan Kiri
II.2.1.2 Sistem Koordinat Spheris
Pada sistem koordinat spheris, sebuah titik dianggap terletak pada permukaan
kulit bola yang memiliki jari – jari R, dan titik pusat bola berimpit dengan titik
pusat sistem koordinat. Dapat diambil sembarang titik, misalnya titik W sehingga
dikenal besaran colatitud dan azimuth. Colatitud ( ) adalah besarnya sudut yang
dibentuk antara sumbu z dan garis yang ditarik dari titik pusat ke titik W. Azimuth (
) adalah besarnya sudut antara bidang xz dengan bidang yang melewati titik W dan
sumbu z. Gambar 2.9 menunjukkan sistem koordinat spheris.
Gambar 2. 9 Sistem Koordinat Spheris
Dengan trigonometri, komponen koordinat spheris dapat dinyatakan dalam bentuk
R, , dan yaitu :
Wx = R sin ( ) cos ( ) Wy = R sin
( ) sin ( ) Wz = R cos ( )
1010
II.2.2 Refleksi
Refleksi merupakan sifat material yang dapat mencerminkan bentuk objek –
objek di sekitarnya jika terkena sinar. Besarnya sudut pantul bergantung pada
besarnya sudut datang dari sinar dan bentuk permukaan dari objek yang terkena
sinar tersebut.
Secara umum refleksi dapat diilustrasikan seperti gambar 2.10 berikut :
Gambar II. 10 Vektor refleksi R , berasal dari vektor V , dengan garis
normal
N , dan dengan sudut
Rumus untuk menghitung vector R dengan besar sudut , vektor normal
N dan vektor asal V :
R = V - 2(V . N ) N
1111
II.2.3 Proyeksi
Proyeksi merupakan proses mentransformasikan titik – titik di
sistem koordinat berdimensi n ke titik – titik di sistem koordinat dengan dimensi
yang lebih kecil dari n. Dalam grafik tiga dimensi, proyeksi didefinisikan
dengan pancaran sinar proyeksi yang berasal dari sebuah pusat proyeksi yang
dipancarkan sampai mengenai masing – masing titik dari objek tiga dimensi dan
memotong sebuah bidang proyeksi sehingga terbentuk hasil proyeksi.
Dua teknik proyeksi yang sering digunakan dalam grafik tiga dimensi yaitu
proyeksi perspektif dan proyeksi paralel. Perbedaan diantara kedua teknik itu
terletak pada letak pusat proyeksi terhadap bidang proyeksi. Pada proyeksi perspektif,
jarak pusat proyeksi ke bidang proyeksi terdefinisi. Pada proyeksi paralel jarak
pusat proyeksi ke bidang proyeksi tidak terdefinisi (sangat jauh).
Proyeksi perspektif menghasilkan efek visual yang menyerupai sistem
fotografi dan sistem visual pada manusia. Hal ini membuat proyeksi perspektif
menampilkan objek yang lebih nyata daripada objek yang dihasilkan oleh
proyeksi paralel. Proyeksi paralel biasanya digunakan untuk pengukuran yang
pasti. Karena perbandingan panjang objek di ruang tiga dimensi dengan panjang
objek di bidang proyeksi selalu sama.
II.2.3.1 Proyeksi Paralel
Proyesi paralel dapat diilustrasikan dengan sebuah titik pada bidang tiga
dimensi W(wx,wy,wz) diproyeksikan ke bidang dua dimensi dengan cara
menghapus salah satu komponen titiknya, misalnya komponen z (membuat nilai wz
sama dengan nol) sama dengan memproyeksikan titik W ke bidang xy. Dalam
hal ini bidang xy disebut dengan bidang pandang (viewplane). Proyeksi dari setiap
titik diperoleh dengan menjatuhkan sinar (disebut proyektor), dengan arah jatuh
sinar tegak lurus terhadap bidang proyeksi. Proyeksi ini disebut dengan proyeksi
orthogonal. Gambar 2.11 menggambarkan proyeksi paralel.
Gambar II. 11 Proyeksi Paralel
1212
II.2.3.2 Proyeksi Perspektif
Proyeksi perspektif sering juga disebut frustrum projection, merupakan
sekumpulan sinar paralel yang diproyeksikan terhadap titik hilang (vanishing
point). Jika sekumpulan sinar sejajar dengan salah satu sumbu koordinat, maka
titik hilang disebut dengan titik hilang sumbu. Sedangkan jika ada titik hilang
sumbu yang berpotongan dengan bidang proyeksi maka disebut dengan titik hilang
utama. Objek yang berada di dekat view plane1 akan terlihat lebih besar bila
dibandingkan dengan objek yang letaknya jauh dari view plane, hal ini membuat
proyeksi perspektif lebih terlihat nyata. Gambar 2.12 menunjukkan proyeksi
perspektif.
Gambar 2. 12 Proyeksi Perspektif
View Plane adalah bidang pandang berbentuk piramid yang dihasilkan dari suatu proyeksi
1313
II.2.4 Kamera Model
Dalam grafika komputer tidak semua objek dapat ditampilkan pada layar,
sehingga diperlukan suatu batasan objek – objek mana saja yang akan
ditampilkan. Objek – objek tersebut dibatasi dengan suatu daerah yang disebut
view volume.Untuk menampilkan ke layar maka harus dilakukan proyeksi terhadap
view volume pada view plane, hanya sebagian dari view plane yang akan
ditampilkan pada layar. Bagian dari view plane ini berbentuk bujur sangkar,
disebut dengan viewport seperti terlihat pada gambar 2.13 berikut ini :
Gambar 2. 13 Kamera Model dengan View Frustrum
View plane dibatasi oleh dua plane2
(Near dan Far), yang paralel terhadap view
plane ini disebut dengan view frustrum. Paralel plane yang dekat dengan mata
(E) disebut dengan near plane, sedangkan plane yang letaknya jauh dari mata
disebut dengan far plane.
Kombinasi dari lokasi kamera (eye point), view plane, viewport, dan view
frustrum disebut dengan kamera model. Kamera model merupakan suatu cara
untuk menempatkan kamera dan mengorientasikannya pada ruang tiga dimensi.
Plane adalah bidang yang berbentuk persegi panjang.
1414
Salah satu cara yang digunakan dalam kamera model yaitu sistem koordinat arah
pandang.
Sistem koordinat arah pandang sering disebut dengan sistem koordinat uvn, sesuai
dengan nama – nama sumbu koordinat yang menjadi komponennya.
Sistem koordinat arah pandang dapat diilustrasikan dengan bidang pandang
berimpit dengan bidang uv, sedangkan mata terletak pada sumbu n. Hal ini mirip
dengan sistem koordinat cartesian, dimana mata terletak pada sumbu z, dan
bidang pandang pada bidang xy.
Gambar 2. 14 Sistem Koordinat Arah Pandang
Hubungan antara sistem koordinat arah pandang dengan sistem koordinat cartesian,
diilustrasikan pada gambar 2.14. Dari gambar tersebut, bidang uv merupakan bidang
pandang. Pada bidang pandang ini ditentukan sebuah titik yang disebut dengan titik
acuan pandang (view reference point, VRP), dan dianggap sebagai titik pusat dari
sistem koordinat arah pandang. Dalam sistem koordinat dunia, komponen vektor n
dinyatakan sebagai (nx,ny,nz). Dengan adanya sumbu ke arah n inilah sistem
koordinat uvn terbentuk.
Sumbu u dan sumbu v saling tegak lurus. Sedangkan vektor n mempunyai arah tegak
lurus terhadap bidang uv, dan karena sumbu u dan sumbu v terletak pada
1515
bidang uv, maka jelaslah bahwa arah vektor n tegak lurus terhadap sumbu u dan
sumbu v.
Jika vektor n dan v diketahui, dengan mudah bisa dihitung komponen vektor u.
Karena arah vektor u tegak lurus pada vektor v dan n, maka vektor u bisa
dihitung dengan menggunakan cross product dari vektor n dan v, yaitu
u = n x v.
Setelah sistem koordinat arah pandang lengkap dengan berbagai komponennya,
maka perlu ditentukan batas jendela dan posisi matanya. Jendela terletak pada
sistem koordinat bidang pandang, dan batas – batasnya dinyatakan sebagai (jkr, jat,
jkn, jbw). Dari batas – batas tersebut terlihat bahwa pada arah mendatar,
jendela mempunyai batas – batas dari u = jkr sampai v = jkn, pada arah tegak, jendela
mempunyai batas dari u = jat sampai v = jbw.
Posisi mata, yaitu m(mu, mv, mn) dapat diletakkan pada sembarang tempat pada
sistem koordinat arah pandang. Posisi mata yang paling sering dipakai adalah
dengan menempatkannya pada sumbu n sejauh M dari VRP, yaitu pada posisi m = (0,
0,M).
Gambar II.15 berikut mengilustrasikan posisi jendela dan mata pada sistem
koordinat arah pandang.
Gambar 2.15 Posisi jendela dan mata
1616
II.2.5 Model Layar
Pada grafika komputer, layar penampil memiliki titik pusat koordinat
(0,0) terletak pada posisi paling atas dan paling kiri. Sistem windowing pada
komputer grafik berbentuk kotak yang didefinisikan berupa koordinat (kiri,atas) dan
(kanan,bawah) seperti yang terlihat pada gambar 2.16 berikut :
Gambar 2. 16 Titik pusat koordinat pada layar penampil
Dari gambar tersebut, untuk posisi tengah (center), lebar layar dan tinggi layar dapat
dihitung sbb :
horizontal center = ( kiri + kanan ) / 2 vertical
center = ( atas + bawah ) / 2 lebar = kanan –
kiri
tinggi = bawah – atas
Dalam menampilkan gambar pada layar penampil, dilakukan perbandingan ukuran
window dengan kamera model. Sehingga jika dilakukan perubahan ukuran pada
kamera model, window dapat dengan mudah menyesuaikan ukurannya. Gambar
II.17 menunjukkan proses untuk menampilkan sebuah titik ke layar.
Gambar 2. 17 Proses untuk menampilkan sebuah titik ke layar
II.2.6 Pemotongan (Clipping)
Kadang kala objek – objek yang hendak ditampilkan ada bagian yang
berpotongan dengan view volume sehingga perlu dilakukan proses pemotongan
(clipping). Gambar 2.18 menunjukkan proses clipping dan culling.
Gambar II. 18 Proses pemotongan (clipping) dilakukan pada garis di
tengah dan bawah, proses penghilangan (culled) garis di atas
II.3 Pemetaan Tekstur
Suatu objek akan terlihat lebih nyata dengan adanya tekstur yang
sesuai dengan objek tersebut dibandingkan dengan objek yang tidak memakai
tekstur /
BAB III
HASIL PERCOBAAN /PRAKTIKUM
III.1.1 Contoh latihan fungsi dari primitive drawing
OpenGL Primitives, Drawing 2D Object
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.
Setiap obyek harus dimodelkan sebagai kombinasi dari komponen-komponen dasar tersebut.
Sebagai contoh, obyek segiempat pada tutorial 01 tersebut dimodelkan dengan menggunakan
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:
Dalam OpenGL, menggambar geometric primitives selalu dilakukan di antara fungsi
glBegin(PRIMITIVES)
// Fungsi Menggambar Primitives di sini
glEnd()
Setiap OpenGL geometric primitive dispesifikasi oleh urutan vertex-vertex-nya dalam bentuk
urutan koordinat homogenous. Koordinat homogenous adalah koordinat dalam bentuk ( x, y, z,
w ). Setiap primitive memiliki standar tentang bagaimana vertex-vertex diorganisasikan
III.1.2 Contoh latihan fungsi dari 2D
#include <stdafx.h>
#include <stdlib.h>
#include <windows.h>
#include <glut.h>
int a=0,b=0,c=0,d=0;
int rumus1(int x1,int x2,int y1,int y2,int x){
int y=(x*(y2-y1)+x2*y1-x1*y2)/(x2-x1);
return y;
}
void tampilkan(){
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glClearColor(0,0,0,0);
glLoadIdentity();
glBegin(GL_QUADS);
glVertex2d(2+a,rumus1(2,3,4,6,2+a));
glVertex2d(6+b,rumus1(6,10,4,14,6+b));
glVertex2d(6+c,1);
glVertex2d(2,1+d);
glEnd();
glFlush();
Sleep(600);
if(1+a<3){
a++;
}
if(5+b<10){
b++;
}
if (6+c<15){
c++ ;
}
if(1+d<2){
d++;
}
}
void init (void)
{
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0,20,0,20);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize (250,250); //Ukuran window
glutCreateWindow ("2d");
glutDisplayFunc(tampilkan);
init ();
glutIdleFunc(tampilkan);
glutMainLoop();
return 0;
}
III.1.3 Contoh latihan fungsi dari 3D
#include <GL/glut.h>
#include <math.h>
typedef
struct {
float x,y,z;
} point3D_t;
typedef
struct {
float v[4];
} vector3D_t;
typedef struct {
int NumberofVertices;
short int pnt[32];
}face_t;
typedef struct {
int NumberofVertices;
point3D_t pnt[100];
int NumberofFaces;
face_t fc[32];
}object3D_t;
GLfloat vertices[][3] = {{0.0,0.0,1.50},
{0, 1,0.0},
{0.866, 0.5},
{0.866, -0.5},
{0, -1},
{-0.866, -0.5},
{-0.866 , 0.5},
{0.0,0.0,0.0}};
GLfloat normals[][3] = {{0.0,0.0,1.0},
{0, 1,0.0},
{0.866, 0.5},
{0.866, -0.5},
{0, -1},
{-0.866, -0.5},
{-0.866 , 0.5},
{0.0,0.0,0.0}};
GLfloat colors[][3] = {{0.0,0.0,0.0},
{1.0,0.0,0.0},
{1.0,1.0,0.0},
{0.0,1.0,0.0},
{0.0,1.0,1.0},
{0.0,0.0,1.0},
{1.0,0.0,1.0},
{1.0,1.0,1.0}};
void DrawPoints(int nNumPoints, GLfloat ctrlPoints[][3])
{
int i;
glPointSize(2.0f);
glColor3f(0.0f, 0.0f, 1.0f);
glBegin(GL_POINTS);
for(i = 0; i < nNumPoints; i++)
glVertex2fv(ctrlPoints[i]);
glEnd();
}
void polygon(int x, int y, int z )
{
glBegin(GL_POLYGON);
glColor3fv(colors[x]);
glNormal3fv(normals[x]);
glVertex3fv(vertices[x]);
glColor3fv(colors[y]);
glNormal3fv(normals[y]);
glVertex3fv(vertices[y]);
glColor3fv(colors[z]);
glNormal3fv(normals[z]);
glVertex3fv(vertices[z]);
glEnd();
}
void colorkubus()
{
polygon(1,7,2);
polygon(2,7,3);
polygon(3,7,4);
polygon(4,7,5);
polygon(5,7,6);
polygon(6,7,1);
polygon(1,0,2);
polygon(2,0,3);
polygon(3,0,4);
polygon(4,0,5);
polygon(5,0,6);
polygon(6,0,1);
}
static GLfloat theta[] = {0.0,0.0,0.0};
static GLint axis = 2;
static GLdouble viewer[]= {0.0, 0.0, 5.0};
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(viewer[0],viewer[1],viewer[2], 0.0, 0.0, 0.0, 1.0, 1.0, 0.0);
colorkubus();
//DrawPoints(7, vertices);
glFlush();
glutSwapBuffers();
}
void myReshape(int w, int h)
{
glViewport(0, 0, w, h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0, w/h, 2.0, 20.0);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE);
// white background
glClearColor(1.0f, 1.0f, 1.0f, 1.0f );
}
void
main(int argc, char **argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(500, 500);
glutInitWindowPosition(250, 200);
glutCreateWindow(".:OpenGL - 3Dku:.");
glutReshapeFunc(myReshape);
glutDisplayFunc(display);
glutMainLoop();
}
BAB IV
ANALISA HASIL PERCOBAAN
IV.1 Pendahuluan
Setelah dilakukan pengujian di laboratorium, hasil dan data yang diperoleh diolah
dan dianalisis sedemikian rupa untuk didapatkan kesimpulan sesuai tujuan penelitian yang
telah ditetapkan. Hasil olah data disajikan secara singkat dan padat. Hasil pengolahan
data pelengkap yang lebih detil akan dilampirkan di bagian akhir laporan ini.
Kesimpulan dan saran
Grafika komputer akhir-akhir ini mulai dirasa sangat penting dan mencakup hampir semua
bidang kehidupan seiring dengan semakin pentingnya sistem komputer dalam berbagai kegiatan.
Grafika komputer merupakan gambar atau grafik yang dihasilkan oleh komputer. Teknik-teknik
yang dipelajari dalam grafika komputer adalah teknik-teknik bagaimana membuat atau
manciptakan gambar dengan menggunakan komputer, salah satunya adalah Teknik Transformasi
tiga dimensi yaitu suatu model atau bentuk atau teknik memindahkan atau mengubah nilai posisi
objek dalam sistem koordinat tiga dimensi. Pemindahan objek ini dapat diartikan sebagai
pemindahan titik. Transformasi tiga dimensi ini mencakup proses translasi, penskalaan, rotasi,
dll.
Dari laporan tugas ini diketahui cara-cara memindahkan polygon dengan GL Translatef,
memutar objek dengan GL Rotatef, membuat polygon tersebut lebih besar atau lebih kecil
dengan menggunakan GL Scalef. Di samping perintah-perintah yang kami sebutkan di atas,
masih banyak lagi objek-objek yang dapat dihasilkan dengan menggunkan transformasi tiga
dimensi.
Atas terselesainya laporan tugas ini semoga dapat memberi manfaat bagi yang membaca.
Namun, kami juga menyadari bahwa isi laporan tugas ini masih jauh dari sempurna.
Untuk waktu dan kesempatan yang diberikan oleh dosen pengajar tidak lupa kami ucapkan
banyak terima kasih.
DAFTAR PUSTAKA
http://id.wikipedia.org/wiki/Visual_C%2B%2B
http://id.wikipedia.org/wiki/Microsoft_Visual_Studio
http://en.wikipedia.org/wiki/C%2B%2B
http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library
http://en.wikipedia.org/wiki/Visual_Nature_Studio