Wednesday, November 16, 2011

Linear work flow (LWF ) & Gamma 2.2

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 နဲ႔ ပတ္သတ္တဲ့ ပိုစ္ေတြ မွာ  ေလ့လာ ႏိုင္ပါတယ္ ။

ေလးစားစြာျဖင့္
ေ၀ျဖိဳး

ဆက္ဖတ္ရန္