Anda di halaman 1dari 16

LAPORAN JOBSHEET GRAFIKA KOMPUTER MODUL 1 (Pengenalan GLUT)

Disusun untuk Memenuhi Laporan Praktikum Grafika Komputer yang dibimbing oleh Harits Ar Royid, S.T.,M.T.

Disusun Oleh : Evania Kurniawati (110533406960) M. Damaris W (110533406979) PTI off A 2011

S1 PENDIDIKAN TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI MALANG JANUARI 2013

1. Latihan 1 Sintaks :
#include <stdlib.h> #include <glut.h> void renderScene(void) { //hanya u/mengenalkan fungsi renderScene /*baris ini nantinya berisi fungsi2 lain*/ } void main(int argc, char **argv) { glutInit(&argc, argv); glutCreateWindow("Pemprograman Grafis GLUT"); glutDisplayFunc(renderScene); glutMainLoop(); }

Output :

a.

Fungsi dari glutCreateWindows(...) yaitu memberi perintah pada GLUT untuk membuat jendela yang dapat dinamai. Misal : glutCreateWindow("Pemprograman Grafis GLUT") yang akan menampilkan sebuah jendela dengan judul Pemprograman Grafis GLUT b. Fungsi dari glutDisplayFunc(renderScene); Render berarti menggambar, atau konversi dari sebuah sintaks menjadi sebuah gambar. Jadi setelah GLUT diprogram untuk menampilkan suatu perintah tersebut diperlukan fungsi render. Rendering adalah salah satu operasi penting dari GLUT.

2. Latihan 2 Sintaks 2.1:


#include <stdlib.h> #include <glut.h> void renderScene(void) { //hanya u/mengenalkan fungsi renderScene /*baris ini nantinya berisi fungsi2 lain*/ } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 100); glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

Output :

Sintaks 2.2 - Menghilangkan renderScene


#include <stdlib.h> #include <glut.h> void renderScene(void) { //hanya u/mengenalkan fungsi renderScene /*baris ini nantinya berisi fungsi2 lain*/ } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);

glutInitWindowPosition(100, 100); glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); //glutDisplayFunc(renderScene); glutMainLoop(); }

Output : Tampilan jendela muncul sedetik lalu menghilang. 3. Latihan 3 Sintaks :


#include <stdlib.h> #include <glut.h> void renderScene(void) { //hanya u/mengenalkan fungsi renderScene /*baris ini nantinya berisi fungsi2 lain*/ } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 200); //letak jendela program pada layar glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

Output:

Sistem koordinat window dimulai dari (0,0) yaitu sesuai jendela program yang berada di kiri atas, setelah parameter diubah, letaknya menjadi berada di (100,200).

4. Latihan 4 Sintaks :
#include <stdlib.h> #include <glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glPointSize(5); glBegin(GL_POINTS); glVertex3f(0.0,0.0,0.0);//menentukan koordinat titik glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 150); glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

Output:

Menghasilkan sebuah titik berwarna putih tepat di tengah-tengah jendela program. 5. Latihan 5 5.1 Kiri atas
#include <stdlib.h> #include <glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glPointSize(5); glBegin(GL_POINTS); glVertex3f(-0.9,0.9,0.0);//menentukan koordinat titik glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 150); glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

5.2 Kanan atas


#include <stdlib.h> #include <glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glPointSize(5); glBegin(GL_POINTS); glVertex3f(0.9,0.9,0.0);//menentukan koordinat titik glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 150); glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

5.3 Kiri bawah


#include <stdlib.h> #include <glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glPointSize(5); glBegin(GL_POINTS); glVertex3f(-0.9,-0.9,0.0);//a glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 150); glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

5.4 Kanan bawah


#include <stdlib.h> #include <glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glPointSize(5); glBegin(GL_POINTS); glVertex3f(0.9,-0.9,0.0);//a glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 150); glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

5.5 Tepat tengah


#include <stdlib.h> #include <glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glPointSize(5); glBegin(GL_POINTS); glVertex3f(0.0,0.0,0.0);//a glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 150); glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

10

Sistem koordinat GLUT ditentukan oleh koordinat x,y,z. Y adalah penentu letak vertikal, x adalah penentu letak horisontal, dan z adalah penentu letak yang mengarah keluar (untuk objek 3 dimensi). Yang mana maksimal nilai yang dapat diberikan yaitu 1, jika lebih dari 1 maka suatu titik koordinat tersebut tidak dapat nampak pada kanvas.

6. Latihan 6
#include <stdlib.h> #include <glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glPointSize(5);

11

glBegin(GL_POINTS); glVertex3f(0.0,0.0,0.0);//a glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 150); glutInitWindowSize(640, 640); glutCreateWindow("GLUT : Evania - Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

12

Jadi fungsi dari glutInitWindowSize(...); akan menentukan berapa lebar dan tinggi window. Sehingga jika nilai yang ditentukan besar, maka jendela program akan membesar sesuai ukuran yang ditentukan. 7. Latihan 7
#include <stdlib.h> #include <glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(-10.,10.,0.0); glVertex3f(-10.,0.,0.0); glVertex3f(0.0,0.0,0.0); glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 100); glutInitWindowSize(320, 320); glutCreateWindow("GLUT : Evania - Damaris"); gluOrtho2D(-50.0,50.0,-50.0,50.0); glutDisplayFunc(renderScene); glutMainLoop(); }

13

Fungsi dari gluOrtho2D(left,right,bottom,top) yaitu menentukan letak secara vertikal dan horisontal dari suatu bangun 2Dimensi dalam jendela.

14

Tugas Praktikum Sintaks :


#include <stdlib.h> #include <glut.h> void renderScene(void) { glClear(GL_COLOR_BUFFER_BIT); glPointSize(5); glBegin(GL_POINTS); glVertex3f(0.2,0.3,0.0); glVertex3f(0.3,0.2,0.0); glVertex3f(0.0,0.3,0.1); glVertex3f(0.0,0.2,0.1); glVertex3f(0.2,0.2,0.1); glEnd(); glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100, 150); glutInitWindowSize(960, 979); glutCreateWindow("Evania - M. Damaris"); glutDisplayFunc(renderScene); glutMainLoop(); }

Output :

15

16