2 009
GRAFIKA KOMPUTER SHADING & OPTICAL VIEW
Disusun Oleh : Mikhail Layadi
:
52006033
Arnold Boksman
:
52007004
Febryssa R Yonathan
:
52007019
Hendry
52007025
Iwan Kurniawan B
:
:
52007032
STMIK KHARISMA MAKASSAR
Kata Pengantar Pertama-tama kami ingin mengucapkan terima kasih kepada Tuhan Yang Maha Esa, karena hanya dengan bimbingannya maka kami dapat segera menyeleisaikan makalah ini dengan judul : “Shading dan Optical View”. Tugas ini merupakan tugas wajib untuk diselesaikan, demi kelancaran pembelajaran tentang grafika komputer. Grafika komputer pada dasarnya adalah suatu ilmu bidang komputer yang mempelajari cara-cara meningkatkan dan memudahkan komunikasi antara manusia dengan mesin (komputer) dengan membangkitkan, menyimpan, dan memanipulasi gambar model suatu objek menggunakan
komputer.
Grafika
komputer
memungkinkan
kita
untuk
berkomunikasi lewat gambar-gambar, bagan-bagan dan diagram-diagram. Adapun tujuan akhir dari tugas ini adalah agar pembaca dapat mempelajari cara dalam memberikan pewarnaan yang baik pada sebuah objek. Kami menyadari masih banyak kekurangan pada makalah ini, maka dari itu kami meminta bantuan dari pembaca sekalian untuk bisa mengkritik makalah untuk pengembangan yang lebih baik lagi. Akhirnya, kami mengucapkan terima kasih pada semua pihak yang telah membantu kami menyeleisaikan makalah ini.
Makassar, April 2009
KELOMPOK VI
ii
Daftar Isi Kata Pengantar ............................................................................... ....
i
Daftar Isi ............................................................................. .................
ii
Bab I. Pendahuluan ........................................................... ..................
1
Bab II. Pembahasan Normal Vektor.................................................................. ...... Unit Vektor................................................................... .......... Optical Model........................................................................ . Diffuse scattering....................................................... ............ Specular Reflection................................. .............................. Ambient.......................................................... ....................... Lamberts’s Law....................................... .............................. Phong Model............................................... .......................... Shading.......................................................... ....................... Flat Shading................................................ .......................... Gouraud Shading..................................... .............................
3 3 4 5 5 6 7 7 8 9 10
Bab III. Kesimpulan................................................ ..............................
12
Daftar Pustaka............................................................................. .........
13
iii
Bab I. Pendahuluan Grafika komputer pada dasarnya adalah suatu bidang ilmu komputer yang mempelajari cara-cara untuk meningkatkan dan memudahkan komunikasi antara manusia dengan mesin (komputer) dengan jalan membangkitkan, menyimpan, dan memanipulasi gambar model suatu objek menggunakan komputer. Grafika komputer memungkinkan kita untuk berkomunikasi lewat gambar-gambar, bagan-bagan, dan diagram-diagram. Grafika komputer dikembangkan melalui suatu sistem operasi yang berbasis GUI (Graphical User Interface). Graphical User Interface (GUI), dalam hubungannya dengan sains komputer, adalah suatu antarmuka berbentuk tampilan yang memungkinkan seorang user untuk memilih perintah, menjalankan program, melihat serangkaian file dan memilih opsi lain dengan menunjukkan representasi gambar (icon) ataupun melalui sejumlah menu pada layar komputer. Beberapa kemajuan utama dalam computer grafik 3D: Flat shading : suatu teknik shades masing-masing polygon dari suatu objek berdasarkan pada polygon “normal” dan posisi serta intensitas sumber cahaya. Gouraud shading : ditemukan oleh Henri Gouraud pada tahun 1971 dengan teknik resource-conscious yang digunakan untuk menirukan shade dengan permukaan lembut dan penyisipan warna puncak antarpermukaan polygon. Texture mapping : suatu teknik untuk menirukan detail permukaan dengan pemetaan gambar (tekstur) menjadi polygons. Phong shading : ditemukan oleh Bui Tuong Phong; suatu teknik shading yang
lembut
penyisipan
yang
puncak
mendekati normal
pencahayaan
dari
polygon
curved-surface antarpermukaan;
dengan model
pencahayaan meliputi glossy reflection dengan suatu tingkatan permukaan yang halus. Bump mapping : ditemukan oleh Jim Blinn, suatu teknik normal-perturbation yang digunakan untuk menirukan permukaan yang tidak rata atau mengerut.
Ray Tracing : suatu metode berdasarkan pada prinsip fisik dari ilmu optic geometris yang bisa menirukan pantulan berulang dan transparan. Radiosity : suatu teknik untuk global illumination yang menggunakan teori perpindahan radiatif untuk menirukan iluminasi secara tidak langsung (yang dicerminkan). Sampai saat ini, kita hanya membahas grafik dua dimensi (grafik 2D). Pada kenyataannya, objek yang ingin ditampilkan pada layar tampilan harus bisa menunjukkan keadaaan objek sebenarnya. Dengan kata lain, kita harus berurusan dengan grafik tiga dimensi (grafik 3D). sebagai contoh, system perancangan terbantu computer (Computer Aided Design = CAD) memungkinkan pemakai untuk memanipulasi model komponen-komponen mesinm badan mesin, pesawat terbang, dan lain-lain, yang secara keseluruhan harus dinyatakan seperti apa yang akan terbentuk. Terapan-terapan grafik 3D berbeda dengan terapan-terapan grafik 2D, tidak hanya karena penambahan dimensi dari dua menjadi tiga, tetapi yang lebih utama adalah cara menampilkan suatu realita (realism) dari objek yang sebenarnya ke layar tampilan. Dalam program simulasi, misalnya, semakin tinggi derajat realita yang bisa disajikan, program simulasi tersebut menjadi lebih menarik. Penampilan citra yang realities dari objek 3D pada layar tampilan 2D menimbulkan beberapa persoalan yang harus ditangani. Beberapa persoalan yang segera terlihat, antara lain adalah bagaimana kedalaman dan cara memberikan warna pada objek agar kelihatan lebih menarik. Beberapa teknik telah dikembangkan untuk menjawab pertanyaan-pertanyaan di atas, dan beberapa di antaranya akan dijelaskan di bagian berikut.
Bab II. Pembahasan Normal Vektor Normal vektor merupakan vektor yang arahnya tegak lurus pada luasan (face). Normal vektor dapat diperoleh dari perkalian silang (cross-product) dari dua vektor yang berada pada face. Besar dan arah dari normal vektor tergantung pada hasil perkalian silangnya.
Unit Vektor Unit vector adalah vector yg besarnya satu satuan dan arahnya tergantung arah vector asalnya. Besar suatu vector dapat diperoleh dengan:
Agar vector v menjadi unit vector maka semua koefisien (vx,vy,vz) dibagi dengan |v|. Implementasi unit vector: vector3D_t unitVector (vector3D_t vec) { int i; float vec2=0.; float vecl,invvecl; for (i=0;i<3;i++) vec2+vec.v[i]*vec.v[i]; vec1=sqrt (vec2); if (vec1 !=0.) { invvec1=1./vec1; for (i=0;i<3;i++) vec.v[i]*=invvec1; } vec.v3=1.; return vec; }
Optical Model Optical model adalah model yang menggambarkan bagaimana vektorvektor yang berhubungan denga pencahayaan dinyatakan. Dalam optical model ini terdapat empat macam vector, yaitu: 1) Vector cahaya (light vector), yaitu vector yang menyatakan arah cahaya yang datang 2) Vector normal pada face 3) Vector pantulan (reflection vector), yaitu vector yang menyatakan arah pantulan cahaya setelah cahaya mengenai face. 4) Vector pandangan (view vector), yaitu vector yang menyatakan arah pandangan mata.
Dimana: Direction Vectors Macam-macam optical model: 1) Diffuse scattering
2) Specular reflection 3) Ambient 4) Lambert’s law 5) Phong model
Diffuse Scattering Difufuse scattering ini adalah suatu model optical yang paling sederhana dimana cahaya dari arah light vector disebarkan ke segala arah pada face secara merata.
Dimana : Id = ISKd MAX (COSα,0) Cos α = L·N Id : Intensity of the diffuse component Is : Intensity of the light source Kd: diffuse reflection coefficient
Specular Reflection Model specular reflection adalah model optic yang menyatakan bahwa cahaya yang mengenai face akan dipantulkan secara spherical searah vector refleksinya.
Model specular reflection dapat dinyatakan dengan: Isp = iskspMAX(cosnβ,0) Cosβ = R.V R = 2N(L·N)- L Isp : Intensity of the Specular reflection Is : Intensity of the light source Ksp: specular reflection coefficient n:constant from experiment (1-200) R = 2N(L·N) – L L·N = R·N, R = aL+ bN L·N = (aL+ Bn)· N b = (1 –a ) L·N R = aL+ { ( 1-a ) L·N} N R2 = 1, (L2 + 1, N2 = 1) then A = ±1
a = -1
Ambient Ambient
adalah
keadaan
dimana
cahaya
refleksi
mengalami
pengurangan tingkat kecerahan. Model ambient ini dapat dinyatakan dengan : Ia = Iska Ia = Intensity of the Ambient Reflection Is = Intensity of the Light Source Ksp = Ambient Reflection Coefficient
Lambert Law Lambert Law adalah model optic yang menggabungkan diffuse scattering dan ambient peristiwa secara bersama-sama sehingga diperoleh model seperti berikut : Cl = Cs {kd MAX(cos α ,0) + ka} cos α = L.N Cl = Reflection Color Cs = Surface Color
Phong Model Phong model adalah model optic yang lengkap , dimana kejadian diffuse scattering,specular reflection dan peristiwa ambient digabungkan menjadi satu model. Phong Model ini merupakan model standar yang digunakan untuk menyatakan optical view pada grafika komputer. Model Phong dinyatakan dengan : Cl = Cs{kd MAX(cos α ,0) + ka} + CwhitekspMAX(cosn β ,0) Cos α = L.N Cos β = R.V
R = 2N(L.N) – L Cl = Reflection Color Cs = Surface Color Cwhite = Specular Color (white)
Implementasi Phong Model color_t PhongModel(vector3D_t) Light,vector3D_t Normal vector3D_t view,color_t col) { Float kspe = 0.7; //Specular Reflection Coefficient Float kdif = 0.6; //Diffuse Reflection Coefficient Float kamb = 0.4 //Ambient Light Coefficient Float tmp,NL,RV; Color_t colwhite = {1,1,1); Vector3D_t ReflectionVector = (2.*(light*normal)*normal)-light; tmp = normal*light NL = funcPositive(tmp); Tmp = ReflectionVector*view; RV = funcPositive(tmp); Return Kdif*NL*col + kspe*power(RV,4)*colwhite + kamb*col; }
Pada implementasi phong model ini terlihat bahwa koefisien dari masingmasing keadaan, yaitu koefisien diffuse scattering, koefisien specular reflection dan koefisien ambient dinyatakan sebagai konstanta. Nilainya antara 0 sampai dengan 1, dan dapat diatur sesuai dengan histogram level cahaya yang diinginkan. Nilai-nilai ini sangat besar pengaruhnya pada hasil pencahayaan. Hasil dari optical view ini berupa satu warna atau satu tingkat kecerahan. Pada implementasi Phong Model diatas, efek warna paling terang adalah putih (1,1,1) sehingga bila vektor pandangan mata dan vektor refleksi jatuh pada pada vektor normal maka warna yang ditampilkan adalah putih.
Shading Dalam usaha mewarnai objek 3 dimensi dikenal 2 cara pewarnaan utama yaitu global illumination dan local illumination. Di dalam 2 cara tersebut terbagi lagi menjadi beberapa teknik pewarnaan. Global illumination merupakan cara pewarnaan objek 3 dimensi yang dipengaruhi oleh pantulan dari sinar yang dipancarkan sumber cahaya dalam jumlah yang tidak terbatas yang mengenai benda sehingga benda tersebut dapat terlihat oleh mata. Global illumination dibagi menjadi 2 yaitu:
•
Ray tracing Ray tracing merupakan cara pewarnaan dengan mengikutiarah sinar cahaya dari sumber cahaya sampai dengan mengenai suatu objek, dimana sinar cahaya tersebut akan berubah arah ketika mengenai objek yang transparan ataupun objek yang memancarkan cahaya.
•
Radiosity Radiosity
merupakan
cara
pewarnaan
untuk
mengatasi
indirect
illumination sehingga bagian tersebut biasanya terlihat hitam.
Local illumination/shading merupakan suatu cara menampilkan objek dengan cara mengatur warna pixel pada objek yang telah ditentukan dengan memperhitungkan efek-efek dari cahaya. Dengan adanya shading, objek dapat telihat lebih nyata daripada hanya ditampilkan dengan warna polos ataupun berupa kerangka saja/wireframe.
Berdasarkan cara pewarnaanya, shading terbagi menjadi 2 macam, yaitu: 1. Flat shading 2. Gouraud shading
Flat Shading Flat shading adalah salah satu teknik shading dimana satu face mempunyai warna yang sama, seperti terlihat pada gambar berikut : Implementasi FLAT SHADING If (normalVector.v[2]>0.) { normalVector = unitVector(normalVector); fillcol = PhongModel(lightVector,normalVector,viewVector,col); fillPolygon(p,bola.fc[i].numberofVertices,fillcol); }
Col adalah variable warna yang menyatakan warna dasar dari objek
Fillcol adalah warna hasil shading.
Gouraud Shading Satu face gradiasi warna yang memperhitungkan tingkat kecerahan setiap titik pada face tersebut. Dengan shading ini dihasilkan warna yang halus gradiasinya. Shading ini memerlukan vector normal pada setiap titiknya dan menggunakan fungsi gradatePolygon untuk menyatakan Gouraud Shading Implementasi Gouraud Shading For (i=0;i<sphere.numberofVertices;i++) { Vec[i] = point2Vector(sphere.pnt[i]); Vec[i] = mat*vec[i]; Nrmvec[i] = mat*sphere.normalVector[i]-ZeroVector; }
Teknik penggambaran objek 3D menggunakan Gouraud Shading adalah sebagai berikut : Setiap titik yang terdapat pada objek harus didefinisikan vektor normalnya terlebih dahulu Vektor normal setiap titik akan menyesuaikan arahnya berdasarkan matriks transformasi yang dikenakan pada titik.
Implementasi Gouraud Shading If (0.<normalzi) { For (j=0;j<sphere.fc[i].numberof Vertices;j++) { Buff[j] = vector2point2D(vecbuff[j]); normalVector = unitVector(nrmvecbuff[j]); colbuff[j] = PhongModel(lightVector,normalVector,viewVector,colCyan); } gradatePolygon(buff,sphere.fc[i].numberofVertices); }
Dimana : Jumlah warna pada setiap face sama dengan jumlah titik yang terdapat pada face tersebut.
Wireframe Bingkai Kawat (WireFrame) adalah model presentasi visual dari tiga dimensi fisik atau objek yang digunakan dalam komputer grafis 3D. Hal ini dibuat dengan menentukan setiap tepi dari objek fisik di mana dua matematis terus memenuhi permukaan halus, atau menghubungkan obyek dari unsur vektor menggunakan garis-garis lurus atau Curves.. Objek yang diproyeksikan ke atas layar komputer oleh menggambar garis di lokasi masing-masing ujung.
Menggunakan bingkai kawat model memungkinkan visualisasi dari desain yang struktur dari model 3D.Tradisional 2-dimensi pandangan dan gambar dapat dibuat oleh sesuai rotasi dari objek dan pilihan tersembunyi baris removal melalui pemotongan pesawat. Sejak wireframe renderings relatif mudah dan cepat untuk menghitung, mereka sering digunakan dalam kasus di mana tinggi layar Fram rate diperlukan (misalnya, ketika bekerja dengan khususnya kompleks model 3D, atau dalam waktu-nyata sistem yang model eksterior fenomena).Bila lebih detail grafis yang diinginkan, permukaan textures dapat ditambahkan secara otomatis setelah selesai awal rendering dari wireframe. Hal ini memungkinkan para desainer untuk segera meninjau perubahan atau memutar objek baru untuk dilihat dikehendaki tanpa penundaan lama yang terkait dengan lebih realistis rendering. Bingkai kawat di format juga cocok dan banyak digunakan dalam pemrograman alat jalur untuk DNC (Direct Numerical Control) mesin alat.
Wire Frame Menggunakan Tersembunyi Baris Removal
Rendering dari Wire Frame Kubus, Icosahedron, dan Perkiraan Sphere
Contoh Implementasi Wire-Frame Model wireframe wajah Model wireframe wajah yang didapat dari Candide [3] terdiri dari 113 titik tetapi hanya digunakan 18 titik saja yang ada di daerah alis (6 titik), mata (4 titik), hidung (4 titik), dan mulut (4 titik). Pengurangan jumlah litik ini dimaksudkan untuk mempermudah pelacakan karena wireframe yang asli terlalu kompleks sehingga jarak antar titik sangat kecil bahkan jika dilihat secara 2 dimensi ada titik yang bertumpuk. Ke-18 titik ini dianggap dapat mewakili pergerakan wajah secara keseluruhan dan merupakan fitur dalam pelacakan. Sedangkan wire frame yang asli 113 titik digunakan untuk menampilkan animasi dari estimasi pose hasil pelacakan pergerakan wajah. Pertama kali titik-titik dari wire frame wajah ini dimasukkan ke dalam variabel melaui void CCamCapDlg: : I n i t (). Prosedur ini melakukan semua inisialisasi yaitu: memasukkan titik wire frame ke variabel m_3Dpoints beserta link-nya, 18 titik fitur dimasukkan ke varibel m 3Dimp, nilai focal length untuk proyeksi, dan inisial matrik transformasi
Bab III. Kesimpulan Dari pembahasan tersebut, dapat di tarik kesimpulan : o
o o o
o o o o
o o
o o
Normal vektor merupakan vector yang arahnya tegak lurus pada luasan (face). Normal vektor dapat diperoleh dari perkalian silang (cross-product) dari dua vector yang berada pada face. Unit vector adalah vector yg besarnya satu satuan dan arahnya tergantung arah vector asalnya. Optical model adalah model yang menggambarkan bagaimana vektor-vektor yang berhubungan dengan pencahayaan dinyatakan. Diffuse scattering adalah suatu model optical yang paling sederhana dimana cahaya dari arah light vector disebarkan ke segala arah pada face secara merata. Specular reflection adalah model optic yang menyatakan bahwa cahaya yang mengenai face akan dipantulkan secara spherical searah vector refleksinya. Ambient adalah keadaan dimana cahaya refleksi mengalami pengurangan tingkat kecerahan. Lambert Law adalah model optic yang menggabungkan diffuse scattering dan peristiwa secara bersama-sama. Phong model adalah model optic yang lengkap, dimana kejadian diffuse scattering, specular reflection dan peristiwa ambient digabungkan menjadi satu model. Dalam usaha mewarnai objek 3 dimensi dikenal 2 cara pewarnaan utama yaitu global illumination dan local illumination . Flat shading merupakan cara pewarnaan yang paling mudah dari objek 3 dimensi karena flat shading hanya mempehitungkan posisi cahaya untuk menentukan warna objek, dalam satu polygon hanya ada 1 warna saja. Gouraud shading ini memerlukan vektor normal pada setiap titiknya dan menggunakan fungsi gradatePolygon WireFrame adalah model presentasi visual dari tiga dimensi fisik atau objek yang digunakan dalam komputer grafis 3D.
Daftar Pustaka Irawan. P. B, Dipl Informatika. 2003. Grafika Komputer dengan C. Yogyakarta: Penerbit Andi http://old.masputih.com/papervision3d-primitives-wireframe-materials. 06 April 2009. Papervision3D: Primitives and Wireframe http://digilib.petra.ac.id 06 April 2009.