Belajar Membuat Texture dengan SOIL

openGL dapat menggunakan texture. Sebenarnya ada banyak tidak hanya SOIL tetapi yang ada di tutorial ini hanyalah SOIL.
berikut source codenya :

sebelumnya download dulu SOIL nya disini 

//digunakan untuk import dan link SOIL nya
#pragma comment(lib,"SOIL.lib")

//install glew sama soil
#define GLEW_STATIC

#include 
#include 
#include<GL/glew.h>
#include <GL/glut.h>

#include  //untuk yang soil ini dapat di download nih 

#include 

#include 
#include 

GLuint texture;

int LoadGLTextures()	
{
	/* load gambar dimana D:\\texture\\dinding.jpg itu merupakan sourcenya*/
	texture = SOIL_load_OGL_texture
		(
		"D:\\texture\\dinding.jpg",
		SOIL_LOAD_AUTO,
		SOIL_CREATE_NEW_ID,
		SOIL_FLAG_INVERT_Y
		);

	if(texture == 0)
		return 0;

	return 1;										// Return Success
}

void init(void)
{
	glShadeModel(GL_SMOOTH);
	glEnable (GL_DEPTH_TEST);
	glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
//jalankan fungsi pertama kali untuk meyimpan gambar ke GLuint texture
	LoadGLTextures();
}

void Display(void)
{
 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 glLoadIdentity();
 glTranslatef(0.0,0.0,-3.0);
  //gambar dimari
 glPushMatrix();
        //akan meng enablekan texture
	glEnable(GL_TEXTURE_2D);
	glBindTexture(GL_TEXTURE_2D, texture);
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); //biar tile
	glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); // biar tile
		glPushMatrix();
		glBegin(GL_QUADS); 
		glTexCoord2f(-2.0f, 2.0f);glVertex3f(-3.0,3.0,0.0); 
		glTexCoord2f(3.0f, 2.0f);glVertex3f(10.0,3.0,0.0);
		glTexCoord2f(3.0f, 0.0f);glVertex3f(10.0,-1.0,0.0);
		glTexCoord2f(-2.0f, 0.0f);glVertex3f(-3.0,-1.0,0.0);
		glEnd();
		glPopMatrix();
        //di disable texture ( biar tak mengganggu )
	glDisable(GL_TEXTURE_2D);
glPopMatrix();

 glFlush();   //Selesai rendering
}

void Reshape(int x, int y)
{
	if (y == 0 || x == 0) return;  //Jika tak ada lagi yang muncul, maka berhenti

	//Mengatur proyeksi matrix baru 
	glMatrixMode(GL_PROJECTION);  
	glLoadIdentity();
	//Sudut : 40 derajat
	//Jarak potongan dataran terdekat: 0.5
	//Jarak potongan dataran terjauh: 20.0
	gluPerspective(40.0,(GLdouble)x/(GLdouble)y,0.5,20.0);
	glMatrixMode(GL_MODELVIEW);
	glViewport(0,0,x,y);  //gunakan seluruh window untuk rendering
	//
}

int main (int argc, char **argv)
{
 //Inisialisasi GLUT
 glutInit(&argc, argv);
 glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
 glutInitWindowSize(800,600);
 glutCreateWindow("Shalat");
 glClearColor(1.0,1.0,1.0,1.0);
 glutDisplayFunc(Display);
 glutReshapeFunc(Reshape); //mengatur kembali bentuk objek
 	init();
 glutMainLoop();

 return 0; 
}

 

Previewnya adalah seperti ini

SOIL_openGL

nah seperti itu, semoga sukses 😀

Referensi :

http://open.gl/textures

Leave a Comment