Daftar Isi - if102009.files.wordpress.com · Web viewGrafika komputer digunakan untuk menunjang...
Transcript of Daftar Isi - if102009.files.wordpress.com · Web viewGrafika komputer digunakan untuk menunjang...
Tugas Besar Grafika KomputerPembuatan Objek Dengan OpenGL
Diajukan untuk Memenuhi Tugas Grafika KomputerFakultas Teknik dan Ilmu Komputer
Universitas Komputer Indonesia
Kelompok 3 – IF-10
Ricky Ramdhani 10109417Herdi Prayoga 10109422Rendi Fajar Muharram 10109419
JURUSAN TEKNIK INFORMATIKAFAKULTAS TEKNIK DAN ILMU KOMPUTER
UNIVERSTAS KOMPUTER INDONESIA2013
Daftar Isi
Daftar Isi..................................................................................................................................i
BAB I PENDAHULUAN.......................................................................................................1
1. Pendahuluan.....................................................................................................................1
2. Rumusan Masalah............................................................................................................2
3. Batasan Masalah..............................................................................................................2
BAB II ISI...............................................................................................................................3
2.1 Tema Program..........................................................................................................3
2.2 Deskripsi Objek Program.........................................................................................3
2.3 Bahasa Pemrograman yang digunakan.....................................................................3
2.4 Progres......................................................................................................................3
2.5 Perencanaan Kerja....................................................................................................4
2.6 Pembagian Kerja......................................................................................................4
2.7 Tampilan Program....................................................................................................5
2.8 Interaksi objek dengan mouse dan keyboard...........................................................6
BAB III KESIMPULAN DAN SARAN................................................................................7
3.1 Kesimpulan...............................................................................................................7
3.2 Saran.........................................................................................................................7
Lampiran.................................................................................................................................8
Daftar Pustaka.........................................................................................................................9
i
BAB I
1. PENDAHULUAN
Perkembangan grafika komputer menuntut para pengembang sistem aplikasi grafika
komputer untuk dapat mengembangkan suatu informasi yang dilengkapi dengan visualisasi
dan animasi, agar dapat lebih mudah dipahami oleh pihak yang menggunakan sistem
tersebut. Grafika komputer telah menunjukkan kemajuan yang pesat dalam pengembangan
berbagai aplikasi untuk menghasilkan gambar.
Grafika komputer digunakan untuk menunjang berbagai bidang dengan teknologi
grafika berbasis komputer. Penggunaan grafika komputer telah lama digunakan dalam
beberapa macam aplikasi, diantaranya pendidikan, kedokteran, fisika, matematika,
multimedia, dan lain-lain. Pada saat ini grafika komputer sudah digunakan pada bidang
sains, engineering, kedokteran, bisnis, industri, pemerintahan, seni, hiburan, iklan,
pendidikan, dan lain-lain.
Oleh karena itu, sudah semakin banyak pula bahasa pemrograman yang dilengkapi
dengan tools/library pembuatan grafik Salah satu tools/library pembuatan aplikasi grafik
adalah OpenGL (Open Graphics Library). OpenGL(Open Graphics Library) adalah suatu
spefikasi grafik yang low-level yang menyediakan fungsi untuk pembuatan grafik primitif
termasuk titik, garis, dan lingkaran. OpenGL digunakan untuk mendefinisikan suatu objek,
baik objek 2 dimensi maupun objek 3 dimensi.
Penulis mengambil judul “PEMBUATAN BENTUK 3D BONEKA DANBO”.
Dalam rangka mengimplementasikan grafika komputer dalam di salah satu bidang yaitu
bidang hiburan.
Pengerjaan yang begitu kompleks menyebabkan program tersebut tidak dapat
dilakukan oleh perorangan, maka dari itu pengerjaan program dilakukan perkelompok,
effisiensi dan kerja sama dibutuhkan dalam proses pengerjaan program menampilkan
objek-objek menggunakan bahasa Java.
Latar belakang penulis mengambil tema 3D boneka danbo yaitu penulis ingin
mencoba mengkombinasikan beberapa bentuk benda yang akan kami buat dalam bentuk
3D sehingga bentuk-bentuk tersebut dapat disajikan ke dalam satu tampilan layar.
1
2. RUMUSAN MASALAH
Berdasarkan latar belakang dapat didefinisikan beberapa masalah yaitu :
Bagaimana cara memodelkan boneka danbo dalam bentuk 3D pada openGL dengan
menggunakan JDK 7 dan Netbeans Versi 7.3 dengan menggunakan library
OpenGL.
3. BATASAN MASALAH
Dalam pembahasan tugas pembuatan 3D boneka danbo dibatasi sebagai berikut :
a. Membahas tentang cara membuat dan merancang bentuk boneka danbo 3D dengan
menggunakan OpenGL sesuai dengan yang telah ditentukan dalam rumusan
masalah.
a. Membahas aplikasi pembuatan bentuk 3D menggunakan JDK 7 dan Netbeans Versi
7.3 dengan menggunakan library OpenGL.
2
BAB II
ISI
2.1 Tema Program
Tema dari program pembuatan objek menggunakan openGL ini adalah pembuatan
objek yang terdiri dari beberapa objek dan membentuk tiga buah boneka danbo yang
sedang berdiri di atas permukaan jalan.
2.2 Deskripsi Objek Program
Objek utama pada program ini merupakan pencitra dari beberapa objek yang
digabungkan dengan menonjolkan detail dan sedikit pencahayaan.
Objek-objek yang ada dalam program tersebut berupa :
1. Boneka danbo : Boneka danbo dibuat dari objek 2D yang di bentuk se-
hingga
menjadi bangun 3D.
2. Jalan : Jalan dibuat menggunakan texture.
2.3 Bahasa Pemrograman yang digunakanBahasa pemrograman yang digunakan adalah Java dengan library OpenGL dengan
menggunakan software developer JDK 7 dan Netbeans Versi 7.3 dengan menggunakan library
OpenGL LWJGL serta media penyimpanan github.
2.4 Progress
Tahapan pembuatan program :
1. Merancang dan menetapkan konsep program yang akan dibuat.
2. Pengumpulan bahan dan referensi dari berbagai media.
3. Analisis dan prediksi pembuatan design.
4. Pembuatan program.
5. Pembuatan laporan.
3
2.5 Perencanaan Kerja
Kinerja dalam proses pembuatan program ini harus dilakukan semaksimal mungkin
agar mendapatkan hasil yang baik.
Berikut langkah-langkah yang dilalui dalam perencanaan kerja:
1. Tahapan perancangan dan penetapan konsep :
Mencari referensi.
Menentukan konsep yang sesuai dilihat dari kelengkapan referensi yang ada.
2. Tahapan perancangan dan kebutuhan
Menganalisis akan kebutuhan objek yang dibutuhkan.
Menyiapkan dan membuat objek-objek satu persatu
Merancang struktur letak desain objek.
Membuat beberapa interkasi menarik.
3. Pembuatan Laporan.
2.6 Pembagian Kerja
Pembagian pekerjaan dalam pengerjaan tugas ini dibagi sedemikian mungkin agar
mendapatkan hasil yang memuaskan.
Berikut pembagian kerja :
Ricky Ramdhani Penentuan konsep, pembuatan aplikasi,
pengerjaan design, pembuatan laporan
Herdi Prayoga Penentuan konsep Pembuatan aplikasi
pengerjaan design, pembuatan laporan
Rendi Fajar Muharram Pembuatan laporan
4
2.7 Tampilan Program
Gambar 1. Tampilan Program
Gambar 2. Tampilan Program
5
Gambar 3. Tampilan Program Lighting
Gambar 3. Tampilan Program Tampak Lighting
2.8 Interaksi Objek Dengan Mouse dan KeyboardObjek ini dapat berinteraksi dengan menggunakan mouse dan keyboard. Pada
interaksi objek menggunakan mouse, kamera dapat dinavigasikan dengan gerakan mouse
yang di geser untuk melihat visualisasi objek secara memutar dari berbagai sudut pandang.
Berikut merupakan table interaksi yang dapat digunakan pada tombol keyboard:
Key Board
Tombol Fungsi
W Menggerakkan visualisasi kamera ke depan
A Menggerakkan visualisasi kamera ke kiri
S Menggerakkan visualisasi kamera ke belakang
D Menggerakkan visualisasi kamera ke kanan
Panah Atas Menggerakkan visualisasi kamera ke depan
Panah Bawah Menggerakkan visualisasi kamera ke kiri
Panah Kanan Menggerakkan visualisasi kamera ke belakang
Panah Kiri Menggerakkan visualisasi kamera ke kanan
6
Tabel 1. Tabel Interaksi
7
BAB III
KESIMPULAN DAN SARAN3.1 Kesimpulan
Dari pembahasan dapat diambil kesimpulan sebagai berikut :
1. Didalam pembuatan grafik di jaman serba teknologi ini kita bebas menentukan
alat apa yang akan kita pakai, dan untuk memahami secara mendalam
transformasi didalam grafik komputer sangatlah penting menguasai ilmu
matematik.
2. Perbandingan hasil pembuatan program dengan menggunakan bahasa
programan lebih sulit dan berbeda jauh dari segi tampilan, maupun tata cara
pembuatannya dibandingkan dengan program aplikasi yang menerapkan system
just click (event driven).
3.2 Saran
Setelah melihat uraian di atas, penyusun mempunyai saran.
1. Terlebih dahulu harus belajar algoritma, karena algoritma adalah salah satu
kunci untuk dapat memahami permasalahan yang akan dihadapi didalam
pembuatan grafik komputer.
2. Bila ingin membuat suatu gambar/grafik, pilihlah program aplikasi yang lebih
bagus menurut anda, lebih kompleks, dan yang khusus menanganipembuatan
gambar/grafik serta yang mengikuti perkembangan jaman .
3. Harus memahami sintak-sintak (gaya bahasa penulisan dalam bahasa
pemrograman ) yang terdapat dalam bahasa pemrograman ataupun fitur – fitur
yang terdapat didalam program aplikasi.
8
LampiranSource Code Program
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.FloatBuffer;
import org.lwjgl.BufferUtils;
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;
import org.lwjgl.util.glu.GLU;
import org.lwjgl.util.glu.Sphere;
import static org.lwjgl.opengl.GL11.*;
import utility.EulerCamera;
import static org.lwjgl.opengl.GL20.glDeleteProgram;
import static org.lwjgl.opengl.GL20.glUseProgram;
import org.newdawn.slick.opengl.Texture;
import org.newdawn.slick.opengl.TextureLoader;
public class Danbo {
private static final int[] WINDOW_DIMENSIONS = {1200, 600};
private static final float ASPECT_RATIO = (float) WINDOW_DIMENSIONS[0] /
(float) WINDOW_DIMENSIONS[1];
private static final EulerCamera camera = new EulerCamera.Builder().setPosition(0.0f,
0.0f, //edit 2
0.0f).setRotation(0, 5,
9
0).setAspectRatio(ASPECT_RATIO).setFieldOfView(60).build(); //edit 2
private static final String WINDOW_TITLE = "Lighting Test";
private static final int FPS = 70; //frames per second
private boolean isRunning; //variable to tell if program is running or not
private float zTranslation = -12f;
private static boolean flatten = false;
private static int shaderProgram;
private static Texture paper2;
private static Texture paper;
private static Texture street;
//----------- Variables added for Lighting Test -----------//
private FloatBuffer matSpecular;
private FloatBuffer lightPosition;
private FloatBuffer whiteLight;
private FloatBuffer lModelAmbient;
//----------- END: Variables added for Lighting Test -----------//
public static void main(String[] args) {
Danbo test = new Danbo();
test.run( );
}
private void run() {
try {
init();
while( isRunning ) {
getInput(); //read input
10
render(); //render graphics
input();
setUpStates();
setUpMatrices();
Display.sync(FPS); //sync to fps
Display.update(); //update the view/screen
}
} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}
private void render() {
glEnable(GL_TEXTURE_2D);
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glLoadIdentity();
camera.applyTranslations();
glTranslated(1.3f, -5.0f, -29.3f); // Move Right And Into The Screen
paper2.bind();
//Head (Child)
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.6f, 2.2f, -2.0f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-3.1f, 2.2f, -2.0f); // Top Left Of The Quad (Top)
11
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-3.1f, 2.2f, 2.0f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.6f, 2.2f, 2.0f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.6f, -1.2f, 1.5f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-3.1f, -1.2f, 1.5f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-3.1f, -1.2f, -2.0f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.6f, -1.2f, -2.0f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.6f, 2.2f, 2.0f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-3.1f, 2.2f, 2.0f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-3.1f, -1.2f, 1.5f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.6f, -1.2f, 1.5f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.6f, -1.2f, -2.5f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
12
glVertex3f(-3.1f, -1.2f, -2.5f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-3.1f, 2.2f, -2.0f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.6f, 2.2f, -2.0f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-3.1f, 2.2f, 2.0f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-3.1f, 2.2f, -2.0f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-3.1f, -1.2f, -2.5f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-3.1f, -1.2f, 1.5f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.6f, 2.2f, -2.0f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(2.6f, 2.2f, 2.0f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(2.6f, -1.2f, 1.5f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.6f, -1.2f, -2.5f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Head2 (Child)
13
glTranslated(0.0f, 0.0f, 0.0f); // Move Right And Into The Screen
paper.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.6f, 2.2f, 2.0f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-3.1f, 2.2f, 2.0f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-3.1f, -1.2f, 1.5f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.6f, -1.2f, 1.5f); // Bottom Right Of The Quad (Front)
glEnd();
//Body (Child)
glTranslated(0.0f, -3.9f, -0.5f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, 2.5f, -1.1f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-1.8f, 2.5f, -1.1f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-1.8f, 2.5f, 1.2f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
14
glVertex3f(1.2f, 2.5f, 1.2f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, -1.7f, 1.2f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-1.8f, -1.7f, 1.2f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-1.8f, -1.7f, -1.1f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, -1.7f, -1.1f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 1.2f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-1.8f, 2.5f, 1.2f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-1.8f, -1.7f, 1.2f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, -1.7f, 1.2f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, -1.7f, -1.1f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-1.8f, -1.7f, -1.1f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-1.8f, 2.5f, -1.1f); // Top Right Of The Quad (Back)
15
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, 2.5f, -1.1f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-1.8f, 2.5f, 1.2f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-1.8f, 2.5f, -1.1f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-1.8f, -1.7f, -1.1f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-1.8f, -1.7f, 1.2f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, 2.5f, -1.1f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 1.2f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.2f, -1.7f, 1.2f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, -1.7f, -1.1f); // Bottom Right Of The Quad (Right)
glEnd();
//Left Hand (Child)
glTranslatef(-3.1f, -1.0f, -0.5f); // Move Right And Into The Screen
paper2.bind();
16
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 0.0f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, 2.5f, 0.0f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.1f, 2.5f, 1.0f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, 2.5f, 1.0f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, -1.2f, 1.8f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, -1.2f, 1.8f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.1f, -1.2f, 0.8f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, -1.2f, 0.8f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 1.0f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, 2.5f, 1.0f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.1f, -1.2f, 1.8f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
17
glVertex3f(1.2f, -1.2f, 1.8f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, -1.2f, 0.8f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, -1.2f, 0.8f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.1f, 2.5f, 0.0f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, 2.5f, 0.0f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(0.1f, 2.5f, 1.0f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, 2.5f, 0.0f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.1f, -1.2f, 0.8f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(0.1f, -1.2f, 1.8f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 0.0f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 1.0f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.2f, -1.2f, 1.8f); // Bottom Left Of The Quad (Right)
18
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, -1.2f, 0.8f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Right Hand (Child)
glTranslatef(4.2f, 0.0f, 0.1f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 0.0f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, 2.5f, 0.0f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.1f, 2.5f, 1.0f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, 2.5f, 1.0f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, -1.2f, 1.0f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, -1.2f, 1.0f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.1f, -1.2f, 0.0f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, -1.2f, 0.0f); // Bottom Right Of The Quad (Bottom)
19
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 1.0f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, 2.5f, 1.0f); // Top Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(0.1f, -1.2f, 1.0f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, -1.2f, 1.0f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, -1.2f, 0.0f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, -1.2f, 0.0f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.1f, 2.5f, 0.0f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, 2.5f, 0.0f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(0.1f, 2.5f, 1.0f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.1f, 2.5f, 0.0f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.1f, -1.2f, 0.0f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(0.1f, -1.2f, 1.0f); // Bottom Right Of The Quad (Left)
20
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 0.0f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.2f, 2.5f, 1.0f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.2f, -1.2f, 1.0f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.2f, -1.2f, 0.0f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Right Foot (Child)
glTranslatef(0.9f, 0.0f, 3.4f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.9f, 0.8f, -1.7f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 0.8f, -1.7f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 0.8f, 0.8f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, 0.8f, 0.8f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
21
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.9f, -1.1f, 0.8f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.7f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, -1.1f, -1.7f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.9f, 0.8f, 0.8f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 0.8f, 0.8f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, -1.1f, 0.8f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.9f, -1.1f, -1.7f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, -1.7f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 0.8f, -1.7f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, 0.8f, -1.7f); // Top Left Of The Quad (Back)
22
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-2.1f, 0.8f, 0.8f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 0.8f, -1.7f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.7f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.9f, 0.8f, -1.7f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-0.9f, 0.8f, 0.8f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-0.9f, -1.1f, 0.8f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, -1.1f, -1.7f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Left Foot (Child)
glTranslatef(-1.6f, 0.0f, -0.0f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
23
glVertex3f(-0.9f, 0.8f, -1.7f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 0.8f, -1.7f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 0.8f, 0.8f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, 0.8f, 0.8f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.9f, -1.1f, 0.8f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.7f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, -1.1f, -1.7f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.9f, 0.8f, 0.8f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 0.8f, 0.8f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, -1.1f, 0.8f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
24
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.9f, -1.1f, -1.7f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, -1.7f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 0.8f, -1.7f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, 0.8f, -1.7f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-2.1f, 0.8f, 0.8f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 0.8f, -1.7f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.7f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.9f, 0.8f, -1.7f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-0.9f, 0.8f, 0.80f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-0.9f, -1.1f, 0.8f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.9f, -1.1f, -1.7f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
25
/*===============================================================
========*/
// Head (Father)
glLoadIdentity(); // Reset The View
camera.applyTranslations();
glTranslatef(6.4f, 0.6f, -34.3f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, 3.9f, -3.3f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, -3.3f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, 3.9f, 2.3f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, 3.9f, 2.3f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, -1.7f, 2.3f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, -1.7f, 2.3f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, -1.7f, -3.3f); // Bottom Left Of The Quad (Bottom)
26
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, -1.7f, -3.3f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, 3.9f, 2.3f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, 2.3f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, -1.7f, 2.3f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, -1.7f, 2.3f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, -1.7f, -3.3f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, -1.7f, -3.3f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, 3.9f, -3.3f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, 3.9f, -3.3f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, 2.3f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, -3.3f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
27
glVertex3f(-4.1f, -1.7f, -3.3f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-4.1f, -1.7f, 2.3f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, 3.9f, -3.3f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(4.5f, 3.9f, 2.3f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(4.5f, -1.7f, 2.3f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, -1.7f, -3.3f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Head2 (Father)
glTranslatef(0.0f, 0.0f, 0.1f); // Move Right And Into The Screen
paper.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, 3.9f, 2.3f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, 2.3f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, -1.7f, 2.3f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
28
glVertex3f(4.5f, -1.7f, 2.3f); // Bottom Right Of The Quad (Front)
glEnd();
// Body (Father)
glTranslatef(0.2f, -6.0f, -0.3f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -2.3f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.3f, 4.2f, -2.3f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, 4.2f, 1.3f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, 1.3f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, -1.7f, 1.3f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.3f, -1.7f, 1.3f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, -1.7f, -2.3f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, -2.3f); // Bottom Right Of The Quad (Bottom)
29
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 1.3f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.3f, 4.2f, 1.3f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, -1.7f, 1.3f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, 1.3f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, -1.7f, -2.3f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.3f, -1.7f, -2.3f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, 4.2f, -2.3f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, -2.3f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-2.3f, 4.2f, 1.3f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.3f, 4.2f, -2.3f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, -1.7f, -2.3f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-2.3f, -1.7f, 1.3f); // Bottom Right Of The Quad (Left)
30
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -2.3f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 1.3f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(2.7f, -1.7f, 1.3f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, -2.3f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Left Hand (Father)
glTranslatef(-5.1f, -1.5f, 0.0f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, 4.2f, 0.4f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
31
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.0f, -1.7f, 0.4f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.3f, -1.7f, 0.4f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.3f, -1.7f, -1.4f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.0f, -1.7f, -1.4f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, 0.4f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.3f, -1.7f, 0.4f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.0f, -1.7f, 0.4f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.0f, -1.7f, -1.4f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(0.3f, -1.7f, -1.4f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Left Of The Quad (Back)
32
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.0f, 4.2f, 0.4f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(0.3f, -1.7f, -1.4f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(0.3f, -1.7f, 0.4f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glVertex3f(2.7f, 4.2f, -1.4f); // Top Right Of The Quad (Right)
glVertex3f(2.7f, 4.2f, 0.4f); // Top Left Of The Quad (Right)
glVertex3f(2.0f, -1.7f, 0.4f); // Bottom Left Of The Quad (Right)
glVertex3f(2.0f, -1.7f, -1.4f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Right Hand (Father)
glTranslatef(6.9f, 0.2f, 0.1f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Green
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
33
glVertex3f(1.0f, 4.2f, 0.4f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Set The Color To Orange
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, -1.7f, 0.4f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, -1.7f, 0.4f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, -1.7f, -1.4f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, -1.4f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Red
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, 0.4f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, -1.7f, 0.4f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, 0.4f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Yellow
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, -1.7f, -1.4f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, -1.7f, -1.4f); // Bottom Right Of The Quad (Back)
34
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Blue
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.0f, 4.2f, 0.4f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, -1.7f, -1.4f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.0f, -1.7f, 0.4f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Violet
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(2.7f, -1.7f, 0.4f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, -1.4f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Left Foot (Father)
glTranslatef(-2.0f, -3.4f, -0.5f); // Move Right And Into The Screen
35
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
36
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Top Left Of The Quad (Right)
37
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Right Foot (Father)
glTranslatef(2.8f, 0.0f, 0.0f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Bottom)
38
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
39
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
/*===============================================================
========*/
// Head (Mother)
glLoadIdentity(); // Reset The View
camera.applyTranslations();
glTranslatef(-4.0f, 0.6f, -34.3f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, 3.9f, -3.3f); // Top Right Of The Quad (Top)
40
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, -3.3f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, 3.9f, 2.3f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, 3.9f, 2.3f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, -1.7f, 2.3f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, -1.7f, 2.3f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, -1.7f, -3.3f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, -1.7f, -3.3f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, 3.9f, 2.3f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, 2.3f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, -1.7f, 2.3f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, -1.7f, 2.3f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
41
glVertex3f(4.5f, -1.7f, -3.3f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, -1.7f, -3.3f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, 3.9f, -3.3f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, 3.9f, -3.3f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, 2.3f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, -3.3f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, -1.7f, -3.3f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-4.1f, -1.7f, 2.3f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, 3.9f, -3.3f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(4.5f, 3.9f, 2.3f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(4.5f, -1.7f, 2.3f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, -1.7f, -3.3f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
42
// Right Hand (Mother)
glTranslatef(1.6f, -7.6f, 0.1f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, 4.2f, 0.4f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(3.0f, -1.7f, 0.4f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.3f, -1.7f, 0.4f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.3f, -1.7f, -1.4f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(3.0f, -1.7f, -1.4f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
43
glVertex3f(1.0f, 4.2f, 0.4f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.3f, -1.7f, 0.4f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(3.0f, -1.7f, 0.4f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(3.0f, -1.7f, -1.4f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.3f, -1.7f, -1.4f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.0f, 4.2f, 0.4f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.3f, -1.7f, -1.4f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.3f, -1.7f, 0.4f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Right Of The Quad (Right)
44
glTexCoord2f(0.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(3.0f, -1.7f, 0.4f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(3.0f, -1.7f, -1.4f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Body (Mother)
glTranslatef(-1.8f, 1.6f, -0.3f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -2.3f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.3f, 4.2f, -2.3f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, 4.2f, 1.3f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, 1.3f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, -1.7f, 1.3f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.3f, -1.7f, 1.3f); // Top Left Of The Quad (Bottom)
45
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, -1.7f, -2.3f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, -2.3f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 1.3f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.3f, 4.2f, 1.3f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, -1.7f, 1.3f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, 1.3f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, -1.7f, -2.3f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.3f, -1.7f, -2.3f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, 4.2f, -2.3f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, -2.3f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-2.3f, 4.2f, 1.3f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
46
glVertex3f(-2.3f, 4.2f, -2.3f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.3f, -1.7f, -2.3f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-2.3f, -1.7f, 1.3f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -2.3f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 1.3f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(2.7f, -1.7f, 1.3f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, -2.3f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Right Hand (Mother)
glTranslatef(-5.1f, -1.5f, 0.1f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Green
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
47
glVertex3f(1.0f, 4.2f, 0.4f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Set The Color To Orange
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, -1.7f, 0.4f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, -1.7f, 0.4f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, -1.7f, -1.4f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, -1.4f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Red
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, 0.4f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, -1.7f, 0.4f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, 0.4f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Yellow
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, -1.7f, -1.4f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, -1.7f, -1.4f); // Bottom Right Of The Quad (Back)
48
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Blue
glTexCoord2f(1.0f, 0.0f);
glVertex3f(1.0f, 4.2f, 0.4f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(1.0f, 4.2f, -1.4f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(1.0f, -1.7f, -1.4f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(1.0f, -1.7f, 0.4f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Set The Color To Violet
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.7f, 4.2f, -1.4f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(2.7f, 4.2f, 0.4f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(2.7f, -1.7f, 0.4f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.7f, -1.7f, -1.4f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Left Foot (Mother)
glTranslatef(5.0f, -3.1f, 0.0f); // Move Right And Into The Screen
49
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Bottom)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
50
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Top Left Of The Quad (Right)
51
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Right Foot (Mother)
glTranslatef(2.6f, 0.0f, 0.0f); // Move Right And Into The Screen
paper2.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Top
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Right Of The Quad (Top)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Left Of The Quad (Top)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Bottom Left Of The Quad (Top)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Bottom Right Of The Quad (Top)
glColor3f(1.0f, 1.5f, 1.0f); // Default Color Bottom
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Top Right Of The Quad (Bottom)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Top Left Of The Quad (Bottom)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Bottom)
52
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Bottom)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Front)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Back
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Back)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Back)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Right Of The Quad (Back)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Left Of The Quad (Back)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Left
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, 0.8f); // Top Right Of The Quad (Left)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.1f, 2.8f, -1.3f); // Top Left Of The Quad (Left)
glTexCoord2f(0.0f, 1.0f);
53
glVertex3f(-2.1f, -1.1f, -1.3f); // Bottom Left Of The Quad (Left)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-2.1f, -1.1f, 0.8f); // Bottom Right Of The Quad (Left)
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Right
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, -1.3f); // Top Right Of The Quad (Right)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-0.1f, 2.8f, 0.8f); // Top Left Of The Quad (Right)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, 0.8f); // Bottom Left Of The Quad (Right)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-0.1f, -1.1f, -1.3f); // Bottom Right Of The Quad (Right)
glEnd(); // Done Drawing The Quad
// Head (Mother)
glTranslatef(-2.3f, 10.6f, 0.2f); // Move Right And Into The Screen
paper.bind();
glBegin(GL_QUADS); // Start Drawing The Cube
glColor3f(1.0f, 1.0f, 1.0f); // Default Color Front
glTexCoord2f(1.0f, 0.0f);
glVertex3f(4.5f, 3.9f, 2.3f); // Top Right Of The Quad (Front)
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-4.1f, 3.9f, 2.3f); // Top Left Of The Quad (Front)
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-4.1f, -1.7f, 2.3f); // Bottom Left Of The Quad (Front)
glTexCoord2f(1.0f, 1.0f);
glVertex3f(4.5f, -1.7f, 2.3f); // Bottom Right Of The Quad (Front)
54
glEnd(); // Done Drawing The Quad
// Street
glTranslated(17.5f,-3.6f,-11.0f);
street.bind();
glBegin(GL_QUADS);
glColor3f(1.0f, 1.0f, 1.0f);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-30.0F, -8.0F, -60.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-30.0F, -8.0F, 60.0f);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(30.0F, -8.0F, 60.0f);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(30.0F, -8.0F, -60.0f);
glEnd();
/*glTranslatef(-8.3f, -6.4f, 20.3f);
paper.bind();
// glTranslated(1.3f, -5.0f, -29.3f);
glColor3f(1.0f, 1.0f, 1.0f);
Sphere s = new Sphere();
s.draw(2.0f, 70, 70);*/
}
55
private void getInput() {
if(Keyboard.isKeyDown(Keyboard.KEY_ESCAPE)) { // if user presses
escape key
isRunning = false;
}
if( Display.isCloseRequested()) { // if user closes window
isRunning = false;
}
}
private void init() {
createWindow();
initGL();
isRunning = true;
}
private void createWindow() {
try {
Display.setDisplayMode(new
DisplayMode(WINDOW_DIMENSIONS[0],WINDOW_DIMENSIONS[1]));
Display.setTitle(WINDOW_TITLE);
Display.create();
} catch (LWJGLException e){
e.printStackTrace();
}
try {
// Load the wood texture from "res/images/wood.png"
paper = TextureLoader.getTexture("PNG", new FileInputStream(new
56
File("C:\\Users\\Asus\\Documents\\NetBeansProjects\\tugas\\paper.png")));
paper2 = TextureLoader.getTexture("PNG", new FileInputStream(new
File("C:\\Users\\Asus\\Documents\\NetBeansProjects\\tugas\\paper2.png")));
street = TextureLoader.getTexture("PNG", new FileInputStream(new
File("C:\\Users\\Asus\\Documents\\NetBeansProjects\\tugas\\street.png")));
} catch (IOException e) {
e.printStackTrace();
Display.destroy();
System.exit(1);
}
}
private void initGL() {
glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // sets background to grey
glClearDepth(1.0f); // clear depth buffer
glEnable(GL_DEPTH_TEST); // Enables depth testing
glDepthFunc(GL_LEQUAL); // sets the type of test to use for depth testing
glMatrixMode(GL_PROJECTION); // sets the matrix mode to project
glMatrixMode(GL_MODELVIEW);
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
//----------- Variables & method calls added for Lighting Test -----------//
initLightArrays();
glShadeModel(GL_SMOOTH);
glMaterial(GL_FRONT, GL_SPECULAR, matSpecular);
// sets specular material color
glMaterialf(GL_FRONT, GL_SHININESS, 50.0f);
57
// sets shininess
glLight(GL_LIGHT0, GL_POSITION, lightPosition);
// sets light position
glLight(GL_LIGHT0, GL_SPECULAR, whiteLight);
// sets specular light to white
glLight(GL_LIGHT0, GL_DIFFUSE, whiteLight);
// sets diffuse light to white
glLightModel(GL_LIGHT_MODEL_AMBIENT, lModelAmbient);
// global ambient light
glEnable(GL_LIGHTING);
// enables lighting
glEnable(GL_LIGHT0);
// enables light0
glEnable(GL_COLOR_MATERIAL);
// enables opengl to use glColor3f to define material color
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
// tell opengl glColor3f effects the ambient and diffuse properties of material
//----------- END: Variables & method calls added for Lighting Test
-----------//
}
private static void input() {
while (Keyboard.next()) {
if (Keyboard.getEventKeyState()) {
if (Keyboard.isKeyDown(Keyboard.KEY_F)) {
58
flatten = !flatten;
}
if (Keyboard.getEventKey() == Keyboard.KEY_L) {
// Reload the shaders and the heightmap data.
glUseProgram(0);
glDeleteProgram(shaderProgram);
}
if (Keyboard.getEventKey() == Keyboard.KEY_P) {
// Switch between normal mode, point mode, and wire-frame mode.
int polygonMode = glGetInteger(GL_POLYGON_MODE);
if (polygonMode == GL_LINE) {
glPolygonMode(GL_FRONT, GL_FILL);
} else if (polygonMode == GL_FILL) {
glPolygonMode(GL_FRONT, GL_POINT);
} else if (polygonMode == GL_POINT) {
glPolygonMode(GL_FRONT, GL_LINE);
}
}
}
}
if (Mouse.isButtonDown(0)) {
Mouse.setGrabbed(true);
} else if (Mouse.isButtonDown(1)) {
Mouse.setGrabbed(false);
}
if (Mouse.isGrabbed()) {
camera.processMouse(1, 80, -80);
}
camera.processKeyboard(25, 1);
59
}
private static void setUpMatrices() {
camera.applyPerspectiveMatrix();
}
private static void setUpStates() {
camera.applyOptimalStates();
glPointSize(2);
// Enable the sorting of shapes from far to near
glEnable(GL_DEPTH_TEST);
// Remove the back (bottom) faces of shapes for performance
glEnable(GL_CULL_FACE);
}
//------- Added for Lighting Test----------//
private void initLightArrays() {
matSpecular = BufferUtils.createFloatBuffer(4);
matSpecular.put(1.0f).put(1.0f).put(1.0f).put(1.0f).flip();
lightPosition = BufferUtils.createFloatBuffer(4);
lightPosition.put(1.0f).put(1.0f).put(1.0f).put(8.0f).flip();
//lightPosition.put(1.0f).put(1.0f).put(1.0f).put(0.0f).flip();
whiteLight = BufferUtils.createFloatBuffer(4);
whiteLight.put(1.0f).put(1.0f).put(1.0f).put(1.0f).flip();
lModelAmbient = BufferUtils.createFloatBuffer(4);
lModelAmbient.put(0.5f).put(0.5f).put(0.5f).put(1.0f).flip();
60
}
}
61
Daftar Pustaka
[1] Hearn Donald, Baker M. Pauline, Computer Graphics With OpenGL, Pearson
Prentice Hall, United States of America, 2004.
[2] Khronos Group (2008). The Industry’s Foundation for High Performance
Graphics. Available at http://opengl.org/
[3] http://en.wikipedia.org/wiki/Danbo
62