Hai semaunya, kali ini ogut akan memberikan contoh sederhana program animasi 3D yang banyak bermanfaat untuk membuat game 3D. Program dibuat dengan menggunakan OpenGL dan compiler C++ dari Visual Studio 2014 Express.
Program akan menghasilkan seperti gambar di bawah ini.
Bagi rekan-rekan yang belum mengetahu tentang teori animasi sebaiknya baca terlebih dahulu artikel yang membahas tentang teori animasi 3D.
Animasi yang ogut buat kali ini sangat sederhana agar Anda mudah untuk mengerti.
Pada gambar di atas tampak sebuah segitiga A yang mempunyai titik kooordinat A1, A2 dan A3. Segitiga akan bergerak menuju B lalu bergerak lagi menuju C. Vektor yang digunakan untk menggerakan ini ada 3 buah.
Untuk membuat program ini pertama deklarasikan variable yang diperlukan
typedef struct
{
float X;
float Y;
float Z;
}VERTEX;
VERTEX A1, A2, A3, B1, B2, B3 ,C1, C2, C3 ;
VERTEX Disp_Anim1, Disp_Anim2, Disp_Anim3;
int i = 1;
int Loop_i = 0;
float Skala_Vektor = 0.001f;
Isi nilai titik koordinat
///////////LOAD DATA Vertex disini
A1.X = -1.5f; A1.Y = -1.0f; A1.Z = 1.0f;
A2.X = -1.0f; A2.Y = -1.0f; A2.Z = 1.0f;
A3.X = -1.25f; A3.Y = -0.5f; A3.Z = 1.0f;
B1.X = 1.0f; B1.Y = -1.0f; B1.Z = 1.0f;
B2.X = 1.5f; B2.Y = -1.0f; B2.Z = 1.0f;
B3.X = 1.25f; B3.Y = -0.5f; B3.Z = 1.0f;
C1.X = 0.0f; C1.Y = 1.0f; C1.Z = 1.0f;
C2.X = 0.5f; C2.Y = 1.0f; C2.Z = 1.0f;
C3.X = 0.25f; C3.Y = 1.5f; C3.Z = 1.0f;
Display animasi ke layar monitor
Loop_i++;
if ((Loop_i * Skala_Vektor) > 1.0f)
{
i++;
Loop_i = 1;
}
if (i > 3)
i = 1;
//posisi dari A ke B
if (i == 1)
{
Disp_Anim1.X = A1.X + ((B1.X - A1.X) * Loop_i * Skala_Vektor);
Disp_Anim1.Y = A1.Y + ((B1.Y - A1.Y) * Loop_i * Skala_Vektor);
Disp_Anim1.Z = A1.Z + ((B1.Z - A1.Z) * Loop_i * Skala_Vektor);
Disp_Anim2.X = A2.X + ((B2.X - A2.X) * Loop_i * Skala_Vektor);
Disp_Anim2.Y = A2.Y + ((B2.Y - A2.Y) * Loop_i * Skala_Vektor);
Disp_Anim2.Z = A2.Z + ((B2.Z - A2.Z) * Loop_i * Skala_Vektor);
Disp_Anim3.X = A3.X + ((B3.X - A3.X) * Loop_i * Skala_Vektor);
Disp_Anim3.Y = A3.Y + ((B3.Y - A3.Y) * Loop_i * Skala_Vektor);
Disp_Anim3.Z = A3.Z + ((B3.Z - A3.Z) * Loop_i * Skala_Vektor);
}
//posisi dari B ke C
if (i == 2)
{
Disp_Anim1.X = B1.X + ((C1.X - B1.X) * Loop_i * Skala_Vektor);
Disp_Anim1.Y = B1.Y + ((C1.Y - B1.Y) * Loop_i * Skala_Vektor);
Disp_Anim1.Z = B1.Z + ((C1.Z - B1.Z) * Loop_i * Skala_Vektor);
Disp_Anim2.X = B2.X + ((C2.X - B2.X) * Loop_i * Skala_Vektor);
Disp_Anim2.Y = B2.Y + ((C2.Y - B2.Y) * Loop_i * Skala_Vektor);
Disp_Anim2.Z = B2.Z + ((C2.Z - B2.Z) * Loop_i * Skala_Vektor);
Disp_Anim3.X = B3.X + ((C3.X - B3.X) * Loop_i * Skala_Vektor);
Disp_Anim3.Y = B3.Y + ((C3.Y - B3.Y) * Loop_i * Skala_Vektor);
Disp_Anim3.Z = B3.Z + ((C3.Z - B3.Z) * Loop_i * Skala_Vektor);
}
//posisi dari C ke A
if (i == 3)
{
Disp_Anim1.X = C1.X + ((A1.X - C1.X) * Loop_i * Skala_Vektor);
Disp_Anim1.Y = C1.Y + ((A1.Y - C1.Y) * Loop_i * Skala_Vektor);
Disp_Anim1.Z = C1.Z + ((A1.Z - C1.Z) * Loop_i * Skala_Vektor);
Disp_Anim2.X = C2.X + ((A2.X - C2.X) * Loop_i * Skala_Vektor);
Disp_Anim2.Y = C2.Y + ((A2.Y - C2.Y) * Loop_i * Skala_Vektor);
Disp_Anim2.Z = C2.Z + ((A2.Z - C2.Z) * Loop_i * Skala_Vektor);
Disp_Anim3.X = C3.X + ((A3.X - C3.X) * Loop_i * Skala_Vektor);
Disp_Anim3.Y = C3.Y + ((A3.Y - C3.Y) * Loop_i * Skala_Vektor);
Disp_Anim3.Z = C3.Z + ((A3.Z - C3.Z) * Loop_i * Skala_Vektor);
}
//buat segitiga Disp_Anim
glBegin(GL_POLYGON);
glColor3f(1.0f, 1.0f, 0.0f);
glVertex3f(Disp_Anim1.X, Disp_Anim1.Y, Disp_Anim1.Z);
glColor3f(1.0f, 0.0f, 1.0f);
glVertex3f(Disp_Anim2.X, Disp_Anim2.Y, Disp_Anim2.Z);
glColor3f(0.0f, 1.0f, 1.0f);
glVertex3f(Disp_Anim3.X, Disp_Anim3.Y, Disp_Anim3.Z);
glEnd();
Selesai deh programnya, mudah bukan, selamat belajar rekan-rekan, sebentar lagi akan ada contoh animasi 3D yang bisa Anda gunakan untuk membuat game 3D, tunggu saja tanggal mainnya
Update 2 Jan 2015
Ini dia contoh program animasi 3D, gimana keren ngak....
Salam Game 3D
Heriady
heriady.yoh@gmail.com
Artikel terkait
Program Animasi Game MoTer 3D dengan OpenGL
| |
Membuat Animasi Hely 3D dengan OpenGL
| |
Teori Animasi 3D dengan Vektor R3
| |
Contoh Program Animasi 3D dengan C++
| |
Animasi dengan Vektor Translasi
| |
Animasi dengan Vektor Translasi 2
| |
Animasi 3D dengan Objek MD2
| |
Matematika Vektor R3
| |
Matematika Vektor R2
|
Tidak ada komentar:
Posting Komentar