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



--------------------------------------------------------------------------------------------------------------------------

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]



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
CODE

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);
  1. 2. POLYGON
  2. SEGITIGA

CODE

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


#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

Postingan populer dari blog ini

FITUR, MANFAAT, KELEBIHAN DAN KEKURANGAN DARI BEBERAPA CONTOH APLIKASI NEW MEDIA

MANUSIA DAN PANDANGAN HIDUP

KEPITING LABA-LABA RAKSASA