Pada tanggal 8 Jan 2015, saat ogut nongkrong dan makan sore di sebuah warung (RAZA) di sekitar jalan Cargo, munculah ide ini. Makan nasi sayur dengan tempe dan tahu lalu tiba-tiba ini datang, langsung ogut corat-coret dan jadilah seperti di bawah ini.
Corat-coret tersebut menghasilkan program seperti berilut ini.
Ada juga videonya, biar lebih keren
Untuk membuat programnya ogut ceritakan dahulu skenario atau teorinya...jangan baca coretan ogut di atas...pusing karena tulisan tangan ogut susah untuk dimengerti....lihat aja gambar di bawah ini
Pada gambar terlihat sebuah objek 3D dan bayangannya, Titik Cahaya yang menjadi sumber cahaya untuk membuat bayangan.
Vektor TL dan Vektor Bayangan ogut gunakan untuk mencari Titik Bayangan.
Dari aturan dasat trigonometri diketahui nilai Cos α° dapat dicari dengan membagi panjang X dengan Panjang R.
Untuk mencari panjang Vektor Bayangan dapat digunakan aturan dasar trigonometri ini, sudut α° dapat dicari dengan memanfaatkan sudut vektor, jika panjang Vektor Bayangan diketahui maka Titik Bayangan akan dapat ditentukan dan bayangan 3D dapat dibuat.
Ada beberapa hal yang harus rekan-rekan perhatikan waktu membuat program bayangan Hely 3D. Pertama dekalrasikan variable dan class yang diperlukan
//bayangan
unsigned int TeksturHitam;
unsigned int TeksturKuning;
Vertex DispV_Bayangan3DAnim[3];
Vertex Titik_Cahaya;
Vector Vektor_TL; //vektor Tegak Lurus
Vector Vektor_Bayangan; //vektor Tegak Lurus
VectorClass VektorClass;
Kedua setting nilai awalnya.
////set nilai awal bayangan
Titik_Cahaya.X = -2.5f; Titik_Cahaya.Y = 6.5f; Titik_Cahaya.Z = 0.0f;
Vektor_TL.i = 0.0f; Vektor_TL.j = -(Titik_Cahaya.Y - 0.07f); Vektor_TL.k = 0.0f;
Dan waktu Displaynya.
//=========================================
//hitung vertex bayangan 0
//=========================================
Vektor_Bayangan = VektorClass.CreateVector(DispV_Hely3DAnim[0].X, DispV_Hely3DAnim[0].Y, DispV_Hely3DAnim[0].Z,
Titik_Cahaya.X, Titik_Cahaya.Y, Titik_Cahaya.Z);
CosDuaVektor = VektorClass.CosSudutVector(Vektor_TL, Vektor_Bayangan);
PanjangVektorBayangan = VektorClass.LVector(Vektor_TL) / CosDuaVektor;
Vektor_Bayangan = VektorClass.Normalisasi(Vektor_Bayangan);
Vektor_Bayangan = VektorClass.SkalaVector(Vektor_Bayangan, PanjangVektorBayangan);
//Vertex bayangan [0]
DispV_Bayangan3DAnim[0].X = Titik_Cahaya.X + Vektor_Bayangan.i;
DispV_Bayangan3DAnim[0].Y = Titik_Cahaya.Y + Vektor_Bayangan.j;
DispV_Bayangan3DAnim[0].Z = Titik_Cahaya.Z + Vektor_Bayangan.k;
//=========================================
Bravo vektor R3, sebab dengan bantuannya program bayangan 3D bisa dibuat, bagaimana rekan-rekan, sangat sederhana perhitungannya tetapi bermanfaat besar sekali dalam dunia grafik komputer.
Ogut lagi menyiapkan program bayangan 3D yang lebih expert, tunggu tanggal mainnya, berangkat dari ide yang sederhana juga maka akan muncul bayangan 3D, seperti program di artikel ini.
Salam Grafik 3D
Heriady
heriady.yoh@gmail.com
Artikel terkait
Jaring / Jala 3D Dengan OpenGL
| |
Matematika Vektor R3
| |
Program Animasi Game MoTer 3D dengan OpenGL
|
Tidak ada komentar:
Posting Komentar