Anda di halaman 1dari 11

LAPORAN PRAKTIKUM

GRAFIK KOMPUTER

Dosen Pengampu : Sri Rahayu, S.Kom., M.Kom.

Disusun untuk memenuhi Tugas Pertemuan ke-4 Praktikum Grafika Komputer

“PROYEKSI 3D”

Disusun Oleh :

Muhammad Arif Syamsudin (2106067)

Teknik Informatika – B

PROGRAM STUDI TEKNIK INFORMATIKA

INSTITUT TEKNOLOGI GARUT

2022
A. Latar Belakang
Grafika komputer pada dasarnya adalah suatu bidang komputer yang mempelajari cara-
cara untuk meningkatkan dan memudahkan komunikasi antara manusia dengan mesin
(komputer) dengan jalan membangkitkan, menyimpan danmemanipulasi gambar model
suatu objek menggunakan komputer. Grafika komputer memungkinkan kita untuk
berkomunikasi lewat gambar-gambar, bagan-bagan dan diagram serta “Proyeksi 3D”
sesuai dengan yang akan di sajikan dalam laporan ini. Dalam praktikum kali ini kita belajar
mengenai “Proyeksi 3D”.

B. Rumusan Masalah
Berdasarkan latar belakang masalah yang telah diuraikan di atas, maka laporan ini berisi
tentang menganalisa mengenai grafika komputer terkait dengan Proyeksi 3D dengan
rumusan sebagai berikut :
1. Bagaimana source kode atau program pembuatan Proyeksi 3D ?
2. Bagaimana keterangan atau penjelasan terhadap code/program yang dibuat ?
3. Bagaimana cara menerapkan 3D viewing dan proyeksi dengan OpenGL?

C. Tujuan Praktikum
1. Mampu menjelaskan tentang Proyeksi 3D.
2. Mampu menerapkan code/program yang dibuat.
3. Mampu menerapkan 3D viewing dan proyeksi dengan OpenGL

D. Hasil & Pembahasan

Source Code Program 1 dengan Memodifikasi Parameter glRotated

#include <windows.h>
#include <gl/glut.h>
#include <math.h>

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glRotated(15, 1, 1, 1);
glutWireCube(2);
glFlush();
}

void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-5.0, 5.0, -5.0, 5.0, -5.0, 5.0);
glMatrixMode(GL_MODELVIEW);
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
}

int main(int argc, char** argv)


{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(400, 400);
glutInitWindowPosition(100, 100);
glutCreateWindow("2106067_Muhammad Arif Syamsudin");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Hasil Screen Shoot

glRotated (35,1,1,1)

Dirubah ke :

glRotated (15,1,1,1)

Keterangan : Pada rotasi glRotated (35,1,1,1), karena nilainya positif maka perputarannya yaitu
berlawanan dengan arah jarum jam, untuk jarak tiap perputarannya sangat cepat dan untuk
kembali ke posisi awal cuman delapan kali perputaran untuk lebih lanjut bisa dilihat pada hasil
gambar diatas.
Sedangkan Pada rotasi glRotated(15,1,1,1), perputarannya sama arahnya berlawanan dengan
arah jarum jam, namun tiap jarak perputarannya sedikit lambat berputar. Untuk kembali ke
posisi awal cuman tujuh kali perputaran untuk lebih lanjut bisa dilihat pada hasil gambar diatas.

Source Code Program 1 dengan Mengganti nilai glutWireClub

#include <windows.h>
#include <gl/glut.h>
#include <math.h>

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glRotated(15, 1, 1, 1);
glutWireCube(6);
glFlush();
}

void init(void)
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-5.0, 5.0, -5.0, 5.0, -5.0, 5.0);
glMatrixMode(GL_MODELVIEW);
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
}

int main(int argc, char** argv)


{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(400, 400);
glutInitWindowPosition(100, 100);
glutCreateWindow("2106067_Muhammad Arif Syamsudin");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

Hasil Screen Shoot

glutWireClub (2) glutWireClub (6)

Keterangan : Pada perubahan nilai glutWireCube, mengartikan bahwa jika memasukan nilai
yang lebih kecil maka perubahan yang terjadi ketika dirunning gambar objeknya akan kecil.
Sedangkan jika nilainya lebih besar maka gambar objeknya akan semakin besar.
Source Code Program 2 dengan Memodifikasi Parameter glRotated

#include<windows.h>
#include<gl/glut.h>
#include <math.h>

void display()
{
glClear(GL_COLOR_BUFFER_BIT| GL_DEPTH_BUFFER_BIT);
glRotated(30, 1,1,1);
//depan
glColor3f(0.0,1.0,1.0);
glBegin(GL_POLYGON);
glVertex3f(-1.0, -1.0, 1.0);
glVertex3f(1.0, -1.0, 1.0);
glVertex3f(1.0, 1.0, 1.0);
glVertex3f(-1.0, 1.0, 1.0);
glEnd();
//belakang
glColor3f(1.0,2.0,3.0);
glBegin(GL_POLYGON);
glVertex3f(1.0, -1.0, -1.0);
glVertex3f(-1.0, -1.0, -1.0);
glVertex3f(-1.0, 1.0, -1.0);
glVertex3f(1.0, 1.0, -1.0);
glEnd();
//kiri
glColor3f(1.0,0.0,1.0);
glBegin(GL_POLYGON);
glVertex3f(-1.0, -1.0, -1.0);
glVertex3f(-1.0, -1.0, 1.0);
glVertex3f(-1.0, 1.0, 1.0);
glVertex3f(-1.0, 1.0, -1.0);
glEnd();
//kanan
glColor3f(1.0,1.0,0.0);
glBegin(GL_POLYGON);
glVertex3f(1.0, -1.0, -1.0);
glVertex3f(1.0, 1.0, -1.0);
glVertex3f(1.0, 1.0, 1.0);
glVertex3f(1.0, -1.0, 1.0);
glEnd();
//bawah
glColor3f(0.0,1.0,0.0);
glBegin(GL_POLYGON);
glVertex3f(1.0, -1.0, 1.0);
glVertex3f(-1.0, -1.0, 1.0);
glVertex3f(-1.0, -1.0, -1.0);
glVertex3f(1.0, -1.0, -1.0);
glEnd();
//atas
glColor3f(1.0,1.0,0.0);
glBegin(GL_POLYGON);
glVertex3f(-1.0, 1.0, 1.0);
glVertex3f(1.0, 1.0, 1.0);
glVertex3f(1.0, 1.0, -1.0);
glVertex3f(-1.0, 1.0, -1.0);
glEnd();
glFlush();
}

void myinit()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-3.0,3.0,-3.0,3.0,-3.0,3.0);
glMatrixMode(GL_MODELVIEW);
glClearColor(0.0,0.0,0.0,1.0);
glColor3f(0.0,0.0,0.0);
glShadeModel(GL_FLAT);
glEnable(GL_DEPTH_TEST);
}

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


{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutCreateWindow("2106067_Muhammad Arif Syamsudin");
glutDisplayFunc(display);
myinit();
glutMainLoop();
return 0;
}

Hasil Screen Shoot

glRotated (-35,1,1,1)
Dirubah ke :
glRotated (30,1,1,1)

Keterangan : Pada glRotated (-35, 1,1,1), karena nilainya negative, jadi rotasi perputarannya
yaitu searah dengan arah jarum jam dan jarak perputarannya sedikit agak lebar.

Sedangkan Pada glRotated (30, 1,1,1), karena nilainya positif jadi rotasi perputarannya yaitu
berlawanan dengan arah jarum jam.

E. Kesimpulan
Dalam proyeksi 3D kali ini gambar bisa disesuaikan dengan pandangan pengguna
supaya gambar bisa dilihat dari segi posisi apapun, lalu dapat saya simpulkan bahwa jika
parameternya negative maka rotasi berputarnya akan seperti putaran arah jarum jam
sedangkan jika parameternya positive maka rotasi berputarnya akan berlawanan arah jarum
jam,Untuk glutWireCube jika memasukan nilainya kecil maka gambar yang akan muncul
Ketika dirunning akan kecil sedangkan jika memasukan nilainya lebih besar maka yang
akan muncul Ketika dirunning gambarnya akan semakin lebih besar
DAFTAR PUSTAKA

Rahayu, S. (2022). Modul Praktikum 5. Proyeki 3D, 6.

Anda mungkin juga menyukai