MEMBUAT OBJEK MENGGUNAKAN OPENGL DAN BLENDER
Disusun Oleh:
Choulatin Sholihah / 51416592
Fauziah Aulia / 52416730
Siti Putri Balqis / 57416104
Yunistin Verensa Taberima / 57416863
Kelas : 3IA16
Dosen : Karmilasari
Kelas : 3IA16
Dosen : Karmilasari
--------------------------------------------------------------------------------------------------------------------------
Membuat Objek dengan menggunakan 2 software yang berbeda, yaitu OpenGL dan BLENDER.
yang perlu dilakukan sebelum masuk ke dalam Proses pembentukkan objek adalah Mendownload terlebih dahulu software yang dibutuhkan. untuk Blender, anda cukup mendownload software Blendernya saja, sedangkan untuk OpenGL, anda perlu mendownload beberapa atribut yaitu, dev - c++ , glut, glut32.dll, libglut32
Artikel ini berisi beberapa point yaitu,
OpenGL
1. GARIS
GARIS LURUS VERTICAL
GARIS LURUS HORIZONTAL
GARIS LURUS DIAGONAL
2. POLYGON
SEGITIGA
LINGKARAN
3. POLYHEDRAL
SEGITIGA PENUH
SEGILIMA PENUH
BLENDER
LANGKAH-LANGKAH PEMBUATAN OBJEK
OUTPUT:
1. EKSPRESI KAGET
2. EKSPRESI SEDIH
3. EKSPRESI SENYUM
4. EKSPRESI MARAH
OpenGL
1. GARIS
GARIS LURUS VERTICAL
CODE
glClearColor (0.0f,
0.0f, 0.0f, 0.0f); //[ untuk memilih warna yang digunakan untuk membersihkan
latar dalammode RGBA]
glClear
(GL_COLOR_BUFFER_BIT); //[untuk membersihkan layar latar belakang dengan warna
hitam]
glPushMatrix (); //[Membuat baris kode menjadi
tidak berlaku untuk bagian luar]
glClearColor(1,1,1,0); //[untuk menentukan warna garis/titik]
glColor3f(1,0,1);
// [untuk menentukan warna
garis/titik]
glBegin(GL_LINES); //[untuk menggambar garis dari
titik yang digunakan ]
glVertex3f(0.10,10.0,13.13); //[ untuk menentukan titik awal yang
digunakan ]
glVertex3f(0,0,0.0); // [ untuk menentukan titik
akhir yang digunakan ]
glEnd (); //[untuk mengakhiri gambar garis
dititik akhir ]
glPopMatrix ();
//[Membuat baris kode menjadi tidak berlaku untuk bagian luar]
SwapBuffers (hDC);
//[digunakan untuk menukar bagian belakang buffer menjadi buffer layar]
Sleep (1);
CODE
glClearColor (0.0f, 0.0f, 0.0f, 0.0f); //[ untuk memilih warna yang digunakan untuk membersihkan latar dalammode RGBA]
glClearColor (0.0f, 0.0f, 0.0f, 0.0f); //[ untuk memilih warna yang digunakan untuk membersihkan latar dalammode RGBA]
glClear
(GL_COLOR_BUFFER_BIT); //[untuk membersihkan layar latar belakang dengan warna
hitam]
glPushMatrix(); //[Membuat baris kode menjadi tidak
berlaku untuk bagian luar]
glClearColor(1,1,1,0); //[untuk menentukan warna garis/titik]
glColor3f(1,1,1);
// [untuk menentukan warna
garis/titik]
glBegin(GL_LINES); //[untuk menggambar garis dari
titik yang digunakan ]
glColor3f(0.0f, 0.0f,
1.0f);
glVertex3f(-0.6f,
0.0f, 0.0f); //[ untuk menentukan titik
awal yang digunakan ]
glColor3f(1.0f, 1.0f,
1.0f); //[ untuk menentukan titik
yang digunakan ]
glVertex3f(0.6f,
0.0f, 0.0f); //[ untuk menentukan
titik akhir yang digunakan ]
glEnd(); ////[untuk mengakhiri gambar garis
dititik akhir ]
glPopMatrix();
//[Membuat baris kode menjadi tidak berlaku untuk bagian luar]
SwapBuffers (hDC);
//[digunakan untuk menukar bagian belakang buffer menjadi buffer layar]
Sleep (1);
GARIS LURUS DIAGONAL
glClearColor (0.0f, 0.0f,
0.0f, 0.0f);
glClear
(GL_COLOR_BUFFER_BIT);
glPushMatrix ();
glClearColor(1,1,1,0);
glColor3f(0,1,1); //
glBegin(GL_LINES);
glVertex3f(0,0,-0.8);
glVertex3f(9.9,8.9,0.1);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
Sleep (1);
- 2. POLYGON
- SEGITIGA
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();;
glBegin (GL_TRIANGLES);
glColor3f (1.0f, 1.0f, 1.0f); glVertex2f (0.0f, 1.0f);
glColor3f (1.0f, 1.0f, 1.0f); glVertex2f (0.87f, -0.5f);
glColor3f (1.0f, 1.0f, 1.0f); glVertex2f (-0.87f, -0.5f);
glBegin(GL_LINES);
glVertex2f (0.0f, 1.0f);
glVertex2f (0.87f, -0.5f);
glVertex2f (-0.87f, -0.5f);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
theta += 1.0f;
Sleep (1);
LINGKARAN
CODE
LINGKARAN
CODE
#include <GL/glut.h>
#include<math.h>
int i=0; int j=0;
void lingkaran(int xp, int yp, int
r, int n){
float a,x,y;
glColor4ub(i,j,0,200);
glBegin(GL_POLYGON);
a=6.28/n;
for (int i=0; i<n; i++){
x = xp+r * cos(i*a);
y = yp+r * sin(i*a);
glVertex2d(x,y);
}
glEnd();
}
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); //untuk membuat opacity
glColor3ub(255,0,0);
glBegin(GL_LINES);
glVertex2d(-500,0);
glVertex2d(500,0);
glVertex2d(0,400);
glVertex2d(0,-400);
glEnd();
lingkaran(0,0,100,25);
i+=20;
j+=1;
glutSwapBuffers();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitWindowSize(1000,800);
glutInitWindowPosition(10,10);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("GLUT Shapes");
gluOrtho2D(-500,500,-400,400);
glutDisplayFunc(display);
glutIdleFunc(display);
glClearColor(1,1,1,1);
glutMainLoop();
}
CODE
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();;
glBegin (GL_TRIANGLES);
glColor3f (1.0f, 0.0f, 1.0f); glVertex2f (0.0f, 1.0f);
glColor3f (0.0f, 1.0f, 1.0f); glVertex2f (0.87f, -0.5f);
glColor3f (1.0f, 0.0f, 1.0f); glVertex2f (-0.87f, -0.5f);
glEnd ();
glPopMatrix ();
SwapBuffers (hDC);
theta += 1.0f;
Sleep (1);
CODE
glClearColor (0.0f, 0.0f, 0.0f,
0.0f);
glClear (GL_COLOR_BUFFER_BIT);
glPushMatrix ();;
glBegin (GL_POLYGON);
glColor3f (0.0f, 1.5f, 0.0f); glVertex2f (0.0f, 0.75f);
glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (-0.5f, -0.5f);
glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (0.5f, -0.5f);
glColor3f (1.0f, 1.0f, 0.0f); glVertex2f (0.75f, 0.25f);
glColor3f (0.0f, 1.0f, 1.0f); glVertex2f (-0.75f, 0.25f);
glColor3f (1.0f, 0.0f, 1.0f); glVertex2f (-0.5f, -0.5f);
glEnd ();
glFlush ();
SwapBuffers (hDC);
theta += 1.0f;
Sleep (1);
SwapBuffers (hDC);
theta += 1.0f;
Sleep (1);
BLENDER
LANGKAH-LANGKAH PEMBUATAN OBJEK
- Mesh yang digunakan adalah CUBE
- tambahkan Cube dengan klik Add, klik Mesh>Cube
- hapus salah satu Face dari Cube tersebut dengan klik Tab untuk pidah ke Edit Mode, klik kanan Mouse pada Face yang ingin dihapus, klik delete, pilih Faces
- masih dalam Edit Mode, tambahkan Ruas dengan klik Ctrl+R dan perbanyak dengan Scroll pada Mouse
- Mirroring sumbu X
- klik Modifier, klik Add Modifier
- klik Subdivision Surface
- naikkan View
- pada salah satu sisi objek, Select Face beberapa vertex untuk dibentuk menjadi tangan
- klik Shortcut E dan Tarik face ke arah luar, combine Shortcut E dan S hingga membentuk tangan
- lakukan hal yang sama pada sisi bawah Objek hingga membentuk kaki
- pada sisi bagian depan objek, Select Face pada vertex di tempat yang ingin dibuat mata
- klik E dan Tarik sedikit ke arah luar hingga membentuk mata
- lakukan hal yang sama di bagian pipi namun dengan vertex yang lebih kecil, untuk membuat pipi merah pada objek
OUTPUT
1. EKSPRESI KAGET
- untuk membuat ekspresi terkejut, maka kita akan menambahkan mulut seperti menganga dengan shape torus dan aturlah skalanya sehingga cocok pada wajah karakter.
2. EKSPRESI SEDIH
- untuk membuat ekspresi sedih, maka kita akan membuat bentuk mulut sedikit cekung ke bawah atau bibir yang datar
3. EKSPRESI SENYUM
- untuk membuat ekspresi tersenyum atau bahagia, maka kita akan membentuk mulut sedikit cekung ke atas
4. EKSPRESI MARAH
- untuk membuat ekspresi marah, maka kita akan membentuk mulut dan mata layaknya sedang marah
Komentar
Posting Komentar