GRAFIKA KOMPUTER
MODUL 8
“OBJEK 3D”
Dosen Pengampu:
Nama Kelompok :
1.Ahmad Bahrul Ulum (2120190296)
Kelas: Teknik Informatika 5 A
B. MANFAAT
Setelah melakukan praktikum keelapan ini, mahasiswa mampu memahami Inisialisasi dunia
3D dan Object 3D (Wired) serta memahami dasar menampilkan susunan objek 3D.
C. DASAR TEORI
1. Bentuk Wire
Fungsi Wire merupakan implementasi dari object 3D berupa kerangka benda yang
berpusat pada asal pemodelan sistem koordinat. Utara dan kutub selatan bola
berada di Z positif dan negatif sumbu-masing-masing dan meridian utama
persimpangan sumbu X positif.
D. KEGIATAN PRAKTIKUM
1. Buatlah sebuah fungsi yang dapat membuat objek 2D. tampilkan objek 2 D
tersebut pada layar dan berikan interaksi menggunakan keyboard untuk
memindahkan posisi objek pada KOORDINAT Z (mendekat dan menjauh).
Tampilkan 2 screen shot kondisi ketika objek 2D jauh dan dekat. Dan tampilkan
programnya (display function).
Script:
#include<stdlib.h>
#include<glut.h>
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
Script:
#include<stdlib.h>
#include<glut.h>
int w=0, h=0;
int x=0, y=0, z=0;
int x1=0, y1=0, z1=0;
int sudut=0;
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
Output:
Script:
#include<stdlib.h>
#include<glut.h>
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
Output:
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
Script:
#include<stdlib.h>
#include<glut.h>
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
Script:
#include<stdlib.h>
#include<glut.h>
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
Output:
Script:
#include<stdlib.h>
#include<glut.h>
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
a. WireOctahedron
Script:
#include<stdlib.h>
#include<glut.h>
void Display(){
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(x,y,z);
glRotatef(sudut,x1,y1,z1);
glutWireOctahedron();
glutSwapBuffers();
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
void Display(){
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(x,y,z);
glRotatef(sudut,x1,y1,z1);
glutWireIcosahedron();
glutSwapBuffers();
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
void myKeyboard(unsigned char key, int x, int y){
if (key=='a')
z+= -4;
if(key=='d')
z+= 4;
if(key=='x'){
y1=0;
z1=0;
x1=1;
sudut+=10;
glColor3f(0.5,0,0.5);
}
if(key=='y'){
x1=0;
z1=0;
y1=1;
sudut+=10;
glColor3f(0,0.5,0.5);
}
if(key=='z'){
x1=0;
y1=0;
z1=1;
sudut+=10;
glColor3f(0.5,0.5,0);
}
}
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}
E. TUGAS
1. Buatlah Fungsi untuk membuat BALOK 3D, dengan parameter input fungsinya
berupa panjang, lebar, dan tinggi yang dapat di ubah. Sajikan source code dan
screenshotnya.
Script:
#include<stdlib.h>
#include<glut.h>
#include<stdio.h>
#include<conio.h>
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,1000.);
glMatrixMode(GL_MODELVIEW);
}
void Display(void){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glTranslatef(0,0,z);
glRotatef(sudut,x1,y1,z1);
//Badan
glPushMatrix();
glTranslatef(0,0,0);
glColor3f(1,1,1);
glutWireSphere(3,200,50);
glPopMatrix();
//Kepala
glPushMatrix();
glTranslatef(0,4,0);
glColor3f(1,1,1);
glutWireSphere(2,200,50);
glPopMatrix();
//Hidung
glPushMatrix();
glTranslatef(0,4,0);
glColor3f(1,0,0);
glutWireCone(1,3,200,50);
glPopMatrix();
//Mata
glPushMatrix();
glTranslatef(1,4.5,2);
glColor3f(0,0,0);
glutWireSphere(0.1,200,50);
glPopMatrix();
glPushMatrix();
glTranslatef(-1,4.5,2);
glColor3f(0,0,0);
glutWireSphere(0.1,200,50);
glPopMatrix();
//Topi
glPushMatrix();
glTranslatef(0,5,0);
glRotatef(-90,1,0,0);
glColor3f(0,0,1);
glutWireCone(2,4,200,50);
glPopMatrix();
glutSwapBuffers();
}
void init(){
glClearColor(0.0,0.0,0.0,1.0);
glEnable(GL_DEPTH_TEST);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.,(GLdouble)w/(GLdouble)h, 1.,300.);
glMatrixMode(GL_MODELVIEW);
}