PENCAHAYAAN
“Makalah Ini Disusun Untuk Memenuhi Salah Satu Tugas Mata Kuliah Praktikum
Grafika Komputer”
Dosen Pengampu : Sri Rahayu, S.T., M.Kom.
Disusun Oleh :
Gea Davids Khalik
2206013
TEKNIK INFORMATIKA
INSTITUT TEKNOLOGI GARUT
2023
KATA PENGANTAR
Puji dan syukur saya panjatkan kehadirat Allah SWT. atas berkat dan
rahmat-NYA sehingga penulis dapat menyelesaikan Makalah Praktikum Grafik
Komputer yang berjudul “Pencahayaan” tepat pada waktunya.
Tidak lupa, saya mengucapkan terima kasih kepada Ibu Sri Rahayu, S.T.,
M.Kom yang telah mengajar mata kuliah Praktikum Grafik Komputer, Dan saya
mengucapkan terima kasih juga kepada Instruktur dan asisten Praktikum Grafika
Komputer yang telah membimbing.
Penulis
1
DAFTAR ISI
2
BAB I
PENDAHULUAN
Model pencahayaan Dalam OpenGL, cahaya dalam sebuah adegan berasal dari
beberapa sumber cahaya yang dapat secara individual diaktifkan dan
dinonaktifkan. Beberapa cahaya datang dari arah atau posisi tertentu, dan
beberapa cahaya umumnya tersebar karena adanya suatu peristiwa. Sebagai
contoh, Ketika menghidupkan bola lampu dalam ruangan, sebagian besar berasal
dari cahaya bola lampu, tetapi beberapa cahaya datang setelah ada pantulan dari
dinding satu, dua, tiga, atau lebih. Cahaya yang memantul ini disebut ambient.
dan dapat diasumsikan begitu cahaya tersebar tidak ada cara untuk mengetahui
arah semula, tetapi hal ini akan menghilang jika suatu sumber cahaya dimatikan.
Akhirnya, mungkin ada cahaya ambient umum dalam adegan yang tidak berasal
dari sumber tertentu, seolah-olah telah tersebar beberapa kali sumber cahaya asli
dan tidak mungkin untuk menentukan.
Dalam model OpenGL, sumber cahaya hanya memiliki efek ketika ada
permukaan yang menyerap dan memantulkan cahaya. Setiap permukaan
diasumsikan terdiri dari bahan dengan berbagai sifat. Sebuah bahan bisa
memancarkan cahaya sendiri seperti lampu pada sebuah mobil atau mungkin
menyebarkan beberapa cahaya yang masuk ke segala penjuru, dan mungkin juga
memantulkan sebagian dari cahaya masuk dalam arah preferensial seperti cermin
atau permukaan mengilap.
3
Model pencahayaan OpenGL mempertimbangkan pencahayaan yang dibagi
menjadi empat komponen independen: memancarkan (emissi), ambient, diffuse,
dan specular. Semua empat komponen dihitung secara independen dan kemudian
ditambahkan secara Bersama-sama.
1.3 Tujuan
• Mahasiswa mampu mengetahui tentang tekstur
• Mahasiswa mampu mengetahui tentang obyek
• Mahasiswa mampu mengetahui tentang koordinat
4
BAB II
TINJAUAN PUSTAKA
Karena tekstur Direct3D adalah bitmap, bitmap apa pun dapat diterapkan ke
primitif Direct3D. Misalnya, aplikasi dapat membuat dan memanipulasi objek
yang tampaknya memiliki pola biji-bijian kayu di dalamnya. Rumput, kotoran,
dan batuan dapat diaplikasikan pada satu set primitif 3D yang membentuk bukit.
Hasilnya adalah sisi bukit yang tampak realistis. Anda juga dapat menggunakan
tekstual untuk menciptakan efek seperti tanda-tanda di sepanjang pinggir jalan,
strata batu di tebing, atau munculnya marmer di lantai. Selain itu, Direct3D
mendukung teknik tekstur yang lebih canggih seperti perpaduan tekstur dengan
atau tanpa pemetaan transparansi dan cahaya.
5
kesempurnaan. Sebuah tekstur maps yang diterapkan (d ipetakan) biasanya
dipakai untuk permukaan bentuk objek polygon, proses ini mirip dengan
menerapkan texture pada kertas berpola kotak putih yang polos.kegiatan texture
mapping untuk texture maps dapat didefinisikan sebagai sebuah metode untuk
menambahkan detail tekstur permukaan (bitmap atau raster image), atau warna
yang dihasilkan komputer grafis atau model 3D. Penerapannya pada grafis 3D
dirintis oleh Dr Edwin Catmull pada proyek Ph.D tesisnya tahun
6
Penting untuk dicatat bahwa dalam konteks grafika komputer, istilah "objek"
sering kali digunakan secara umum dan dapat merujuk pada berbagai entitas
visual, termasuk objek-objek 2D dan 3D. Objek-objek ini dapat mewakili objek
dunia nyata, seperti mobil atau pohon, atau objek-objek abstrak yang dibuat untuk
tujuan artistik atau ilustratif.
• Koordinat Nyata
• Koordinat Sistem
• Koordinat Tampilan atau Layar
a. Koordinat Nyata
Yang dimaksud dengan koordinat nyata adalah koordinat yang pada saat
itu object bersangkutan berada. Dalam bahasa Inggris disebut real world
coordinate untuk menghindari kerancuan dengan istilah world coordinate yang
digunakan untuk GLOBUS
b. Sistem Koordinat
Sistem Koordinat adalah suatu yang abstrak dan biasanya digunakan untuk
perhitungan data yang hasilnya perlu ditampilkan kembali pada layar atau di
atas kertas. Sistem koordinat sealau dikaitkan dengan dimensi, dimana
0 D , dimensi ke 0
1 D, dimensi ke 1
2 D, dimensi ke 2
3 D, dimensi ke 3
4 D, dimensi ke 4
5 D, dimensi ke 5, dan seterusnya.
7
c. Sistem koordinat dua dimensi
Sistem koordinat Kartesius dalam dua dimensi umumnya didefinisikan
dengan dua sumbu yang saling bertegak lurus antar satu dengan yang lain,
yang keduanya terletak pada satu bidang (bidang xy). Sumbu horizontal diberi
label x, dan sumbu vertical diberi label y. Pada sistem koordinat tiga dimensi,
ditambahkan sumbu yang lain yang sering diberi label z. Sumbu-sumbu
tersebut ortogonal antar satu dengan yang lain. (Satu sumbu dengan sumbu
lain bertegak lurus.)
Titik pertemuan antara kedua sumbu, titik asal, umumnya diberi label 0.
Setiap sumbu juga mempunyai besaran panjang unit, dan setiap panjang
tersebut diberi tanda dan ini membentuk semacam grid. Untuk
mendeskripsikan suatu titik tertentu dalam sistem koordinat dua dimensi, nilai
x ditulis (absis), lalu diikuti dengan nilai y (ordinat). Dengan demikian, format
yang dipakai selalu (x,y) dan urutannya tidak dibalik-balik.
d. Koordinat Layar
Koordinat layar atau screen coordinat adalah koordinat yang dipakai untuk
mengatur penampilan suatu objek pada layar, baik itu layar komputer maupun
layar lainnya. Umumnya layar 2 dimensi mempunyai 2 sumbu koordinat, yaitu
sumbu x dan y. Namun demikian ada yang berusaha untuk membuat layar 3
dimensi, walau kini masih dalam tahap penelitian dan belum ditemukan
dipasaran bebas (Ingat istilah Hologram)
Perbedaan koordinat layar dengan sistem koordinat yang lain adalah posisi
nilai 0 untuk sumbu x dan Y. Ada yang menempatkan sumbu (0,0) pada kiri
atas dan ada juga yang meletakkan pada kiri bawah.
8
BAB III
HASIL DAN PEMBAHASAN
3.1 Source Code Program
#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>
#define stripeImageWidth 32
GLubyte stripeImage[4*stripeImageWidth];
#ifdef GL_VERSION_1_1
static GLuint texName;
#endif
void makeStripeImage(void)
{
int j;
for (j = 0; j < stripeImageWidth; j++) {
stripeImage[4*j] = (GLubyte) ((j<=4) ? 255 : 0);
stripeImage[4*j+1] = (GLubyte) ((j>4) ? 255 : 0);
//stripeImage[4*j+2] = (GLubyte) 0;
//stripeImage[4*j+3] = (GLubyte) 100;
}
}
/* pengaturan koordinat texture */
static GLfloat xequalzero[] = {1.0, 0.0, 0.0, 0.0};
static GLfloat slanted[] = {1.0, 1.0, 1.0, 0.0};
static GLfloat *currentCoeff;
static GLenum currentPlane;
static GLint currentGenMode;
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glEnable(GL_DEPTH_TEST);
glShadeModel(GL_SMOOTH);
makeStripeImage();
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
#ifdef GL_VERSION_1_1 glGenTextures(1,&texName);
glBindTexture(GL_TEXTURE_1D, texName);
#endif
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S,
GL_REPEAT);
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER,
GL_LINEAR);
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER,
GL_LINEAR);
#ifdef GL_VERSION_1_1
9
glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA, stripeImageWidth, 0,
GL_RGBA, GL_UNSIGNED_BYTE, stripeImage);
#else
glTexImage1D(GL_TEXTURE_1D, 0, 4, stripeImageWidth, 0,
GL_RGBA, GL_UNSIGNED_BYTE, stripeImage);
#endif
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE,
GL_MODULATE);
currentCoeff = xequalzero;
currentGenMode = GL_OBJECT_LINEAR;
currentPlane = GL_OBJECT_PLANE;
glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, currentGenMode);
glTexGenfv(GL_S, currentPlane, currentCoeff);
glEnable(GL_TEXTURE_GEN_S);
glEnable(GL_TEXTURE_1D);
glEnable(GL_CULL_FACE);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
glFrontFace(GL_CW);
glCullFace(GL_BACK);
glMaterialf (GL_FRONT, GL_SHININESS, 64.0);
}
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix ();
glRotatef(45.0, 0.0, 0.0, 1.0);
#ifdef GL_VERSION_1_1
glBindTexture(GL_TEXTURE_1D, texName);
#endif
glutSolidTeapot(2.0);
glPopMatrix ();
glFlush();
}
void reshape(int w, int h)
{
glViewport(0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if (w <= h)
glOrtho (-3.5, 3.5, -3.5*(GLfloat)h/(GLfloat)w,
3.5*(GLfloat)h/(GLfloat)w, -3.5, 3.5);
else
glOrtho (-3.5*(GLfloat)w/(GLfloat)h,
3.5*(GLfloat)w/(GLfloat)h, -3.5, 3.5, -3.5, 3.5);
10
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void keyboard (unsigned char key, int x, int y)
{
switch (key) {
case 'e':
case 'E':
currentGenMode = GL_EYE_LINEAR;
currentPlane = GL_EYE_PLANE;
11
glutInitWindowPosition(100, 100);
glutCreateWindow ("2206013_Gea Davids Khalik");
init ();
glutDisplayFunc
(display);
glutReshapeFunc(reshape);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}
Output :
12
BAB IV
PENUTUP
4.1 Kesimpulan
a. Texture (Tekstur)
• Texture dalam grafika komputer mengacu pada unsur visual yang
digunakan untuk menggambarkan penampilan permukaan objek 3D.
• Texture memberikan detail, pola, dan karakteristik visual tambahan
pada objek atau permukaan, meningkatkan realisme visual.
• Texture dapat berupa gambar dua dimensi (bitmap) yang diterapkan
pada permukaan objek 3D, memberikan informasi tambahan seperti
warna, pola, dan ketebalan.
b. Objek
• Objek dalam grafika komputer merujuk pada entitas atau elemen yang
digambarkan dalam ruang dua atau tiga dimensi.
• Objek dapat bervariasi dari yang sederhana seperti titik atau garis
hingga yang kompleks seperti poligon atau model 3D.
• Setiap objek memiliki atribut dan karakteristiknya sendiri, dan dapat
dimanipulasi untuk membuat gambar-gambar yang kompleks dan
dinamis.
c. Koordinat
• Koordinat adalah sistem tata keseimbangan yang membantu dalam
menentukan posisi suatu objek atau titik dalam konteks geometri.
• Terdapat tiga macam sistem koordinat: Koordinat Nyata (real world
coordinate), Sistem Koordinat (abstrak untuk perhitungan data), dan
Koordinat Layar (digunakan untuk menampilkan objek pada layar).
• Sistem koordinat dua dimensi umumnya menggunakan sumbu x dan y,
sementara sistem koordinat tiga dimensi menambahkan sumbu z.
• Titik pada sistem koordinat dinyatakan dalam format (x, y) atau (x, y,
z), dengan nilai yang mewakili posisi objek.
13
DAFTAR PUSTAKA
14