Anda di halaman 1dari 23

TECHNICAL REPORT

GRAFIKA KOMPUTER
MODUL 1

Disusun Oleh :

TGL. PRAKTIKUM : 31 Maret 2021


NAMA : Rizki Nardianto
NRP : 180411100069
KELOMPOK :1
DOSEN : Akhmad Tajuddin. MS, M.Kom.

TELAH DISETUJUI TANGGAL :


...........................................
ASISTEN PRAKTIKUM

Rio Erfian
(180411100040)

JURUSAN TEKNIK INFORMATIKA


FAKULTAS TEKNIK
UNIVERSITAS TRUNOJOYO MADURA
BAB I
TUJUAN DAN DASAR TEORI

A. TUJUAN
a. Memperlajari OpenGL pada CodeBlock
b. Memahami Langkah kerja dari OpenGL
c. Memahami sintax pada OpenGL

B. DASAR TEORI
Grafika Komputer dewasa ini telah melesat sangat jauh dibandingkan pada
masa awal kemunculannya. Cakupannya telah meluas ke berbagai bidang:
kedokteran, sains, teknik, bisnis, industri, seni, hiburan, iklan, dan lain-lain.
Salah satu tools/library pembuatan aplikasi grafik adalah OpenGL (Open
Graphics Library). OpenGL adalah suatu standar grafik yang menyediakan
fungsi-fungsi low-level untuk pembuatan berbagai gambar pada komputer.
Sebagai API (Application Programming Interface), OpenGL bersifat
platform-independent/tidak tergantung pada piranti dan platform yang
digunakan. Sehingga, adalah hal yang wajar jika aplikasi OpenGL berjalan
pada sistem operasi Windows, UNIX, Mac, Android, dll. OpenGL pada
awalnya didesain untuk digunakan oleh bahasa pemrograman C/C++, namun
dalam perkembangannya OpenGL dapat juga digunakan oleh bahasa
pemrograman yang lain seperti Java, Tcl, Ada, Visual Basic, Delphi, maupun
Fortran.
BAB II
PEMBAHASAN

A. SOAL
1. Lakukan percobaan sesuai dengan perintah diatas.
2. Buat Pelangi horisontal yang terdiri dari 7 warna berbeda menggunakan 7
rectangle (GL_POLYGON).
3. Buat Pelangi vertikal yang terdiri dari 7 warna berbeda menggunakan 7
rectangle (GL_POLYGON).
4. Ulang soal nomor 2 dan 3 menggunakan glRect().

B. JAWABAN
1. Code Program
Code 1
/*
* GLUT Shapes Demo
*
* Written by Nigel Stewart November 2003
*
* This program is test harness for the sphere, cone
* and torus shapes in GLUT.
*
* Spinning wireframe and smooth shaded shapes are
* displayed until the ESC or q key is pressed. The
* number of geometry stacks and slices can be adjusted
* using the + and - keys.
*/
#include <windows.h>
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif

#include <stdlib.h>
/* GLUT callback Handlers */
void display(void)
{
/* bersihkan layar dari titik pixel yang masih ada */
glClear (GL_COLOR_BUFFER_BIT);
glColor3f(1.0,0.0,0.0);
glPointSize(5);
/* gambar 5 titik di layar */
glBegin(GL_POINTS);
glVertex3f (0.0, 0.0, 0.0);
glVertex3f (0.0, 0.2, 0.0);
glVertex3f (0.2, 0.0, 0.0);
glVertex3f (0.0, -0.2, 0.0);
glVertex3f (-0.2, 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();
}
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;
}
Code 2
/*
* GLUT Shapes Demo
*
* Written by Nigel Stewart November 2003
*
* This program is test harness for the sphere, cone
* and torus shapes in GLUT.
*
* Spinning wireframe and smooth shaded shapes are
* displayed until the ESC or q key is pressed. The
* number of geometry stacks and slices can be
adjusted
* using the + and - keys.
*/
#include <windows.h>
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif

#include <stdlib.h>
/* GLUT callback Handlers */

void display(void)
{
/* bersihkan layar dari titik pixel yang masih ada */
glBegin(GL_POLYGON);
glColor3f(1.0, 0.0 ,0.0);
glVertex2f(-0.8,0.7);
glVertex2f(-0.8,0.8);
glVertex2f(0.8,0.8);
glVertex2f(0.8,0.7);
glEnd();

glBegin(GL_POLYGON);
glColor3f(1.0, 0.5, 0.0);
glVertex2f(-0.8,0.6);
glVertex2f(-0.8,0.7);
glVertex2f(0.8,0.7);
glVertex2f(0.8,0.6);
glEnd();

glBegin(GL_POLYGON);
glColor3f(1.0, 1.0, 0.0);
glVertex2f(-0.8,0.5);
glVertex2f(-0.8,0.6);
glVertex2f(0.8,0.6);
glVertex2f(0.8,0.5);
glEnd();

glBegin(GL_POLYGON);
glColor3f(0.0, 1.0, 0.0);
glVertex2f(-0.8,0.4);
glVertex2f(-0.8,0.5);
glVertex2f(0.8,0.5);
glVertex2f(0.8,0.4);
glEnd();

glBegin(GL_POLYGON);
glColor3f(0.0, 1.0, 1.0);
glVertex2f(-0.8,0.3);
glVertex2f(-0.8,0.4);
glVertex2f(0.8,0.4);
glVertex2f(0.8,0.3);
glEnd();

glBegin(GL_POLYGON);
glColor3f(0.0, 0.0, 1.0);
glVertex2f(-0.8,0.2);
glVertex2f(-0.8,0.3);
glVertex2f(0.8,0.3);
glVertex2f(0.8,0.2);
glEnd();

glBegin(GL_POLYGON);
glColor3f(0.53, 0.12, 0.47);
glVertex2f(-0.8,0.1);
glVertex2f(-0.8,0.2);
glVertex2f(0.8,0.2);
glVertex2f(0.8,0.1);
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();
}
int main(int argc, char *argv[])
{
glutInitWindowSize(400,400);
glutInitWindowPosition(100,100);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("Pelangi Horizontal");
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}

Code 3
/*
* GLUT Shapes Demo
*
* Written by Nigel Stewart November 2003
*
* This program is test harness for the sphere, cone
* and torus shapes in GLUT.
*
* Spinning wireframe and smooth shaded shapes are
* displayed until the ESC or q key is pressed. The
* number of geometry stacks and slices can be adjusted
* using the + and - keys.
*/
#include<windows.h>
#include<GL/gl.h>
#include<GL/glut.h>
void display(void){
/* bersihkan layar dari titik pixel yang masih ada */
glClear (GL_COLOR_BUFFER_BIT);
/* gambar 5 titik di layar *//* posisi vertex */
glBegin(GL_POLYGON);
glColor3f (1.0, 0.0, 0.0);
/* pewarnaan 1*/
glVertex3f (-1.0, -1.0, 0.0);
glVertex3f (-1.0, 1.0, 0.0);
glVertex3f (-0.70, 1.0, 0.0);
glVertex3f (-0.70, -1.0, 0.0);
glEnd();

glBegin(GL_POLYGON);
glColor3f (1.0, 1.0, 0.0);
/* pewarnaan 2*/
glVertex3f (-0.70, -1.0, 0.0);
glVertex3f (-0.70, 1.0, 0.0);
glVertex3f (-0.40, 1.0, 0.0);
glVertex3f (-0.40, -1.0, 0.0);
glEnd();

glBegin(GL_POLYGON);
glColor3f (0.0, 1.0, 0.0);
/* pewarnaan 3*/
glVertex3f (-0.40, -1.0, 0.0);
glVertex3f (-0.40, 1.0, 0.0);
glVertex3f (-0.10, 1.0, 0.0);
glVertex3f (-0.10, -1.0, 0.0);
glEnd();
glBegin(GL_POLYGON);
glColor3f (0.0, 0.0, 1.0);
/* pewarnaan 4*/
glVertex3f (-0.10, -1.0, 0.0);
glVertex3f (-0.10, 1.0, 0.0);
glVertex3f (0.2, 1.0, 0.0);
glVertex3f (0.2, -1.0, 0.0);
glEnd();

glBegin(GL_POLYGON);
glColor3f (0.0, 1.0, 1.0);
/* pewarnaan 5*/
glVertex3f (0.2, -1.0, 0.0);
glVertex3f (0.2, 1.0, 0.0);
glVertex3f (0.5, 1.0, 0.0);
glVertex3f (0.5, -1.0, 0.0);
glEnd();

glBegin(GL_POLYGON);
glColor3f (1.0, 0.0, 1.0);
/* pewarnaan 6*/
glVertex3f (0.5, -1.0, 0.0);
glVertex3f (0.5, 1.0, 0.0);
glVertex3f (0.8, 1.0, 0.0);
glVertex3f (0.8, -1.0, 0.0);
glEnd();

glBegin(GL_POLYGON);
glColor3f (1.0, 1.0, 1.0);
/* pewarnaan 7*/
glVertex3f (0.8, -1.0, 0.0);
glVertex3f (0.8, 1.0, 0.0);
glVertex3f (1.0, 1.0, 0.0);
glVertex3f (1.0, -1.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();
}

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


{
glutInitWindowSize(300,300);
glutInitWindowPosition(100,100);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("PELANGI VERTIKAL");
glClearColor(1.0, 1.0, 1.0, 0.0);
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}

Code 4.1
/*
* GLUT Shapes Demo
*
* Written by Nigel Stewart November 2003
*
* This program is test harness for the sphere, cone
* and torus shapes in GLUT.
*
* Spinning wireframe and smooth shaded shapes are
* displayed until the ESC or q key is pressed. The
* number of geometry stacks and slices can be adjusted
* using the + and - keys.
*/

#include<windows.h>
#include<GL/gl.h>
#include<GL/glut.h>
void display(void)
{
/* bersihkan layar dari titik pixel yang masih ada */
glClear (GL_COLOR_BUFFER_BIT);
/* gambar 5 titik di layar *//* posisi vertex */
glBegin(GL_POLYGON);
glEnd();
glColor3f (1.0, 0.0, 0.0);
/* pewarnaan 1*/
glRectf (-1.0, -1.0, 1.0, -0.70);
glColor3f (1.0, 1.0, 0.0);
/* pewarnaan 2*/
glRectf (-1.0, -0.70, 1.0, -0.40);
glColor3f (0.0, 1.0, 0.0);
/* pewarnaan 3*/
glRectf (-1.0, -0.40, 1.0, -0.10);
glColor3f (0.0, 0.0, 1.0);
/* pewarnaan 4*/
glRectf (-1.0, -0.1, 1.0, 0.2);
glColor3f (0.0, 1.0, 1.0);
/* pewarnaan 5*/
glRectf (-1.0, 0.2, 1.0, 0.5);
glColor3f (1.0, 0.0, 1.0);
/* pewarnaan 6*/
glRectf (-1.0, 0.5, 1.0, 0.7);
glColor3f (1.0, 1.0, 1.0);
/* pewarnaan 7*/
glRectf (-1.0, 0.7, 1.0, 1.0);
glFlush ();
}

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


{
switch (key)
{
/* aplikasi berhenti ketika tombol q ditekan */
case 27:case 'k':exit(0);
break;
}

glutPostRedisplay();

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


{
glutInitWindowSize(300,300);
glutInitWindowPosition(100,100);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("PELANGI HORIZONTAL - glRect()");
glClearColor(1.0, 1.0, 1.0, 0.0);
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}

Code 4.2
/*
* GLUT Shapes Demo
*
* Written by Nigel Stewart November 2003
*
* This program is test harness for the sphere, cone
* and torus shapes in GLUT.
*
* Spinning wireframe and smooth shaded shapes are
* displayed until the ESC or q key is pressed. The
* number of geometry stacks and slices can be adjusted
* using the + and - keys.
*/

#include<windows.h>
#include<GL/gl.h>
#include<GL/glut.h>
void display(void)
{
/* bersihkan layar dari titik pixel yang masih ada */
glClear (GL_COLOR_BUFFER_BIT);
/* gambar 5 titik di layar *//* posisi vertex */
glBegin(GL_POLYGON);
glEnd();
glColor3f (1.0, 0.0, 0.0);
/* pewarnaan 1*/
glRectf (-0.70, 1.0, -1.0, -1.0);
glColor3f (1.0, 1.0, 0.0);
/* pewarnaan 2*/
glRectf (-0.70, 1.0, -0.40, -1.0);
glColor3f (0.0, 1.0, 0.0);
/* pewarnaan 3*/
glRectf (-0.40, 1.0, -0.10, -1.0);
glColor3f (0.0, 0.0, 1.0);
/* pewarnaan 4*/
glRectf (-0.10, 1.0, 0.1, -1.0);
glColor3f (0.0, 1.0, 1.0);
/* pewarnaan 5*/
glRectf (0.1, 1.0, 0.4, -1.0);
glColor3f (1.0, 0.0, 1.0);
/* pewarnaan 6*/
glRectf (0.4, 1.0, 0.7, -1.0);
glColor3f (1.0, 1.0, 1.0);
/* pewarnaan 7*/
glRectf (0.7, 1.0, 1.0, -1.0);

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

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


{
glutInitWindowSize(300,300);
glutInitWindowPosition(100,100);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutCreateWindow("PELANGI VERTIKAL - glRect()");
glClearColor(1.0, 1.0, 1.0, 0.0);
glutDisplayFunc(display);
glutKeyboardFunc(kunci);
glutMainLoop();
return 0;
}

2. Penjelasan Code Program


a. Code 1
Pada code pertama untuk perubahan yang dilakukan ialah
mengubah pada bagian setelah code glClear

(GL_COLOR_BUFFER_BIT); ditambahkan sintax


glColor3f(0.1,0.0,0.0); untuk warna merah dan glPointSize(5); dan
juga mencoba beberapa perintah gl untuk dicoba dengan mengganti
parameter pada glBegin();
b. Code 2
Pada code kedua menggunakan sintax glBegin(GL_POLYGON)
untuk membuat persegi empat dengan di dalamnya terdapat
glColor3f() dan glVertex2f() untuk membuat warna dan posisi
bangun.
c. Code 3
Pada code kedua menggunakan sintax glBegin(GL_POLYGON)
untuk membuat persegi empat dengan di dalamnya terdapat
glColor3f() dan glVertex3f() untuk membuat warna dan posisi
bangun.
d. Code 4.1
Pada code kedua menggunakan sintax glRect(x,x,x,x) untuk
membuat persegi empat yang memiliki 4 parameter titik dan di
dalamnya terdapat glColor3f() membuat warna
e. Code 4.2
Pada code kedua menggunakan sintax glRect(x,x,x,x) untuk
membuat persegi empat yang memiliki 4 parameter titik dan di
dalamnya terdapat glColor3f() membuat warna

3. Hasil Running Program


1. Soal 1
GL_POINT
GL_LINE_STRIP

GL_LINE_LOOP
GL_LINES

GL_TRIANGLES
GL_TRIANGLE_FAN

GL_TRIANGLE_STRIP
GL_QUADS

GL_QUAD_STRIP
GL_POLYGON

2. Soal 2
3. Soal 3

4. Soal 4.1
Soal 4.2
BAB II
PENUTUP

A. Kesimpulan
1. Mahasiswa dapat mencoba beberapa sintax primitif dari OpenGL
2. Mahasiswa mampu membuat bangun dengan POLYGON
3. Mahasiswa mampu menentukan titik koordinat dari setiap parameter sintax
B. Saran
Masih belum ada saran untuk praktikum kali ini.

Anda mungkin juga menyukai