SHADING
MODELLING
Tugas
ini disusun oleh:
KELOMPOK
6
1.
BEBBY DWI
JUNITA (51411450)
2.
DHIRA BRATA
C.H.S.W.P (58411094)
3.
JODI
PRIOMBODHO (53411834)
PEMBIMBING:
NOVIA FATIMAH
UNIVERSITAS
GUNADARMA
2013
Kata Pengantar
Puji syukur kita panjatkan bagi Tuhan Yang Maha Esa
yang senantiasa memberikan kemudahan dalam menyelesaikan segala urusan hingga
kami mampu menyelesaikan buku SHADING MODELLING yang diberikan tugas kepada
kami Oleh Ibu Novia Fatimah.
Terima kasih yang sedalam-dalamnya kepada seluruh
anggota kelompok kami dan partisipasi yang dengan sabar dan ikhlas memberi
dukungan jasmani dan rohani dalam setiap
tahapan proses pembuatan buku ini.
Buku yang berada di tangan anda ini merupakan buku
panduan materi bagi siswa/mahasiswa dan merupakan panduan dalam mempelajari dalam bidang desain khususnya
mengenalkan konsep-konsep awal desain. Dalam buku pertama materi yang
dirangkumkan mulai grammatikal dasar hingga pembentukan kalimat-kalimat
kompleks secara garis besar beserta rumus-rumus dan algoritma matematika yang
dipakai pada shading modelling.
Akhirnya kami mengucapkan selamat membaca dan berpandang mesra dengan
dunia desain yang telah kami sajikan. Dan tentu tidak lupa kami harapkan kritik
dan saran agar kami senantiasa rajin berbenah untuk memperbaiki kesalahan dalam
penulisan yang belum sempurna.
BAB I
PENDAHULUAN
1.1
Latar Belakang Masalah
Pada saat ini, data
atau informasi tidak hanya disajikan dalam bentuk teks, tetapi juga dapat
berupa gambar, audio dan video. Keempat macam data atau informasi tersebut
sering disebut dengan multimedia. Era teknologi saat ini tidak dapat dipisahkan
dari multimedia.
Citra (Image) merupakan istilah lain untuk
gambar. Citra sebagai salah satu komponen multimedia memegang peranan penting
sebagai bentuk informasi visual. Citra mempunyai karakteristik yang tidak
dimiliki oleh data teks, yaitu citra kaya dengan informasi.
Walaupun citra kaya
dengan informasi, namun seringkali citra mengalami penurunan mutu, misalnya
warnanya terlalu kontras, kurang tajam, mengandung cacat dan sebagainya. Tentu
saja citra semacam itu menjadi sulit diinterpretasi oleh manusia karena
informasi yang disampaikan oleh citra tersebut menjadi berkurang. Agar citra
yang mengalami gangguan mudah diinterpretasi, maka citra tersebut perlu
dimanipulasi menjadi citra lain yang kualitasnya lebih baik yaitu dengan
pengolahan citra.
Meskipun perangkat
lunak (software) aplikasi untuk
pengolahan citra sudah semakin banyak bermunculan, tetapi perangkat lunak
tersebut tidak dapat berjalan sesuai dengan yang
diinginkan oleh pengguna/user, disebabkan oleh masalah yang disebutkan diatas
tadi. Oleh karena itu, Penulis tertarik untuk membahas
tentang pengoperasian teknik shading modelling menggunakan aplikasi blender dan 3DMax
1.2
Rumusan Masalah
Dalam penulisan buku ini, yang menjadi rumusan masalah adalah bagaimana
membuat suatu objek dalam aplikasi yang digunakan (blender) dan 3DMax
yang di dalamnya menggunakan berbagai
teknik shading modelling yang ada.
1.3
Batasan Masalah
Pembatasan masalah yang penulis
uraikan disini adalah konsep dari shading modeling, penjelasan matematika dan
algoritma, contoh, perangkat lunak yang mendukung serta contoh kasus dari
shading modeling.
1.4
Tujuan Penulisan
Tujuan dari penulisan buku ini
adalah agar pembaca dapat memahami teknik-teknik yang digunakan dalam
menggunakan software blender dan 3DMax sehingga,
para pembaca dapat mengaplikasikannya dalam pembuatan suatu objek.
1.5
Metode Penelitian
Metode penelitian dalam pembuatan
buku ini adalah study pustaka, dimana dalam hal ini penulis mencari materi
tentang teknik-teknik yang ada dalam shading modelling, kemudian penulis
mencoba mengaplikasikannya dalam software blender dan 3DMax yang
digunakan.
1.6
Sistematika Penulisan
Sebagai gambaran singkat tentang pokok pembahasan
penulisan ini, Penulis akan menguraikannya dalam beberapa bab, dengan
sistematika sebagai berikut:
BAB I PENDAHULUAN
Pada bab ini
dibahas latar belakang masalah, rumusan masalah, batasan masalah, tujuan penulisan, metode
penelitian dan sistematika penulisan.
BAB II KONSEP DAN TEORI
PADA SHADING MODELLING
Bab ini membahas tentang sejarah
dari shading modelling, teknik-teknik yang ada dalam shading modelling, serta
algoritma yang digunakan dalam menggunakan teknik shading modelling.
BAB III PERANGKAT LUNAK
Pada bab ini berisi
pembahasan tahap-tahap pembuatan suatu objek menggunakan
aplikasi blender dan 3DMax ,
dan menggunakan teknik shading modelling di dalam pembuatannya. Perangkat lunak yang mendukung atau
menerangkan konsep pada bab 2, dan deskripsi perangkat lunak tersebut.
BAB IV KASUS/CONTOH
SERTA MANFAAT
Bab ini berisi kasus
atau contoh serta manfaat yang yang bisa kita dapatkan dari teknik shading
modeling pada blender dan 3DMax
BAB V
PENUTUP
Bab ini berisi
kesimpulan dari pembahasan yang telah dikemukakan dalam bab-bab sebelumnya dan
saran-saran yang sifatnya mengarah kepada penyempurnaan dari apa yang telah
disajikan dalam tulisan ini.
BAB II
KONSEP DAN TEORI PADA
SHADING MODELLING
Shading mengacu pada penggambaran kedalaman suatu objek dalam model
3D atau ilustrasi dengan mengubah-ubah tingkat dari kegelapan suatu
object(darkness).
Menggambar
Shading merupakan suatu proses yang digunakan dalam menggambar
dengan tingkat darkness tertentu pada
sebuah kertas dengan memakai media yang lebih padat atau menampilkan bayangan
yang lebih gelap untuk area yang lebih gelap dan memakai media yang tidak
terlalu padat atau menampilkan bayangan yang lebih terang untuk area yang lebih
terang. Ada berbagai macam teknik shading,
misalnya cross hatching dimana
garis-garis tegak lurus dengan jarak satu sama lain (kedekatan) yang
berbeda-beda digambar pada pola grid
untuk membentuk bayangan area. Semakin dekat garis-garis tersebut, semakin
gelap area yang muncul. Begitu pula sebaliknya, semakin jauh garis-garis
tersebut, semakin terang area yang muncul.
Pola-pola yang terang (misalnya
objek yang memiliki area terang dan area berbayang) akan sangat membantu dalam
pembuatan ilusi kedalaman pada kertas dan layar komputer.
Komputer grafis
Pada komputer grafis, shading mengacu pada proses mengubah
warna berdasarkan sudut terhadap cahaya dan jarak dari cahaya untuk menciptakan
efek photorealistic. Shading dilakukan selama proses
penggambaran.
Sudut
terhadap sumber cahaya
Shading mengubah warna tampilan dalam model 3D berdasarkan sudut
permukaan terhadap cahaya matahari atau sumber cahaya lainnya.
Gambar pertama di bawah ini
menunjukkan permukaan-permukaan kotak yang digambar dimana semuanya memiliki
warna yang sama. Garis tepi telah digambar sehingga memudahkan gambar dilihat
dan dibedakan.
Gambar kedua merupakan model yang
sama, namun tidak memiliki garis tepi. Sangat sulit membedakan permukaan kotak
yang satu dengan yang lainnya.
Gambar ketiga memiliki shading dimana membuat gambar menjadi
lebih realistis dan lebih mudah dilihat serta dibedakan.
Sumber cahaya
Ada berbagai jenis cahaya:
·
Ambient light – Ambient light menyinari semua objek dalam suatu scene secara
merata, membuat objek menjadi terang tanpa menambahkan bayangan.
·
Directional light – Directional
light
menyinari semua objek secara merata dari suatu arah tertentu. Ia bagaikan suatu
area terang dengan ukuran dan jarak yang tidak terbatas dari scene. Ada
bayangan, tetapi itu bukan merupakan distance
falloff.
·
Point light – Point light berasal dari satu titik dan
menyebar dalam berbagai 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 yang berasal dari bidang datar
tersebut.
·
Volume light – Volume light merupakan suatu ruang tertutup yang
menyinari objek dalam ruang tersebut.
Shading diinterpolasikan berdasarkan 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 yang akan ditampilkan di layar.
Distance falloff
Secara teoritis, dua permukaan
paralel disinari jumlah cahaya yang sama dari sumber cahaya yang jauh, seperti
matahari. Walaupun permukaan yang satu jauh, mata kita melihat permukaan
tersebut lebih banyak di ruang yang sama sehingga penyinarannya tampak sama.
Perhatikan gambar pertama dimana
warna pada permukaan depan dari kedua kotak benar-benar sama. Tampaknya ada
sedikit perbedaan ketika kedua permukaan tersebut bertemu, tetapi ini merupakan
ilusi optikal yang disebabkan oleh garis tepi vertikal di bawah dimana kedua
permukaan ini bertemu.
Perhatikan gambar kedua dimana
permukaan kotak tampak lebih terang pada bagian depan dan tampak lebih gelap
pada bagian belakang. Selain itu, permukaan lantai juga tampak semakin gelap
seiring makin jauhnya jarak.
Efek distance falloff membuat gambar tampak lebih realistis tanpa harus
menambahkan cahaya tambahan untuk menimbulkan efek yang sama. Distance falloff dapat dihitung dalam
beberapa cara:
·
Tidak ada
·
Linier – Untuk setiap unit x jarak suatu titik dari sumber
cahaya, jumlah cahaya yang diterima adalah unit x dikurangi bright.
·
Kuadratik – Ini menunjukkan bagaimana cahaya kira-kira
bekerja di kehidupan nyata. Suatu titik yang dua kali jauhnya dari sumber
cahaya dibandingkan titik lainnya akan menerima cahaya empat kali lebih sedikit.
·
Faktor n – Suatu titik yang jaraknya sebesar unit x dari
suatu sumber cahaya akan menerima cahaya sebesar 1/xn.
·
Fungsi matematis lainnya juga dapat digunakan.
Flat vs smooth shading
Flat shading merupakan teknik pencahayaan yang digunakan dalam komputer
grafis 3D. Ia membentuk bayangan setiap polygon dari suatu objek berdasarkan
sudut antara permukaan normal polygon dan arah dari sumber cahaya, warna-warna respective, dan intensitas sumber
cahaya. Ini digunakan dalam pembuatan gambar dengan kecepatan tinggi dimana
menggunakan teknik-teknik shading
yang lebih sulit dan secara perhitungan lebih mahal. Akan tetapi, di akhir abad
ke-20, kartu grafis yang terjangkau menawarkan smooth shading yang dapat digunakan dalam proses penggambaran
cepat, membuat flat shading tidak
diperlukan lagi.
Kekurangan dari flat shading adalah ia memberikan tampilan model yang low-polygon. Terkadang tampilan ini dapat
menguntungkan juga, misalnya dalam membuat model objek berbentuk kotak. Pelukis
terkadang menggunakan flat shading
untuk melihat polygon dari model padat yang mereka ciptakan. Teknik-teknik
pencahayaan dan shading lanjutan dan
lebih realistis meliputi Gourad shading
dan Phong shading.
Model shading menentukan bagaimana suatu permukaan objek muncul dalam
kondisi pencahayaan yang berbeda-beda. Beberapa model matematis dapat digunakan
untuk menghitung shading. Setiap
model shading memproses relasi dari
permukaan normal terhadap sumber cahaya untuk menciptakan efek shading tertentu.
Menggunakan warna-warna ambient,
diffuse, dan specular. Model shading
ini membaca orientasi permukaan normal dan menginterpolasikannya untuk
menciptakan tampilan smooth shading.
Ia juga memproses relasi antara normal, cahaya, dan sudut pandang kamera untuk
menciptakan specular highlight.
Hasilnya adalah suatu objek dengan
bayangan smooth, permukaan area yang
disinari diffuse dan ambient, serta suatu specular highlight sehingga objek tampak
bersinar seperti bola biliar atau bola plastik. Pemantulan, transparansi, refraksi,
dan tekstur dapat diterapkan pada objek yang menggunakan Phongshader.
Menggunakan warna-warna ambient
dan diffuse untuk menciptakan
permukaan matte tanpa specular highlight. Ia
menginterpolasikan normal dari permukaan segitiga yang berdampingan sehingga shading berubah secara progresif,
menciptakan suatu permukaan matte.
Hasilnya adalah suatu objek dengan smooth shading, seperti telur atau bola
ping-pong. Pemantulan, transparansi, refraksi, dan tekstur dapat diterapkan
pada objek yang menggunakan Lambert
shader.
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 ketika ada sudut tinggi antara kamera
dan cahaya.
Model shading ini berguna untuk tepian yang kasar atau tajam dan untuk
mensimulasikan permukaan logam. Specular
highlight-nya tampak lebih terang dibandingkan model Phong. Pemantulan,
transparansi, refraksi, dan tekstur dapat diterapkan pada objek yang
menggunakan Blinnshader.
Menggunakan warna-warna diffuse, ambient, dan specular, serta refractive index untuk menghitung specular highlight. Ia membaca orientasi permukaan normal dan
menginterpolasikannya untuk menciptakan tampilan smooth shading. Ia juga memproses relasi antara normal, cahaya, dan
sudut pandang kamera untuk menciptakan specular
highlight.
Model shading ini memproduksi hasil yang berada diantara model shading Blinn dan Lambert, serta berguna
untuk mensimulasikan objek yang lembut dan reflektif seperti kulit. Pemantulan,
transparansi, refraksi, dan tekstur dapat diterapkan pada objek yang
menggunakan Cook-Torrance shader.
Karena model shading ini lebih kompleks untuk dihitung, ia memakan waktu lebih
lama dalam pelukisan daripada model shading
lainnya.
// Copyright (c) 2007 PIXAR. All rights reserved. This program 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;
}
Hanya menggunakan warna-warna diffuse untuk mensimulasikan suatu
permukaan logam. Surface’s specular
dikaitkan dengan parameter smoothness
dan “metalness” yang mengontrol
warna-warna diffuse berdasarkan specular ratio seperti pemantulan dan highlight.
Pemantulan, transparansi, refraksi,
dan tekstur dapat diterapkan pada objek yang menggunakan Strauss shader.
Terkadang disebut juga ward. Model shading ini mensimulasikan permukaan glossy dengan menggunakan warna-warna ambient, diffuse, dan glossy.
Untuk menciptakan efek “digosok” seperti aluminium yang diamplas, dapat
menggunakan orientasi specular color
berdasarkan orientasi permukaan objek. Specular
dihitung menggunakan koordinat UV.
Pemantulan, transparansi, refraksi, dan
tekstur dapat diterapkan pada objek yang menggunakan anisotropic shader.
Constant
Hanya menggunakan warna-warna diffuse. Ia mengabaikan orientasi
permukaan normal. Semua permukaan segitiga objek dianggap memiliki orientasi
yang sama dan memiliki jarak yang sama dari cahaya.
Ia menghasilkan suatu objek yang
permukaannya tidak ada shading,
tampak seperti suatu potongan kertas. Ini berguna jika kita ingin menambahkan static blur pada suatu objek sehingga
tidak ada cahaya specular atau ambient. Ia juga mendukung tekstur sebab
tidak ada atribut yang 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 yang dikembangkan oleh
Jim Blinn.
Blinn-Phong merupakan model shading default yang digunakan di OpenGL dan Direct3D fixed-function pipeline
(sebelum Direct 3D 10 dan OpenGL 3.1), serta digunakan pada setiap vertex selagi ia melewati pipa grafis;
nilai piksel antara diantara vertice
diinterpolasikan oleh Gouraud shading by
default, daripada menggunakan Phong
shading yang lebih mahal.
Dalam Phong
shading, secara kontinu harus 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 dapat mengganti dengan
dimana adalah
permukaan normal yang telah dinormalisasikan. Pada persamaan di atas, dan adalah
vector yang telah dinormalisasikan, dan adalah
solusi terhadap persamaan dimana adalah
matriks Householder yang merefleksikan suatu titik di hyperplane yang memiliki origin dan
memiliki normal.
Produk dot ini merepresentasikan
cosinus dari suatu sudut yang merupakan setengah dari sudut yang direpresentasikan
oleh produk dot Phong jika V, L, N, dan R semuanya berada di bidang datar yang
sama. Relasi antara sudut-sudut tersebut diperkirakan benar jika vektor-vektor
tidak berada di bidang datar yang sama, terutama ketika sudut-sudutnya kecil.
Oleh karena 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 yang digunakan
dalam model Phong (kecuali permukaan ditampilkan dari sudut yang sangat curam
atau bersudut besar) dan karena Phong menggunakan eksponen ditetapkan seperti yang
lebih mendekati expression
sebelumnya.
Untuk permukaan front-lit (pemantulan specular
pada permukaan berhadapan dengan viewer),
akan
menghasilkan specular highlight yang
sangat dekat kecocokannya dengan pemantulan Phong. Namun demikian, di saat
pemantulan Phong selalu bulat untuk permukaan datar, pemantulan Blinn-Phong
menjadi elips ketika permukaan dilihat dari sudut yang curam. Ini dapat
dibandingkan terhadap kasus dimana matahari dipantulkan di permukaan laut yang
dekat dengan horizon atau ketika lampu lalu lintas yang sangat jauh dipantulkan
di trotoar yang basah dimana pantulannya akan selalu tersebar lebih vertikal
daripada horizontal.
Walaupun model Blinn-Phong
menyerupai model Phong, ia menghasilkan model yang lebih akurat secara 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 karena ada perhitungan kuadrat dan akar. Jika model Phong original
hanya memerlukan pemantulan vektor yang simple, bentuk modifikasi ini
memerlukan lebih banyak perhitungan. Namun demikian, karena banyak CPU dan GPU
sudah memiliki fungsi kuadrat dan akar yang lebih akurat (sebagai fitur
standar), serta instruksi lain yang dapat mempercepat proses pelukisan, masalah
waktu sudah tidak terlalu dipermasalahkan lagi.
Model Blinn-Phong akan lebih cepat
digunakan dalam kasus dimana viewer
dan cahaya tidak memiliki keterbatasan. Ini adalah contoh kasus untuk directional light. Dalam kasus ini, half-angle vector bebas berada di posisi
dan permukaan apapun. Vektor dapat dihitung satu kali untuk setiap cahaya,
kemudian digunakan untuk keseluruhan frame
atau ketika cahaya dan sudut pandang relatif tetap berada di posisi yang sama.
Hal ini tidak berlaku bagi vektor cahaya dipantulkan pada model Phong dimana ia
vektor bergantung pada rata tidaknya permukaan dan harus dihitung ulang untuk
setiap piksel gambar (atau untuk setiap vertex
model dalam kasus pencahayaan vertex).
Pada kasus dimana cahaya terbatas,
misalnya ketika menggunakan point light,
model Phong original akan 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;
}
Tidak ada komentar:
Posting Komentar