Tugas Softskill
BAB II
KONSEP DAN TEORI PADA SHADING MODELLING
Shading mengacu pada penggambaran kedalaman suatu objek dalam model 3D atau gambaran dengan mengubah-ubah tingkat dari kegelapan suatu object(darkness).
Menggambar Shading merupakan suatu proses yg dipakai dalam menggambar dengan tingkat darkness tertentu pada sebuah kertas dengan menggunakan media yg lebih padat atau menampilkan bayangan yg lebih gelap untuk area yg lebih gelap dan menggunakan media yg tidak terlalu padat atau menampilkan bayangan yg lebih jelas untuk area yg lebih terang. Ada banyak sekali macam teknik shading, contohnya cross hatching dimana garis-garis tegak lurus dengan jarak satu sama lain (kedekatan) yg tidak sama-beda digambar pada pola grid untuk membentuk bayangan area. Semakin erat garis-garis tersebut, semakin gelap area yg muncul. Begitu pula sebaliknya, semakin jauh garis-garis tersebut, semakin jelas area yg muncul.
Pola-pola yg jelas (misalnya objek yg mempunyai area jelas dan area berbayang) Bakal sangat membantu dalam pembuatan delusi kedalaman pada kertas dan layar komputer.
Komputer grafis
Pada komputer grafis, shading mengacu pada proses mengubah warna menurut sudut terhadap cahaya dan jarak dari cahaya untuk membuat efek photorealistic. Shading dilakukan selama proses penggambaran.
Sudut terhadap sumber cahaya
Shading mengubah warna tampilan dalam model 3D menurut sudut permukaan terhadap cahaya matahari atau sumber cahaya lainnya.
Gambar pertama di bawah ini memperlihatkan permukaan-permukaan kotak yg digambar dimana semuanya mempunyai warna yg sama. Garis tepi telah digambar sehingga memudahkan gambar dilihat dan dibedakan.
Gambar kedua merupakan model yg sama, namun tidak mempunyai garis tepi. Sangat sulit membedakan permukaan kotak yg satu dengan yg lainnya.
Gambar ketiga mempunyai shading dimana membuat gambar menjadi lebih realistis dan lebih Mudah dilihat serta dibedakan.
Sumber cahaya
Ada banyak sekali jenis cahaya:
• Ambient light – Ambient light menyinari semua objek dalam suatu scene seCaranya merata, membuat objek menjadi jelas tanpa menambahkan bayangan.
• Directional light – Directional light menyinari semua objek seCaranya merata dari suatu arah tertentu. Ia bagaikan suatu area jelas dengan ukuran dan jarak yg tidak terbatas dari scene. Ada bayangan, tetapi itu bukan merupakan distance falloff.
• Point light – Point light berasal dari satu titik dan menyebar dalam banyak sekali arah.
• Spotlight – Spotlight berasal dari satu titik dan menyebar mengikuti arah kerucut.
• Area light – Area light berasal dari satu bidang datar dan menyinari semua objek dalam arah tertentu yg berasal dari bidang datar tersebut.
• Volume light – Volume light merupakan suatu ruang tertutup yg menyinari objek dalam ruang tersebut.
Shading diinterpolasikan menurut bagaimana sudut dari sumber cahaya mencapai objek dalam suatu scene. Tentu saja sumber-sumber cahaya tersebut mungkin dan seringkali dikombinasikan dalam sebuah scene. Pelukis atau ilustrator kemudian menginterpolasikan bagaimana cahaya-cahaya ini dikombinasikan dan memproduksi gambar 2D yg Bakal ditampilkan di layar.
Distance fall off
SeCaranya teoritis, dua permukaan paralel disinari jumlah cahaya yg sama dari sumber cahaya yg jauh, mirip matahari. Walaupun permukaan yg satu jauh, mata kita melihat permukaan tersebut lebih banyak di ruang yg sama sehingga penyinarannya tampak sama.
Perhatikan gambar pertama dimana warna pada permukaan depan dari kedua kotak benar-benar sama. Tampaknya ada sedikit perbedaan Saat kedua permukaan tersebut bertemu, tetapi ini merupakan delusi optikal yg dikarenakan oleh garis tepi vertikal di bawah dimana kedua permukaan ini bertemu.
Perhatikan gambar kedua dimana permukaan kotak tampak lebih jelas pada kepingan depan dan tampak lebih gelap pada kepingan belakang. Selain itu, permukaan lantai juga tampak semakin gelap seiring makin jauhnya jarak.
Efek distance falloff membuat gambar tampak lebih realistis tanpa Musti menambahkan cahaya komplemen untuk menyebabkan efek yg sama. Distance falloff sanggup dihitung dalam beberapa Caranya:
• Tidak ada
• Linier – Untuk setiap unit x jarak suatu titik dari sumber cahaya, jumlah cahaya yg diterima ialah unit x dikurangi bright.
• Kuadratik – Ini memperlihatkan bagaimana cahaya kira-kira bekerja di kehidupan nyata. Suatu titik yg dua kali jauhnya dari sumber cahaya dibandingkan titik lainnya Bakal mendapatkan cahaya empat kali lebih sedikit.
• Faktor n – Suatu titik yg jaraknya sebesar unit x dari suatu sumber cahaya Bakal mendapatkan cahaya sebesar 1/xn.
• Fungsi matematis lainnya juga sanggup digunakan.
Flat vs smooth shading
Flat shading merupakan teknik pencahayaan yg dipakai dalam komputer grafis 3D. Ia membentuk bayangan setiap polygon dari suatu objek menurut sudut antara permukaan normal polygon dan arah dari sumber cahaya, warna-warna respective, dan intensitas sumber cahaya. Ini dipakai dalam pembuatan gambar dengan kecepatan tinggi dimana menggunakan teknik-teknik shading yg lebih sulit dan seCaranya perhitungan lebih mahal. Bakal tetapi, di selesai masa ke-20, kartu grafis yg terjangkau mengatakan smooth shading yg sanggup dipakai dalam proses penggambaran cepat, membuat flat shading tidak dibutuhkan lagi.
Kekurangan dari flat shading ialah ia mengatakan tampilan model yg low-polygon. Terkadang tampilan ini sanggup menguntungkan juga, contohnya dalam membuat model objek berbentuk kotak. Pelukis terkadang menggunakan flat shading untuk melihat polygon dari model padat yg mereka ciptakan. Teknik-teknik pencahayaan dan shading lanjutan dan lebih realistis mencakup Gourad shading dan Phong shading.
Model Shading
Model shading memilih bagaimana suatu permukaan objek muncul dalam keadaan pencahayaan yg tidak sama-beda. Beberapa model matematis sanggup dipakai untuk menghitung shading. Setiap model shading memproses korelasi dari permukaan normal terhadap sumber cahaya untuk membuat efek shading tertentu.
Phong
menggunakan warna-warna ambient, diffuse, dan specular. Model shading ini membaca orientasi permukaan normal dan menginterpolasikannya untuk membuat tampilan smooth shading. Ia juga memproses korelasi antara normal, cahaya, dan sudut pandang kamera untuk membuat specular highlight.
Hasilnya ialah suatu objek dengan bayangan smooth, permukaan area yg disinari diffuse dan ambient, serta suatu specular highlight sehingga objek tampak bersinar mirip bola biliar atau bola plastik. Pemantulan, transparansi, refraksi, dan tekstur sanggup diterapkan pada objek yg menggunakan Phongshader.
Lambert
menggunakan warna-warna ambient dan diffuse untuk membuat permukaan matte tanpa specular highlight. Ia menginterpolasikan normal dari permukaan segitiga yg berdampingan sehingga shading berubah seCaranya progresif, membuat suatu permukaan matte.
Hasilnya ialah suatu objek dengan smooth shading, mirip telur atau bola ping-pong. Pemantulan, transparansi, refraksi, dan tekstur sanggup diterapkan pada objek yg menggunakan Lambert shader.
Blinn
menggunakan warna-warna diffuse, ambient, dan specular, serta refractive index untuk menghitung specular highlight. Model shading ini identik dengan model shading Phong, kecuali bentuk specular highlight-nya merefleksikan pencahayaan lebih akurat Saat ada sudut tinggi antara kamera dan cahaya.
Model shading ini berkhasiat untuk tepian yg garang atau tajam dan untuk mensimulasikan permukaan logam. Specular highlight-nya tampak lebih jelas dibandingkan model Phong. Pemantulan, transparansi, refraksi, dan tekstur sanggup diterapkan pada objek yg menggunakan Blinnshader.
Cook-Torrance
menggunakan warna-warna diffuse, ambient, dan specular, serta refractive index untuk menghitung specular highlight. Ia membaca orientasi permukaan normal dan menginterpolasikannya untuk membuat tampilan smooth shading. Ia juga memproses korelasi antara normal, cahaya, dan sudut pandang kamera untuk membuat specular highlight.
Model shading ini memproduksi hasil yg berada diantara model shading Blinn dan Lambert, serta berkhasiat untuk mensimulasikan objek yg lembut dan reflektif mirip kulit. Pemantulan, transparansi, refraksi, dan tekstur sanggup diterapkan pada objek yg menggunakan Cook-Torrance shader.
Karena model shading ini lebih kompleks untuk dihitung, ia memakan waktu lebih usang dalam pelukisan daripada model shading lainnya.
// Copyright (c) 2007 PIXAR. All rights reserved. This kegiatan or
// documentation contains proprietary confidential information and trade
// secrets of PIXAR. Reverse engineering of object code is prohibited.
// Use of copyright notice is precautionary and does not imply
// publication.
//
// RESTRICTED RIGHTS NOTICE
//
// Use, duplication, or disclosure by the Government is subject to the
// following restrictions: For civilian agencies, subparagraphs (a) through
// (d) of the Commercial Computer Software--Restricted Rights clause at
// 52.227-19 of the FAR; and, for units of the Department of Defense, DoD
// Supplement to the FAR, clause 52.227-7013 (c)(1)(ii), Rights in
// Technical Data and Computer Software.
//
// Pixar Animation Studios
// 1200 Park Avenue
// Emeryville, CA 94608
//
//------------------------------------------------------------------------------------------------------//
//------------------------------------------------------------------------------------------------------//
// SCRIPT: CookTorrance.sl
// AUTHOR: Scott Eaton
// DATE: July 3, 2007
//
// DESCRIPTION: A simple implementation of the Cook-Torrance
// shading model describe in:
// A Reflectance Model for Computer Graphics
// R. L. Cook, K. E. Torrance, ACM Transactions on Graphics 1982
//
//------------------------------------------------------------------------------------------------------//
//------------------------------------------------------------------------------------------------------//
surfaceCookTorrance(
floatKa = 1;
float Ks = .8;
floatKd = .8;
float IOR = 1.3;
float roughness = .2;
color opacity = 1;
colorspecularColor = 1;
colordiffuseColor = (.6, .6, .6);
floatgaussConstant = 100;
){
//the things we need:
// normalized normal and vector to eye
normalNn = normalize(N);
vectorVn = normalize(-I);
float F, Ktransmit;
float m = roughness;
fresnel( normalize(I), Nn, 1/IOR, F, Ktransmit);
color cook = 0;
floatNdotV = Nn.Vn;
illuminance( P, Nn, PI/2 ){
//half angle vector
vector Ln = normalize(L);
vector H = normalize(Vn+Ln);
floatNdotH = Nn.H;
floatNdotL = Nn.Ln;
floatVdotH = Vn.H;
float D;
float alpha = acos(NdotH);
//microfacet distribution
D = gaussConstant*exp(-(alpha*alpha)/(m*m));
//geometric attenuation factor
float G = min(1, min((2*NdotH*NdotV/VdotH), (2*NdotH*NdotL/VdotH)));
//sum contributions
cook += Cl*(F*D*G)/(PI*NdotV);
}
cook = cook/PI;
Oi = opacity;
Ci = (Kd*diffuseColor*diffuse(Nn)+Ks*specularColor*cook) * Oi;
}
Strauss
Hanya menggunakan warna-warna diffuse untuk mensimulasikan suatu permukaan logam. Surface’s specular dikaitkan dengan parameter smoothness dan “metalness” yg mengontrol warna-warna diffuse menurut specular ratio mirip pemantulan dan highlight.
Pemantulan, transparansi, refraksi, dan tekstur sanggup diterapkan pada objek yg menggunakan Strauss shader.
Anisotropic
Terkadang disebut juga ward. Model shading ini mensimulasikan permukaan glossy dengan menggunakan warna-warna ambient, diffuse, dan glossy. Untuk membuat efek “digosok” mirip aluminium yg diamplas, sanggup menggunakan orientasi specular color menurut orientasi permukaan objek. Specular dihitung menggunakan koordinat UV.
Pemantulan, transparansi, refraksi, dan tekstur sanggup diterapkan pada objek yg menggunakan anisotropic shader.
Constant
Hanya menggunakan warna-warna diffuse. Ia mengabaikan orientasi permukaan normal. Semua permukaan segitiga objek dianggap mempunyai orientasi yg sama dan mempunyai jarak yg sama dari cahaya.
Ia menghasilkan suatu objek yg permukaannya tidak ada shading, tampak mirip suatu potongan kertas. Ini berkhasiat Jika kita ingin menambahkan static blur pada suatu objek sehingga tidak ada cahaya specular atau ambient. Ia juga mendukung tekstur alasannya ialah tidak ada atribut yg mengganggu definisi tekstur.
Model shading Blinn–Phong (disebut juga model pemantulan Blinn–Phong atau model pemantulan Phong termodifikasi) merupakan suatu modifikasi dari model pemantulan Phong yg dikembangkan oleh Jim Blinn.
Blinn-Phong merupakan model shading default yg dipakai di OpenGL dan Direct3D fixed-function pipeline (sebelum Direct 3D 10 dan OpenGL 3.1), serta dipakai pada setiap vertex selagi ia melewati pipa grafis; nilai piksel antara diantara vertice diinterpolasikan oleh Gouraud shading by default, daripada menggunakan Phong shading yg lebih mahal.
Dalam Phong shading, seCaranya kontinu Musti menghitung ulang produk skalar diantara viewer (V) dan sinar dari sumber cahaya (L) reflected (R) pada suatu permukaan.
Jika kita menghitung halfway vector antara vector viewer dan sumber cahaya,
Kita sanggup Mengubah dengan dimana ialah permukaan normal yg telah dinormalisasikan. Pada persamaan di atas, dan ialah vector yg telah dinormalisasikan, dan ialah solusi terhadap persamaan dimana ialah matriks Householder yg merefleksikan suatu titik di hyperplane yg mempunyai origin dan mempunyai normal.
Produk dot ini merepresentasikan cosinus dari suatu sudut yg merupakan setengah dari sudut yg direpresentasikan oleh produk dot Phong Jika V, L, N, dan R semuanya berada di bidang datar yg sama. Relasi antara sudut-sudut tersebut diperkirakan benar Jika vektor-vektor tidak berada di bidang datar yg sama, terutama Saat sudut-sudutnya kecil. Oleh lantaran itu, sudut antara N dan H terkadang disebut halfway angle.
Dengan pertimbangan bahwa sudut antara halfway vector dan permukaan normal kemungkinan lebih kecil daripada sudut antara R dan V yg dipakai dalam model Phong (kecuali permukaan ditampilkan dari sudut yg sangat curam atau bersudut besar) dan lantaran Phong menggunakan eksponen ditetapkan seperti yg lebih mendekati expression sebelumnya.
Untuk permukaan front-lit (pemantulan specular pada permukaan berhadapan dengan viewer), Bakal menghasilkan specular highlight yg sangat erat kecocokannya dengan pemantulan Phong. Namun demikian, di Saat pemantulan Phong selalu lingkaran untuk permukaan datar, pemantulan Blinn-Phong menjadi elips Saat permukaan dilihat dari sudut yg curam. Ini sanggup dibandingkan terhadap masalah dimana matahari dipantulkan di permukaan bahari yg erat dengan horizon atau Saat lampu kemudian lintas yg sangat jauh dipantulkan di trotoar yg berair dimana pantulannya Bakal selalu tersebar lebih vertikal dari pada horizontal.
Walaupun model Blinn-Phong mirip model Phong, ia menghasilkan model yg lebih akurat seCaranya empiris dari fungsi bidirectional reflectance distribution. (lihat: Experimental Validation of Analytical BRDF Models, Siggraph 2004).
Dalam banyak kasus, model pelukisan ini kurang efisien dibandingkan Phong shading lantaran ada perhitungan kuadrat dan akar. Jika model Phong supaya hanya memerlukan pemantulan vektor yg simple, bentuk modifikasi ini memerlukan lebih banyak perhitungan. Namun demikian, lantaran banyak CPU dan GPU sudah mempunyai fungsi kuadrat dan akar yg lebih akurat (sebagai fitur standar), serta aba-aba lain yg sanggup mempercepat proses pelukisan, duduk masalah waktu sudah tidak terlalu dipermasalahkan lagi.
Model Blinn-Phong Bakal lebih cepat dipakai dalam masalah dimana viewer dan cahaya tidak mempunyai keterbatasan. Ini ialah pola masalah untuk directional light. Dalam masalah ini, half-angle vector bebas berada di posisi dan permukaan apapun. Vektor sanggup dihitung satu kali untuk setiap cahaya, kemudian dipakai untuk keseluruhan frame atau Saat cahaya dan sudut pandang relatif tetap berada di posisi yg sama. Hal ini tidak berlaku bagi vektor cahaya dipantulkan pada model Phong dimana ia vektor bergantung pada rata tidaknya permukaan dan Musti dihitung ulang untuk setiap piksel gambar (atau untuk setiap vertex model dalam masalah pencahayaan vertex).
Pada masalah dimana cahaya terbatas, contohnya Saat menggunakan point light, model Phong supaya Bakal lebih cepat digunakan.
Sampel di bawah ini dalam High Level Shader Language merupakan suatu metode penentuan cahaya diffuse dan specular dari suatu point light. Struktur cahaya, posisi dalam ruang pada suatu permukaan, tampilan arah vektor dan permukaan normal merupakan faktor penentu.
A Lighting structure is returned;
struct Lighting
{
float3 Diffuse;
float3 Specular;
};
structPointLight
{
float3 position;
float3diffuseColor;
floatdiffusePower;
float3specularColor;
floatspecularPower;
};
Lighting GetPointLight(PointLight light, float3 pos3D, float3 viewDir, float3 normal )
{
Lighting OUT;
if(light.diffusePower>0)
{
float3lightDir=light.position- pos3D;//3D position in space of the surface
float distance = length(lightDir);
lightDir=lightDir/ distance;// = normalize( lightDir );
distance= distance * distance;//This line may be optimised using Inverse square root
//Intensity of the diffuse light. Saturate to keep within the 0-1 range.
floatNdotL= dot( normal,lightDir);
float intensity = saturate(NdotL);
// Calculate the diffuse light factoring in light color, power and the attenuation
OUT.Diffuse= intensity *light.diffuseColor*light.diffusePower/ distance;
//Calculate the half vector between the light vector and the view vector.
//This is faster than calculating the actual reflective vector.
float3 H = normalize(lightDir+viewDir);
//Intensity of the specular light
floatNdotH= dot( normal, H );
intensity=pow( saturate(NdotH),specularHardness);
//Sum up the specular light factoring
OUT.Specular= intensity *light.specularColor*light.specularPower/ distance;
}
return OUT;
}
0 Response to "Tentang Shading Modelling Potongan 2 ( Desain Pemodelan Grafik) Lanjutan.."