gravatar

AboutHacking..!!


Haking adalah ilmu pengetahuan dan bukanlah kejahatan, hacking adalah kemajuan teknologi dan merupakan revolusi teknologi. Yang jahat bukanlah hacking tapi orang yang memanfaatkan hacking untuk tujuan yang tidak baik
Baca selengkapnya Bagikan
gravatar

Praktikum 11 (Membuat Sebuah Gambar)



Praktikum 11 (Membuat Sebuah Gambar)

Memulai Project Baru:

Pada saat teman-teman akan membuat project baru untuk membuat garis dengan berbagai macam bentuk pada Microsoft Visual Studio 2008, langkah-langkah nya sebagai berikut:
1. Buka aplikasi Microsoft Visual Studio 2008
2. Pilih menu File-News-Project. Sehingga akan terbuka jendela dialog baru seperti di bawah ini:
3. Pilih win.32 Console Application  dan beri nama projectnya misal: Praktikum02. Klick Next, kemudian pada bagian Additional Options, contreng pilihan Empty project. Merupakan project yang kita mulai dari dasar, bukan dari template yang disediakan oleh Microsoft Visual Studio.
4. Jika project sudah berhasil tercreate, maka pada Microsoft Visual Studio di bagian paling kiri akan muncul folder project yang batu kita buat. Klick kanan pada folder Sources Files,  lalu pilih menu Add->New Item,  pilih C++ File(.cpp), kemudian beri nama, misal: lines.
5. Buka file lines.cpp pada editor kode program, lalu tuliskan kode program berikut ini:

Main.cpp
#include <windows.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h>
#include <stdarg.h> 
#include <glut.h>
#include <glu.h>
#include <iostream>
#include <stdlib.h>

#include "header.h"



void handleKeypress(unsigned char key, int x, int y) {
       switch (key) {
              case 27: //Escape key
                     exit(0);
       }
}

//Makes the image into a texture, and returns the id of the texture
GLuint loadTexture(Image* image) {
       GLuint textureId;
       glGenTextures(1, &textureId); //Make room for our texture
       glBindTexture(GL_TEXTURE_2D, textureId); //Tell OpenGL which texture to edit
       //Map the image to the texture
       glTexImage2D(GL_TEXTURE_2D,                //Always GL_TEXTURE_2D
                            0,                            //0 for now
                            GL_RGB,                       //Format OpenGL uses for image
                            image->width, image->height,  //Width and height
                            0,                            //The border of the image
                            GL_RGB, //GL_RGB, because pixels are stored in RGB format
                            GL_UNSIGNED_BYTE, //GL_UNSIGNED_BYTE, because pixels are stored
                                              //as unsigned numbers
                            image->pixels);               //The actual pixel data
       return textureId; //Returns the id of the texture
}

GLuint _textureId; //The id of the texture

void initRendering() {
       glEnable(GL_DEPTH_TEST);
       glEnable(GL_LIGHTING);
       glEnable(GL_LIGHT0);
       glEnable(GL_NORMALIZE);
       glEnable(GL_COLOR_MATERIAL);
      
       Image* image = loadBMP("vtr.bmp");
       _textureId = loadTexture(image);
       delete image;
}

void handleResize(int w, int h) {
       glViewport(0, 0, w, h);
       glMatrixMode(GL_PROJECTION);
       glLoadIdentity();
       gluPerspective(45.0, (float)w / (float)h, 1.0, 200.0);
}

void drawScene() {
       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
      
       glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
      
       glTranslatef(0.0f, 1.0f, -6.0f);
      
       GLfloat ambientLight[] = {0.2f, 0.2f, 0.2f, 1.0f};
       glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight);
      
       GLfloat directedLight[] = {0.7f, 0.7f, 0.7f, 1.0f};
       GLfloat directedLightPos[] = {-10.0f, 15.0f, 20.0f, 0.0f};
       glLightfv(GL_LIGHT0, GL_DIFFUSE, directedLight);
       glLightfv(GL_LIGHT0, GL_POSITION, directedLightPos);
      
       glEnable(GL_TEXTURE_2D);
       glBindTexture(GL_TEXTURE_2D, _textureId);
      
       //Bottom
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
       //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
       //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
       glColor3f(1.0f, 0.0f, 1.0f);
       glBegin(GL_QUADS);
      
       glNormal3f(0.0, 1.0f, 0.0f);
       glTexCoord2f(0.0f, 0.0f);
       glVertex3f(-2.5f, -2.5f, 2.5f);
       glTexCoord2f(1.0f, 0.0f);
       glVertex3f(2.5f, -2.5f, 2.5f);
       glTexCoord2f(1.0f, 1.0f);
       glVertex3f(2.5f, -2.5f, -2.5f);
       glTexCoord2f(0.0f, 1.0f);
       glVertex3f(-2.5f, -2.5f, -2.5f);
      
       glEnd();
      
       //Back
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
       glColor3f(1.0f, 1.0f, 1.0f);
       glBegin(GL_QUADS);

       glNormal3f(0.0f, 0.0f, 1.0f);
       glTexCoord2f(0.0f, 0.0f);
       glVertex3f(2.5f, -2.5f, -2.5f);
       glTexCoord2f(2.0f, 0.0f);
       glVertex3f(-2.5f, -2.5f, -2.5f);
       glTexCoord2f(2.0f, 2.0f);
       glVertex3f(-2.5f, 2.0f, -2.5f);
       glTexCoord2f(0.0f,2.0f);
       glVertex3f(2.5f, 2.0f, -2.5f);

      
       glEnd();
      
       //Left
       glDisable(GL_TEXTURE_2D);
       glColor3f(0.0f, 1.0f, 1.0f);
       glBegin(GL_QUADS);
      
       glNormal3f(1.0f, 0.0f, 0.0f);
       glVertex3f(-2.5f, -2.5f, 2.5f);
       glVertex3f(-2.5f, -2.5f, -2.5f);
       glVertex3f(-2.5f, 2.0f, -2.5f);
       glVertex3f(-2.5f, 2.5f, 2.5f);
      
       glEnd();

       glutSwapBuffers();
}

int main(int argc, char** argv) {
       glutInit(&argc, argv);
       glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
       glutInitWindowSize(400, 400);
      
       glutCreateWindow("Textures - videotutorialsrock.com");
       initRendering();
      
       glutDisplayFunc(drawScene);
       glutKeyboardFunc(handleKeypress);
       glutReshapeFunc(handleResize);
      
       glutMainLoop();
       return 0;
}

6. Lakukan pengubahan properti program dengan memilih menu:
   -Project-> Properties, atau tekan tombol Alt+F7
   -pada Configuration Properties->General->Linker->Input->Additional Dependencies, masukkan library-librari yang dibutuhkan. Ketikkan: opengl32.lib glu.32.lib glut32.lib
   -Pada Configuration Properties->C/C++->Advance->Disable Spesific Warnings ketik 4996 (pilih level 3).
7. Lakukan kompilasi dan jalankan program dengan menekan tombol F5. Maka hasil running akan tampak seperti di atas.


Penting teman-teman bisa mencoba mengganti sedikit demi sedikit nilai kode program di atas sambil melihat perubahannya
Baca selengkapnya Bagikan