Home > Mata Kuliah > Grafika dan Komputasi Visual > Belajar Membuat Texture dengan SOIL

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 Reply

Your email address will not be published. Required fields are marked *