Rabu, 07 Juni 2017

Program Teknik Masking Dengan Code Block


Selamat Siang rekan-rekan sekalian...kembali ogut mau membagikan sedikit ilmu yang bermanfaat untuk prmrograman game 2D.

Program akan menampilkan tampilan seperti gambar di bawah ini. Perhatikan burung biru yang ditampilkan dengan teknik masking dan yang ditampilkan tanpa teknik masking.


Burung biru yang di tampilkan dengan teknik masking akan terlihat tanpa kotak, teknik seperti ini yang digunakan untuk menampilkan objek-objek game 2D.

Penjelasan tentang teknik masking dapat rekan-rekan lihat pada link berikut ini. Karena ogut sudah pernah membahasnya dengan menggunakan Visual Studio.


Teknik masking menggunakan dua buah tekstur, yaitu tekstur image dan tekstur mask. Jika rekan-rekan masih bingung ogut sudah pernah menulis beberapa artikel yang berkaitan dengan teknik masking, semuanya dapat Anda lihat di Daftar Isi.

Untuk menamplkan burung tanpa masking source code seperti ini.

//burung tanpa masking
glBindTexture(GL_TEXTURE_2D, texture_image);
glBegin(GL_POLYGON);
glTexCoord2f(0.0f, 0.0f);glVertex2d(-350.0d,-450.0d);
        glTexCoord2f(1.0f, 0.0f);glVertex2d(150.0d,-450.0d);
        glTexCoord2f(1.0f, 1.0f);glVertex2d(150.0d,-100.0d);
        glTexCoord2f(0.0f, 1.0f);glVertex2d(-350.0d,-100.0d);
glEnd();

Dan untuk menampilkan burung dengan masking source code seperti ini.

//burung dengan masking
glEnable(GL_BLEND);
glBlendFunc(GL_DST_COLOR, GL_ZERO);
glBindTexture(GL_TEXTURE_2D, texture_mask);
glBegin(GL_POLYGON);
        glTexCoord2f(0.0f, 0.0f);glVertex2d(-100.0d,150.0d);
        glTexCoord2f(1.0f, 0.0f);glVertex2d(350.0d,150.0d);
        glTexCoord2f(1.0f, 1.0f);glVertex2d(350.0d,400.0d);
        glTexCoord2f(0.0f, 1.0f);glVertex2d(-100.0d,400.0d);
glEnd();

glBlendFunc(GL_ONE, GL_ONE);
glBindTexture(GL_TEXTURE_2D, texture_image);
glBegin(GL_POLYGON);
        glTexCoord2f(0.0f, 0.0f);glVertex2d(-100.0d,150.0d);
        glTexCoord2f(1.0f, 0.0f);glVertex2d(350.0d,150.0d);
        glTexCoord2f(1.0f, 1.0f);glVertex2d(350.0d,400.0d);
        glTexCoord2f(0.0f, 1.0f);glVertex2d(-100.0d,400.0d);
glEnd();
glDisable(GL_BLEND);

Mudah ya, tidak sulit.

Selamat Belajar rekan-rekan


Heriady




-----------------------------------------------------------------------
-----------------------------------------------------------------------

Tidak ada komentar:

Posting Komentar