Kelompok Alan Turing Kom A
1. 201401032 - Al Imamul Luthfi
2. 201401035 - Andrew Benedictus Jamesie
3. 201401038 - Ariel Matius Surbakti
4. 201401040 - Avin Chaili Salim
Anda ditugaskan untuk membangun sebuah aplikasi komputer grafis menggunakan GLFW dan GLEW yang menampilkan sebuah octagon (polygon sisi 8). Adapun spesifikasi gambar yang harus ditampilkan adalah sebagai berikut,
- Setiap sisi octagon memiliki panjang yang sama. Octagon dibangun dengan menggunakan 8 buah segitiga. Data vertex harus disusun ke dalam sebuah vertex buffer dan index buffer. Data vertex tidak boleh berulang. Definisi posisi vertex (nilai x dan y dari setiap vertex) harus menggunakan sebuah rumus dan tidak boleh hard-coded (30 poin)
- Setiap segitiga pada octagon memiliki warna yang berbeda. Gunakan fragment shader untuk melakukan pewarnaan segitiga ini! Tambahkan animasi di mana warna setiap segitiga akan berubah setiap detik! (30 poin)
- Tambahkan input-handler pada program Anda yang dapat mengubah ukuran octagon (perbesar dan perkecil) dan dapat mengubah warna octagon! Pemilihan warna dilakukan secara acak! (30 poin)
Anda juga ditugaskan untuk membuat satu buah video tutorial yang menjelaskan aplikasi dan kode yang Anda bangun dengan durasi minimal 5 menit dan maksimal 7 menit. Video Anda harus memiliki spesifikasi sebagai berikut,
- Video harus menampilkan logo USU/Fasilkom-TI di awal Video;
- Video harus menampilkan nama dan NIM setiap anggota kelompok;
- Video harus menampilkan orang yang sedang menjelaskan;
- Suara yang dihasilkan oleh orang harus jelas;
- Ukuran video minimal adalah 720p (1280 x 720) dan seluruh teks (presentasi, kode) harus dapat terbaca dengan jelas.
Unggah project Anda (yang dapat dijalankan pada Visual Studio) pada GitHub dan lampirkan link GitHub pada deskripsi video Anda. (10 poin)
Metode dan Batas Waktu Pengumpulan Video diunggah ke Youtube. Link dikumpulkan via e-Learning dengan menggunakan activity yang telah ditentukan. Adapun batas waktu pengumpulan adalah Selasa, 12 April 2022 pukul 23.59 WIB.
UTS_ColorOctagon
- Project ini berupa program visual untuk menampilkan bangun datar segi delapan atau poligon segi delapan (octagon) dengan warna acak (random) yang berbeda-beda untuk setiap bagiannya yang dibentuk dari delapan (8) segitiga. Bangun datar octagon ini bisa berubah warna setiap detik dan bisa juga mengubah warnanya secara langsung dengan menekan tombol
C
di keyboard. Bangun data octagon ini juga bisa diubah ukurannya dengan menekan tombolpanah kiri (←)
untuk memperkecil ukurannya, dan tombolpanah kanan (→)
untuk memperbesar ukurannya.- Folder ini merupakan project/solution Console Application Visual Studio, sehingga bisa di-compile dan dijalankan dengan menggunakan Microsoft Visual Studio.
- Dalam folder ini terdapat file Program
.sln
yang dapat dibuka dengan menggunakan Visual Studio.- Sedangkan jika hanya ingin melihat source code-nya akan dijelaskan di bawah.
- UTS_ColorOctagon.cpp
Ini adalah file utama dari project/solution ini. Dalam file ini dilakukan pembuatan window untuk menampilkan gambar bangun datar octagon, perintah untuk mengganti warna dan ukuran, perintah untuk melakukan penggambaran dan pewarnaan bangun datar octagon denganvertices vertexBuffer
danindexArr indexBuffer
, serta melakukan link dan bind dengan filevertex.vert
danfragment.frag
untuk melakukan render shader. - Util.h
Ini adalah file untuk menghubungkan file utamaUTS_ColorOctagon.cpp
dengan file vertex dan fragment, yaituvertex.vert
danfragment.frag
. File ini juga berfungsi untuk melakukan debugging yang akan ditampilkan pada console/terminal pada saat menjalankan (run) program. - vertex.vert
Ini adalah file untuk menentukan penggambaran posisi darivertices
danindexBuffer
yang akan dihubungkan dengan variabel uniformsize
untuk melakukan pengubahan ukuran gambar bangun datar octagon. Serta menentukan warnacolor
yang diambil darivColor
dengan pointer location 1, sedangkanvPos
dengan pointer location 0. - fragment.frag
Ini adalah file untuk menentukan pewarnaan fragment color, yaitufragColor
yang diambil daricolor
milikvertex.vert
untuk menghasilkan warna yang acak atau random.