Saturday, May 21, 2011

3D material မ်ားအေၾကာင္း သိေကာင္းစရာ

Material အေၾကာင္း သိေကာင္းစရာ ေဆာင္းပါးမွာ ဘယ္ software က ဘယ္ material ဆိုတာကို မမွတ္ယူဘဲ material ေတြရဲ႔ သေဘာတရားဆိုျပီး စဥ္းစားၾကဘုိ႔ ပထမဦး စြာမွာခ်င္ပါတယ္။
Material ေတြကို တစ္မ်ိဳးအားျဖင္႔ shader လို႔လည္းေခၚပါတယ္။ သူမ်ားေတြကေတာ္႔ ဘယ္လိုခြဲခ်မ္းလည္းမသိ။ က်ေတာ္ ကလည္း သူမ်ားဖြင္႔ဆိုတာ မဆိုတာကို သိပ္စိတ္မ၀င္စားတဲ႔လူ ျဖစ္ေနေတာ္႔ ဒီလို ခြဲခ်မ္းလိုက္ပါတယ္။ material ရဲ႔ေအာက္မွာ ၂ပိုင္း ခြဲျပစ္လိုက္ပါတယ္။ shading ပိုင္းနဲ႔ texture ပိုင္းဆိုျပီ။ ဒီေနရာမွာက်ေတာ္ေျပာတဲ႔ shading က က်ေတာ္တို႔ drawing class ေတြမွာဆိုရင္ shading ဆိုတာဟာ အလင္းေမွာင္နဲ႔ object ရဲ ႔ form ကိုေဖၚတဲ႔ အရာပါ။ အဲဒီလိုဘဲ က်ေတာ႔အျမင္မွာ 3d material ေတြမွာလည္း shading ဆိုတဲ႔ အပိုင္းေအာက္မွာပါတဲ႔ ဟာေတြဟာ အဲဒီအလုိဘဲ အရာတစ္ခုရဲ႔ ဂုဏ္ရည္ေသြးကို ေဖၚျပေပးပါတယ္။ က်ေတာ္ေျပာတဲ႔ material ေအာက္က shading ဆိုတာကို ဒီလိုျမင္လိုက္ပါ။


" billiard ball တစ္လံုးမွာရွိတဲ႔ no.8 ဆိုတဲ႔ အရာနဲ႔ အနက္ေရာင္ ဟာ texture ပါ။ အေပၚက ေျပာင္ေနနဲ႔ အရာေလးဟာ shading ပါ၊ golf ball မွာဆိုရင္ေတာ႔ brand label and white colour ဟာ texture ပါ။ gloss ျဖစ္ေနတဲ႔ layer ေလးနဲ႔ bump ျဖစ္ေနတဲ႔ သေဘာတရားဟာ shading ပါ။ Bump ျဖစ္ေနတဲ႔ သေဘာေလးကို ဘာလို႔ shading ထဲထည္႔တာလည္းလို႔ ေမးလာရင္။ texture ဟာ flat surface ပါ သူ႔ျခည္း ဘာမွ မလုပ္နိုင္ပါဘူး surface ကိုေျပာင္းလည္းေပးတဲ႔ shading ရဲ႔ အာဏိသင္ေၾကာင္႔ bump ေတြျဖစ္လာတယ္လို႔ က်ေတာ္ဖြင္႔ဆိုပါတယ္။
drawing လုပ္တဲ႔ ေနရာမွာလည္း shading လုပ္တဲ႔ အခါၾကမွ ဒီ object ဟာ ၾကမ္းတယ္ ေခ်ာတယ္ ေျပာင္တယ္ မွိန္တယ္ ဆိုတဲ႔ သေဘာတရားေတြကို define လုပ္ သြားပါတယ္။"

အဲဒီေလာက္ဆို က်ေတာ္ဆိုလိုရင္းကို ျမင္ေလာက္ျပီလို႔ထင္ပါတယ္။

အဲဒီေတာ႔ material ေတြကို ၾကည္႔လိုက္ရင္ မူရင္းအားျဖင္႔။ blinn ၊ phong and Anisotropic ဆိုျပီး မ်ားေသာအားျဖင္႔ မူရင္း ေတြရွိပါတယ္။ software မတူသလိုိုလိုက္ျပီး အနည္းအမ်ား ကြာပါတယ္။ မိမိတို႔ create လုပ္မဲ႔ material ကိုလိုက္ျပီး သင္႔ေတာ္မဲ႔ အရာကို ေရြးခ်ယ္ အသံုးျပဳကပါတယ္။ ဘယ္ဟာက ဘာအတြက္သင္႔ေတာ္တယ္ ဆိုတာေတာ႔ မေျပာေတာ႔ပါဘူး ။ မိမိဘာသာ explore လုပ္ၾကည္႔ပါ။
အဲဒီေတာ႔ ေက်းဇူးရွင္တို႔ 3d material တစ္ခုကို ၾကည္႔လိုက္မယ္ဆိုရင္ 2 layer ပါတယ္။ texture layer နဲ႔ shading ဆိုျပီ။ ပါလိမ္႔မယ္။ material ေတြကို recreate လုပ္တဲပ ေနရာမွာ အဒီ main layer ေတြဟာ ရွင္းရွင္းေလး ၂လႊာ ၃ လႊာေလာက္ဘဲ ျဖစ္နိုင္သလို 12 လႊာ ၁၅ လႊာလည္းျဖစ္နိုင္ပါတယ္။

e.g orange skin လိုဟာမ်ိဳး ဟာ ရွင္းရွင္းေလးပါ။ texture ပါတယ္။ reflection(gloss) ပါမယ္။ မညီညာတဲ႔ skin အတြက္ bump ပါလိမ္႔မယ္။ အဲဒီ ဟာေတြကို texture based shading သံုးျပီး လုပ္သြားလို႔ရပါတယ္။ texture based shading ဆိုတဲ႔ဟာမ်ိဳးကေတာ႔ drawing မွာ ေအာက္က တခုခု ခံျပီး အေပၚကေနခဲတံနဲ႔ ျခစ္လိုက္တဲ႔ သေဘာတရားမ်ိဳးေပါ႔။
၅ လႊာ ေလာက္ပါနိုင္တဲ႔ ဟာမ်ိဳးကၾကေတာ႔ e.g. metallic multi-colour car paint လိုဟာမ်ိဳး သူ material ကိုေလ႔လာၾကည္႔ရင္။ based colour ေတြပါမယ္။ အေပၚဆံုးက gloss layer ပါတယ္။ metallic paint ေတြမွာပါတယ္႔ ေငြမႈန္ေလးေတြ ေရႊမႈန္ေလးေတြပါမယ္။ အဲဒီ ေငြမႈန္ေလးေတြ ေရြမႈန္ေလးေတြ က ေျပာင္ေနတဲ႔ layer ပါမယ္။ ျပီးေတာ႔မွ car paint ေတြမွာပါတဲ႔ super gloss ျဖစ္ေနတဲ႔ layer ၾကီးနဲ႔ အုပ္ထားလိုက္မယ္။
အဲဒီလိုဟာကေန အလြာေတြအမ်ားၾကီးပါနိုင္တ႔ဲ material ေတြကို ေတြ႔ရပါမယ္။ material က complicated ျဖစ္ေလ အလႊာေတြကမ်ားေလျဖစ္ပါတယ္။ အဲဒီမ်ားျပားလွတဲ႔ layer ေတြကို ထပ္ထားဘို႔ shader ေတြလည္းရွိပါတယ္။ အဲလို ထပ္တဲ႔ ေနရာမွာ Alpha channel ကို ေကာင္းစြာ အသံုးခ်ျပီး ထပ္လို႔ရပါတယ္။
texture based shading ျပီေတာ႔ ေနာက္တစ္မ်ိဳး ရွိေနတာက procedural shading ပါ။ အဲဒီ ဟာ က ေတာ္ေတာ္ စိတ္၀င္စားဘို႔ေကာင္းပါတယ္။ အျပင္က texture ေတြမသံုးဘဲ သူ႔ထဲမွာပါတဲ႔ colour ေတြကိုဘဲ use ျပီး create လုပ္သြားတဲ႔ နည္းပါ။ ဒီနည္းဟာ လုပ္ကတာ ခက္ေပမဲ႔ အားသာခ်က္ေတြအမ်ားၾကိး ရွိပါတယ္။ ေက်းဇူးရွင္တို႔ mosaic tile လိုဟာမ်ိဳးကို procedural မလုပ္ဘဲ texture base shading နဲ႔လုပ္ရင္ randam mosaic tile ေတြဘယ္ေတာ႔မွ မရပါဘူး။ game ေတြအတြက္ေတာ႔ ဒီနည္းက အသံုးမ၀င္ေပမဲ႔ အျခားကိတ္စေတြမွာေတာ႔ ေတာ္ေတာ္ အသံုးၾကပါတယ္။
လုပ္ကတာ ခက္လို႔ procedural material လုပ္တတ္တဲ႔ လူေတြက procedural လုပ္ထားတာ ဆိုျပီး ဂုဏ္ယူျပီးေျပာေလ႔ရွိပါတယ္။
အဲဒီေတာ႔ material တစ္ခုကို ျပန္ျပီး recreate လုပ္ေတာ႔မယ္ဆိုရင္။ detail ကိုေသျခာၾကည္႔ျပီး ေက်းဇူးရွင္တို႔ အေနနဲ႔ အလြာဘယ္နွစ္လႊာေလာက္ အသံုးျပဳသင္႔တယ္ ဆိုတာ ေသျခာ ဆံုးျဖစ္ျပီးမွ အေသးစိတ္လုပ္သင္႔ပါတယ္။ scan တန္းဖတ္ျပီး လုပ္ဘို႔ စိတ္မေစာပါနဲ႔။
decent bump and displacement map create လုပ္နိုင္ေအာင္ေလ႔က်င္႔ပါ။
displacement map နဲ႔ create လုပ္ထားတဲ႔ ဒူးရင္းသီးျဖစ္ပါတယ္။



က်ေတာ္ဟာ လူတစ္ေယာက္က သူ႔ တပည္႔ေတြကို bump and displacement map ကိုေသျခာေလ႔က်င္႔ဖို႔ မွာၾကားေနတာကို ေတြ႔လိုက္တဲ႔ အခါမွာ အံအားသင္႔မိတယ္။ bump and displacement map မ်ား အဲေလာက္အထူးတလယ္ ေလ႔က်င္႔ဘို႔လိုလားလို႔ထင္မိပါတယ္။ ေနာက္ပိုင္းမွာေတာာ႔ တကယ္ အေရးၾကီးမွန္း သိလာခဲ႔ပါတယ္။ စာဖတ္သူတို႔လည္း ေသျခာေလ႔က်င္႔ပါ။ အဲဒီက ရလာတဲ႔ နားလည္မႈကို အျခား alpha map, specular map , transparent map etc. ေတြမွာ အသံုးခ်ပါ။ အားလံုးဟာ သေဘာတရားတူတူပါဘဲ။ ဒါေပမဲ႔ displacement map ကို အသံုးျပဳရင္ေတာ႔ displacement map ဟာ တကယ္ 3d form ျဖစ္လာတဲ႔ အတြက္ အသံုးျပဳတဲ႔ object ဟာလည္း မိမိ အသံုးျပဳထားတဲ႔ displacement map အေပၚမူတည္ျပီး mesh အစိတ္အၾကဲဟာ ကိုက္ညီမွျဖစ္ပါလိမ္႔မယ္။ ထိုသို႔မဟုတ္ရင္
displacement form ဘို႔ mesh မရွိတဲ႔ အတြက္ ဘာမွာ form ျဖစ္မလာဘဲ ျဖစ္ေနတတ္ပါတယ္။
ဒီေလာက္နဲ႔ ဘဲ က်ေတာ္ ရပ္လိုက္ပါေတာ႔မယ္။ အလံုးဆံု မပါေပမဲ႔ ။ ခြဲျခမ္းစိတ္ျဖာမႈ ေတြးေခၚေလး အေရးၾကီးတဲ႔ ဟာေလးေတြ ေခါင္းထဲရွိသေလာက္ေတာ႔ ပါေအာင္ သိေကာင္းစရာအေနနဲ႔ ဦေလးရဲ႔ တိုက္တြန္းခ်က္အရ ေရးသားေပးလုိက္ပါတယ္။
ေလးစားစြာျဖင္႔
စာေ၇းသူ :D (မားရီးယပ္စ္)

1 comment:

Wai Phyo said...

ဆက္ေရးပါဦး ေနာ္ တစ္ကယ္ ပညာ အမ်ားၾကီးရပါတယ္
ေက်းဇူးတင္ပါတယ္ ခင္ဗ်ာ း)