3D Visualizer Pipe line မွာ
ရပ္တည္ေနတဲ့ သူေတြ အတြက္
ကမာၻ႔ CG ၀န္းက်င္မွာ
တြင္တြင္ ေျပာေနေပမယ့္ ကၽြန္ေတာ္တို႔
၀န္းက်င္မွာ ေတာ့ ေျပာတာ အေတာ္နည္းသလို စီနီယာ ေတြ ၀န္းက်င္မွာ ကို တြင္တြင္
က်ယ္က်ယ္ အသံုး မျပဳၾကေသးတဲ့
workflow တစ္ခုကေတာ့ (LWF) Linear work flow & Gamma 2.2 setup ပါ ။ ကၽြန္ေတာ္ အဓိက အေျခခံေျပာ မွာကေတာ့
3ds max နဲ႔ vray ေပၚ အေျခခံျပီး
ေျပာမွ ျဖစ္ေပမယ့္
ဒီ concept ဟာ 3d software renderer
အားလံုး အတြက္ အသံုး၀င္
ပါတယ္လို႔ ေျပာခ်င္ပါတယ္ ။
3ds max မွာ default system gamma value အေနနဲ႔ 1 ပါ ။ ထို႔ အတူ material အတြက္ texture ေတြ ေခၚ ထည္႔ တဲ့ အခါမွာလဲ အဲဒီ ဖိုင္ေတြ ကို gamma value 1 အေနနဲ႔ ေခၚသြင္းဖို႔လဲ input gamma setting မွာ system gamma value အေနနဲ႔ လဲ 1 ပါ ။ gamma value ကို အၾကမ္းအားျဖင့္ လြယ္လြယ္ သေဘာေပါက္ေအာင္ ေျပာမယ္ဆိုရင္ gamma တန္ဖိုး မ်ားလာရင္ ပိုျပီး လင္းလာ ေလေလ တန္ဖိုးနည္းလာတာနဲ႔ အမွ် ပိုေမွာင္ေလေလ လို႔ ေျပာရင္ ျမင္မယ္ ထင္ပါတယ္ ။
Gamma အေနနဲ႔ 3d software ေတြကို ဘယ္လို effect ေတြ ျဖစ္ေစလဲ ?
ကၽြန္ေတာ္တို႔ အသံုးျပဴေနတဲ့ monitor screen (digital screen) ေတြ မွာ အ၀င္ input voltage လိုျပီး output အေနနဲ႔ Light intensity အေနနဲ႔ ထြက္ပါတယ္ ။ သီအိုရီ အေနနဲ႔ ဆိုရင္ input voltage နဲ႔ output Light intensity က တိုက္ရုိက္ အခ်ိဳးက်ေန ရပါမယ္ ။ input power မ်ားလာရင္ output Light intensity မ်ားလာ ရမယ့္ သေဘာပါ ။ နမူနာ graph ေလးကို ၾကည္႔ပါ ..
တစ္ကယ္ လက္ေတြ႔ မွာ input voltage မ်ားသေလာက္ output Light intensity က တိုး မလာပါဘူး ။ input voltage တိုးရင္း တိုးရင္းနဲ႔ တစ္ေနရာ ေရာက္မွ ရုတ္ခ်ည္း တက္လာပါတယ္ ။ နမူနာ graph ေလးကို ၾကည္႔ပါ ..
ပံုထဲ ကလို နည္းေနတဲ့ (curve ျဖစ္ေနတဲ့) အေျခအေန မ်ိဳးမွာ 3d software မွာ ေဖာ္ျပတဲ့ light နဲ႔ shadow area ေတြ မွာ ရွိသင့္တာ ထက္ ပိုျပီးေမွာင္ ေနပါတယ္ ။ mid tone ေတြက bright ျဖစ္ေနျပီး highlights ေတြ က overbright ျဖစ္ေနပါတယ္ ။
အဲဒီ လြဲေနတာ ကို ျပန္ျပီး correction လုပ္ေပးဖို႔ လိုပါမယ္ ။ နမူနာ graph ေလးကို ၾကည္႔ပါ ..
ပံုမွာ ျမင္ရတဲ့ အတိုင္း ေျပာင္းျပန္ အခ်ိဳးက် curve ေလး ျပန္ထည္႔ ေပးျခင္း သေဘာတရားနဲ႔ ျပန္လည္ ခ်ိန္ညိွႏိုင္ပါတယ္ ။ ဒီလို လုပ္ေဆာင္ ခ်က္ကို Gamma လို႔ ေခၚပါတယ္ ။
Autodesk 3ds max software မွာ ပံုမွန္ အားျဖင့္ အထက္မွာ ေဖာ္ျပခဲ့ သလို system gamma & input gamma default value ေတြ ကို 1 အေနနဲ႔ linear space အေနနဲ႔ သြားပါတယ္ ။ အဓိကက ကၽြန္ေတာ္တို႔ ေခၚသြင္းမယ့္ material texture ေတြ ဟာ အမ်ားစုက digital camera ေတြ က မွ ရုိက္ယူထားျပီး edit လုပ္ထားတာ ေတြ အမ်ားဆံုးပါ ။ digital camera ေတြ ထဲမွာ ရုိက္ယူလိုက္တဲ့ ပံုရိပ္ေတြ ကို gamma 1 အေနနဲ႔ ပဲ ဖဖ္းပါတယ္ ။ျပီးမွ gamma 2.2 auto ေျပာင္းေပးလိုက္ပါတယ္ ။ Raw image ေတြ မွသာ 1 နဲ႔ ထုတ္ေပးေလ့ရွိပါတယ္ ။ ဒါေၾကာင့္ ကၽြန္ေတာ္တို႔ ေခၚသြင္းမယ့္ ပံုေတြ အမ်ားစုက ကိုယ္ပိုင္ gamma 2.2 ရွိျပီး သားပါ ။ 3ds max system မွာ input အေနနဲ႔ 1 လို႔ ယူဆ ျပီး gamma 2.2 images ေတြကို ေခၚသြင္း ျပီး system gamma တန္ဖိုး 1 အတိုင္းပဲ screen မွာ ေဖာ္ျပတဲ့ အတြက္ computer screen မွာ ျမင္ရတဲ့ texture အရည္အေသြးထက္ 3ds max material အေနနဲ႔ ေဖာ္ျပ render လုပ္တဲ့ အခါ ပိုျပီး Dark ျဖစ္ေနတာ ကို သတိထား ၾကည္႔ရင္ ျမင္ႏိုင္ပါတယ္ ။
HDRI , Normal map ,bump map ..စသျဖင့္ file အမ်ိဳးအစားေတြက ေတာ့ နဂိုတည္းက gamma value 1 ျဖစ္ေနတဲ့ အတြက္ ျပႆနာ မရွိပါဘူး ။ ထို႔ အတူ color ေတြ အေနနဲ႔ လဲ system gamma 1 အေနနဲ႔ပဲ ဆိုေတာ့ အခုနက material ေတြ လိုပဲ dark ျဖစ္ေနပါလိမ့္မယ္ ။
Conclusion
ကၽြန္ေတာ္တို႔ gamma ကို 2.2 ေျပာင္း correction လုပ္ျပီး စမယ္ ( ပိုျပီး လင္းတဲ့ အေျခအေန ) ဆိုရင္ပဲ ျဖစ္ျဖစ္
gamma ကို 1 ပဲထား စမယ္ ( ေမွာင္တဲ့ အေျခအေန ) ဆိုရင္ပဲ ျဖစ္ျဖစ္ ေနာက္ဆုံး Result ကေတာ့ realistic ျဖစ္မယ့္ အေျခအေန ကိုပဲ ဦးတည္ ျပီးေတာ့ သြားမွာ ျဖစ္တဲ့ အတြက္ အတူတူ ပါပဲ ။
လက္ရွိ ကိုယ့္ ဟာကိုယ္ပဲ render လုပ္ client ကို ပဲ ျပ ဆိုရင္ေတာ့ ဒီတိုင္းပဲ ဆက္လုပ္လဲ အဆင္ေျပပါတယ္ ။
Compositer ေတြ အေနနဲ႔ ကေတာ့ beauty pass ရေအာင္ render elements ေတြ ျပန္ထပ္ရမွာ ျဖစ္တဲ့ အတြက္ မျဖစ္မေန သံုးဖို႔ လိုပါမယ္ ။
ကၽြန္ေတာ့္ အေနနဲ႔ လည္း Compositor ေတြ လို အထိ လုပ္ေနရတာ မဟုတ္ပဲ render ထုတ္ postproduction လုပ္ အဲဒီ အထိပဲ ဆိုေတာ့ ဒီအတိုင္းပဲ သံုးလို႔ ေတာ့ အဆင္ေျပပါတယ္ ။
ဒါေပမယ့္ ကၽြန္ေတာ္ ဒီ အေၾကာင္းသိတဲ့ အခ်ိန္က စျပီး gamma setup 2.2 နဲ႔ linear workflow ကို သံုးပါတယ္ ။
အဓိက အခ်က္ ၂ ခ်က္ ရွိပါတယ္ ။
၁ ။ gamma value 1 အေနနဲ႔ ေမွာင္ေနတာ က စျပီး lighting ေတြ ခ်ိန္မယ္ဆိုရင္ light intensity ေတြ အမ်ားၾကီးတိုး ရမယ္ light ေတြ ပိုလိုမယ္ ဒါေတြေၾကာင့္ shadow ေတြ ပိုတြက္ ရမယ္ …memory ပိုသံုးရသလို rendering times လဲ ပို ၾကာေစပါတယ္ ။
ဥပမာ - ကိုယ္လိုခ်င္တဲ့ Result ရဖို႔ အတြက္ gamma value 1 နဲ႔ သြားမယ္ ဆိုရင္ အဆင့္ 10 ဆင့္သြားရမယ္ ဆိုရင္
LWF (gamma 2.2 ) နဲ႔ ဆိုရင္ 5 ဆင့္ ေလာက္ပဲ သြားရမယ့္ သေဘာပါ ။
၂ ။ ကိုယ္ က တစ္ခ်ိန္ မွာ ဒီထက္ပိုျပီး တိုးတက္ေအာင္ သြားဖို႔ ရည္ရြယ္ထားတဲ့ အတြက္ professional pipe line မွာ compositor ေတြ နဲ႔ ဆက္ဆံရမယ္ ထို႔ အတူ ကိုယ္လဲ တစ္ခ်ိဳ႔ ဟာေလးေတြ ကိုယ္တိုင္ ဖန္တီးခ်င္မယ္ ဆိုရင္ အခက္အခဲ ေတြ နည္းတာမို႔ ပါ ။
ေနာက္ အေရးၾကီးတဲ့ အခ်က္ေလး ကေတာ့ ကၽြန္ေတာ္တို႔ realistic lighting units ေတြ နဲ႔ actual dimension ေတြ သံုးျပီး ဆြဲထားတဲ့ အခန္းေတြ မွာ render လုပ္တဲ့ အခါ light ကို တစ္ကယ္ ရွိရမွာ ထက္ အမ်ားၾကီး ျမွင့္ျပီး သံုးေနရပါတယ္ ။ အဲဒီ အတြက္ တစ္ခ်ိဳ႔ ေနရာေတြ မွာ burn တာေတြ လဲ ပါလာတတ္ပါတယ္ ။ အဓိက ေျပာခ်င္တာက ေတာ့ အဲလို အျပင္ အတိုင္း ျဖစ္ခ်င္ရင္ gamma setup 2.2 နဲ႔ စမွ light intensity အမ်ားၾကီး တင္ဖို႔ မလိုသလို သူတစ္ခုတည္း နဲ႔ မျပီးပါဘူး ။ေနာက္ တစ္ခုက vray physical camera ကို တြဲသံုး မွ ျဖစ္မွာ ပါ ။
LWF (gamma 2.2 ) + vray physical camera ကို တြဲ သံုးမယ္ ဆိုရင္ တစ္ကယ့္ lighting units ေတြ နဲ႔ အနီးစပ္ ဆံုး အဆင္ေျပပါတယ္ ။ ပိုျပီး realistic approach လဲ ဆန္ပါတယ္ ။
အခ်ိန္ရရင္ 3ds max နဲ႔ vray မွာ gamma 2.2 setup ဘယ္လို လုပ္ သလဲ ဆိုတာ ေရးေပးပါ့မယ္ ။ lighting units ေတြ နဲ႔ ပတ္သတ္ျပီး ကၽြန္ေတာ္ ေရးထားတဲ့ lighting နဲ႔ ပတ္သတ္တဲ့ ပိုစ္ေတြ မွာ ေလ့လာ ႏိုင္ပါတယ္ ။
ေလးစားစြာျဖင့္
ေ၀ျဖိဳး
3ds max မွာ default system gamma value အေနနဲ႔ 1 ပါ ။ ထို႔ အတူ material အတြက္ texture ေတြ ေခၚ ထည္႔ တဲ့ အခါမွာလဲ အဲဒီ ဖိုင္ေတြ ကို gamma value 1 အေနနဲ႔ ေခၚသြင္းဖို႔လဲ input gamma setting မွာ system gamma value အေနနဲ႔ လဲ 1 ပါ ။ gamma value ကို အၾကမ္းအားျဖင့္ လြယ္လြယ္ သေဘာေပါက္ေအာင္ ေျပာမယ္ဆိုရင္ gamma တန္ဖိုး မ်ားလာရင္ ပိုျပီး လင္းလာ ေလေလ တန္ဖိုးနည္းလာတာနဲ႔ အမွ် ပိုေမွာင္ေလေလ လို႔ ေျပာရင္ ျမင္မယ္ ထင္ပါတယ္ ။
Gamma အေနနဲ႔ 3d software ေတြကို ဘယ္လို effect ေတြ ျဖစ္ေစလဲ ?
ကၽြန္ေတာ္တို႔ အသံုးျပဴေနတဲ့ monitor screen (digital screen) ေတြ မွာ အ၀င္ input voltage လိုျပီး output အေနနဲ႔ Light intensity အေနနဲ႔ ထြက္ပါတယ္ ။ သီအိုရီ အေနနဲ႔ ဆိုရင္ input voltage နဲ႔ output Light intensity က တိုက္ရုိက္ အခ်ိဳးက်ေန ရပါမယ္ ။ input power မ်ားလာရင္ output Light intensity မ်ားလာ ရမယ့္ သေဘာပါ ။ နမူနာ graph ေလးကို ၾကည္႔ပါ ..
တစ္ကယ္ လက္ေတြ႔ မွာ input voltage မ်ားသေလာက္ output Light intensity က တိုး မလာပါဘူး ။ input voltage တိုးရင္း တိုးရင္းနဲ႔ တစ္ေနရာ ေရာက္မွ ရုတ္ခ်ည္း တက္လာပါတယ္ ။ နမူနာ graph ေလးကို ၾကည္႔ပါ ..
ပံုထဲ ကလို နည္းေနတဲ့ (curve ျဖစ္ေနတဲ့) အေျခအေန မ်ိဳးမွာ 3d software မွာ ေဖာ္ျပတဲ့ light နဲ႔ shadow area ေတြ မွာ ရွိသင့္တာ ထက္ ပိုျပီးေမွာင္ ေနပါတယ္ ။ mid tone ေတြက bright ျဖစ္ေနျပီး highlights ေတြ က overbright ျဖစ္ေနပါတယ္ ။
အဲဒီ လြဲေနတာ ကို ျပန္ျပီး correction လုပ္ေပးဖို႔ လိုပါမယ္ ။ နမူနာ graph ေလးကို ၾကည္႔ပါ ..
ပံုမွာ ျမင္ရတဲ့ အတိုင္း ေျပာင္းျပန္ အခ်ိဳးက် curve ေလး ျပန္ထည္႔ ေပးျခင္း သေဘာတရားနဲ႔ ျပန္လည္ ခ်ိန္ညိွႏိုင္ပါတယ္ ။ ဒီလို လုပ္ေဆာင္ ခ်က္ကို Gamma လို႔ ေခၚပါတယ္ ။
Autodesk 3ds max software မွာ ပံုမွန္ အားျဖင့္ အထက္မွာ ေဖာ္ျပခဲ့ သလို system gamma & input gamma default value ေတြ ကို 1 အေနနဲ႔ linear space အေနနဲ႔ သြားပါတယ္ ။ အဓိကက ကၽြန္ေတာ္တို႔ ေခၚသြင္းမယ့္ material texture ေတြ ဟာ အမ်ားစုက digital camera ေတြ က မွ ရုိက္ယူထားျပီး edit လုပ္ထားတာ ေတြ အမ်ားဆံုးပါ ။ digital camera ေတြ ထဲမွာ ရုိက္ယူလိုက္တဲ့ ပံုရိပ္ေတြ ကို gamma 1 အေနနဲ႔ ပဲ ဖဖ္းပါတယ္ ။ျပီးမွ gamma 2.2 auto ေျပာင္းေပးလိုက္ပါတယ္ ။ Raw image ေတြ မွသာ 1 နဲ႔ ထုတ္ေပးေလ့ရွိပါတယ္ ။ ဒါေၾကာင့္ ကၽြန္ေတာ္တို႔ ေခၚသြင္းမယ့္ ပံုေတြ အမ်ားစုက ကိုယ္ပိုင္ gamma 2.2 ရွိျပီး သားပါ ။ 3ds max system မွာ input အေနနဲ႔ 1 လို႔ ယူဆ ျပီး gamma 2.2 images ေတြကို ေခၚသြင္း ျပီး system gamma တန္ဖိုး 1 အတိုင္းပဲ screen မွာ ေဖာ္ျပတဲ့ အတြက္ computer screen မွာ ျမင္ရတဲ့ texture အရည္အေသြးထက္ 3ds max material အေနနဲ႔ ေဖာ္ျပ render လုပ္တဲ့ အခါ ပိုျပီး Dark ျဖစ္ေနတာ ကို သတိထား ၾကည္႔ရင္ ျမင္ႏိုင္ပါတယ္ ။
HDRI , Normal map ,bump map ..စသျဖင့္ file အမ်ိဳးအစားေတြက ေတာ့ နဂိုတည္းက gamma value 1 ျဖစ္ေနတဲ့ အတြက္ ျပႆနာ မရွိပါဘူး ။ ထို႔ အတူ color ေတြ အေနနဲ႔ လဲ system gamma 1 အေနနဲ႔ပဲ ဆိုေတာ့ အခုနက material ေတြ လိုပဲ dark ျဖစ္ေနပါလိမ့္မယ္ ။
Conclusion
ကၽြန္ေတာ္တို႔ gamma ကို 2.2 ေျပာင္း correction လုပ္ျပီး စမယ္ ( ပိုျပီး လင္းတဲ့ အေျခအေန ) ဆိုရင္ပဲ ျဖစ္ျဖစ္
gamma ကို 1 ပဲထား စမယ္ ( ေမွာင္တဲ့ အေျခအေန ) ဆိုရင္ပဲ ျဖစ္ျဖစ္ ေနာက္ဆုံး Result ကေတာ့ realistic ျဖစ္မယ့္ အေျခအေန ကိုပဲ ဦးတည္ ျပီးေတာ့ သြားမွာ ျဖစ္တဲ့ အတြက္ အတူတူ ပါပဲ ။
လက္ရွိ ကိုယ့္ ဟာကိုယ္ပဲ render လုပ္ client ကို ပဲ ျပ ဆိုရင္ေတာ့ ဒီတိုင္းပဲ ဆက္လုပ္လဲ အဆင္ေျပပါတယ္ ။
Compositer ေတြ အေနနဲ႔ ကေတာ့ beauty pass ရေအာင္ render elements ေတြ ျပန္ထပ္ရမွာ ျဖစ္တဲ့ အတြက္ မျဖစ္မေန သံုးဖို႔ လိုပါမယ္ ။
ကၽြန္ေတာ့္ အေနနဲ႔ လည္း Compositor ေတြ လို အထိ လုပ္ေနရတာ မဟုတ္ပဲ render ထုတ္ postproduction လုပ္ အဲဒီ အထိပဲ ဆိုေတာ့ ဒီအတိုင္းပဲ သံုးလို႔ ေတာ့ အဆင္ေျပပါတယ္ ။
ဒါေပမယ့္ ကၽြန္ေတာ္ ဒီ အေၾကာင္းသိတဲ့ အခ်ိန္က စျပီး gamma setup 2.2 နဲ႔ linear workflow ကို သံုးပါတယ္ ။
အဓိက အခ်က္ ၂ ခ်က္ ရွိပါတယ္ ။
၁ ။ gamma value 1 အေနနဲ႔ ေမွာင္ေနတာ က စျပီး lighting ေတြ ခ်ိန္မယ္ဆိုရင္ light intensity ေတြ အမ်ားၾကီးတိုး ရမယ္ light ေတြ ပိုလိုမယ္ ဒါေတြေၾကာင့္ shadow ေတြ ပိုတြက္ ရမယ္ …memory ပိုသံုးရသလို rendering times လဲ ပို ၾကာေစပါတယ္ ။
ဥပမာ - ကိုယ္လိုခ်င္တဲ့ Result ရဖို႔ အတြက္ gamma value 1 နဲ႔ သြားမယ္ ဆိုရင္ အဆင့္ 10 ဆင့္သြားရမယ္ ဆိုရင္
LWF (gamma 2.2 ) နဲ႔ ဆိုရင္ 5 ဆင့္ ေလာက္ပဲ သြားရမယ့္ သေဘာပါ ။
၂ ။ ကိုယ္ က တစ္ခ်ိန္ မွာ ဒီထက္ပိုျပီး တိုးတက္ေအာင္ သြားဖို႔ ရည္ရြယ္ထားတဲ့ အတြက္ professional pipe line မွာ compositor ေတြ နဲ႔ ဆက္ဆံရမယ္ ထို႔ အတူ ကိုယ္လဲ တစ္ခ်ိဳ႔ ဟာေလးေတြ ကိုယ္တိုင္ ဖန္တီးခ်င္မယ္ ဆိုရင္ အခက္အခဲ ေတြ နည္းတာမို႔ ပါ ။
ေနာက္ အေရးၾကီးတဲ့ အခ်က္ေလး ကေတာ့ ကၽြန္ေတာ္တို႔ realistic lighting units ေတြ နဲ႔ actual dimension ေတြ သံုးျပီး ဆြဲထားတဲ့ အခန္းေတြ မွာ render လုပ္တဲ့ အခါ light ကို တစ္ကယ္ ရွိရမွာ ထက္ အမ်ားၾကီး ျမွင့္ျပီး သံုးေနရပါတယ္ ။ အဲဒီ အတြက္ တစ္ခ်ိဳ႔ ေနရာေတြ မွာ burn တာေတြ လဲ ပါလာတတ္ပါတယ္ ။ အဓိက ေျပာခ်င္တာက ေတာ့ အဲလို အျပင္ အတိုင္း ျဖစ္ခ်င္ရင္ gamma setup 2.2 နဲ႔ စမွ light intensity အမ်ားၾကီး တင္ဖို႔ မလိုသလို သူတစ္ခုတည္း နဲ႔ မျပီးပါဘူး ။ေနာက္ တစ္ခုက vray physical camera ကို တြဲသံုး မွ ျဖစ္မွာ ပါ ။
LWF (gamma 2.2 ) + vray physical camera ကို တြဲ သံုးမယ္ ဆိုရင္ တစ္ကယ့္ lighting units ေတြ နဲ႔ အနီးစပ္ ဆံုး အဆင္ေျပပါတယ္ ။ ပိုျပီး realistic approach လဲ ဆန္ပါတယ္ ။
အခ်ိန္ရရင္ 3ds max နဲ႔ vray မွာ gamma 2.2 setup ဘယ္လို လုပ္ သလဲ ဆိုတာ ေရးေပးပါ့မယ္ ။ lighting units ေတြ နဲ႔ ပတ္သတ္ျပီး ကၽြန္ေတာ္ ေရးထားတဲ့ lighting နဲ႔ ပတ္သတ္တဲ့ ပိုစ္ေတြ မွာ ေလ့လာ ႏိုင္ပါတယ္ ။
ေလးစားစြာျဖင့္
ေ၀ျဖိဳး