Showing posts with label Software. Show all posts
Showing posts with label Software. Show all posts

Saturday, December 13, 2025

pereloader.bin ပြဿနာ

 သင်တန်းတွေမှာ software ကိုသင်ကြားနေပေမယ့် တကယ်လက်တွေ့မှာ အသုံးဝင်ပြီး အများဆုံးကြုံနေရတဲ့ pereloader ပြသာနာကို မသင်ကြားကြသလို ပြသာနာရဲ့လမ်းစကိုလည်း theory solution မလုပ်နိုင်ကြပါဘူး theory solution ကိုမသိရင် practical မှာ ငါတို့တွေ ဘယ်လိုရှင်းကြမလဲ

ဒီ Log ကို beginner step အပါအဝင် trainer step မှာရှိတဲ့ သူများကို ရည်ညွှန်းရေးသားပေးပါမယ်
MTK Chip ကိုသုံးထားတယ် ဘယ်ဖုန်းမှာမဆို Firmware ရေးသားသည့်အခါ firmware ရဲ့ first stage အနေနဲ့ pereloader ပြီးမှသာ တခြား partition တွေ Raw တွေစီထားတာကို သတိထားမိကြမယ်ထင်ပါတယ် ဘာ့ကြောင့် pereloader.bin ကို first stage မှာထားရတာလဲ အကြောင်းရှိပါတယ်
ဒီနေရာမှာ pereloader.bin ရဲ့အကြောင်းကို ရှင်းလင်းပေးပါရစေ ဖွဲ့စည်းပုံတည်ဆောက်ပုံကိုမသိရင် theory solution ကိုလည်းရှာထုတ်နိုင်မှာမဟုတ်သလို practical မှာလည်းဖြေရှင်းနိုင်မှာမဟုတ်ပါဘူး
အခန်း ( 1 )
Pereloader ရဲ့အကျယ်ချုပ်
- ငါတို့ဖုန်းတွေကို ပါဝါဖွင့်လို့ပဲဖြစ်ဖြစ် ( power on ) | ပြန်လည်စတင်လို့ပဲဖြစ်ဖြစ် ( Reboot device or reset device) လုပ်လိုက်တဲ့အချိန်မှာ မြင်​​နေရတဲ့အပိုင်းကို First Stage Bootloader လို့ခေါ်ပါတယ် ဒီလို first stage Bootloader မှာ Soc ( system-on-chip) ထဲက Boot Rom ( Boot Rom ဆိုတာ Brom တနည်း MTK ဖုန်းတွေကို firmware ရေးသားသည့်အခါ ခေါ်သုံးရသည့် Download Mode ကိုဆိုလိုပါတယ်) ကနေ တိုက်ရိုက် pust လုပ်ပါတယ် MTK Device တွေအပါအဝင် Device တိုင်းမှာ Development လုပ်နိုင်ဖို့ Repair System လုပ်နိုင်ဖို့ download mode ကို သုံးထားတဲ့ CPU ပေါ်မူတည်ပြီး Boot Rom ကို ပုံသေပရိုဂရမ်တခုအဖြစ်ထည့်သွင်းတည်ဆောက်ထားပါတယ် Boot Rom သည် pereloader ကို ဘယ်ကနေစပြီးအလုပ်လုပ်ရမယ် ဘယ်လိုလုပ်ဆောင်ရမယ်ဆိုတာကို အဆင့်ဆင့် ညွှန်ကြားပေးပါတယ် beginner step အနေနဲ့ ဒီစာကိုဖတ်လို့ရှုပ်မယ်လို့မြင်မိပါတယ် ( အခုမှစလေ့လာတဲ့သူတွေအနေနဲ့ MTK ဖုန်းအဟောင်းတလုံးကိုဖြစ်ဖြစ် ဖုန်းအသစ်တလုံးကိုဖြစ်ဖြစ် firmware ရေးသည့်အခါ system ထဲမှာရှိတဲ့ partition တွေကို တခုချင်းသို့မဟုတ် format all ဖြင့်ရိုက်ပြီး pereloader.bin ကိုကျော်ပြီး တခြား partition ကို ရေးသည့်အခါ fail တာမျိုးကို ကြုံရမှာဖြစ်တယ် pereloader.bin ကိုကျော်ပြီး flash/write လုပ်ရင် နောက် partition တွေကို အစီစဥ်တကျ မလုပ်နိုင်တော့ပါဘူး) ထပ်ရေးရင် ရှည်မှာဖြစ်တာကြောင့် ဒီမှာရပ်ပါရစေ
အခန်း ( 2 )
- Pereloader သည် Hardware initialization တွင်အရေးပါသော အစိတ်အပိုင်းတခု
ဒီနေရာမှာ android kernal ကိုမသိရင် ဖတ်နေရင်းနဲ့ရှုပ်နေတက်တာကြောင့် kernal ပိုင်းရေးထားသူများထံ မှီငြမ်းဖို့အကြံပြုပါသည် Operation System ( kernal ) Hardware အစိတ်အပိုင်းဖြစ်သည့် Ram,timer,UART ( serial port) ,USBController,emmc/UFS ( storage) တွေကိုလည်း ပြင်ဆင်ပေးပါတယ် ဘယ်လိုပြင်ဆင်ပေးပါသလဲ ( Ready to step by step) အနေအထားကိုရောက်အောင်ပြင်ဆင်ပေးထားပါတယ်)
Pereloader ရဲ့အရေးပါပုံအကြောင်းအရာကို အကျယ်ချုံ့ရေးသားခြင်းဖြစ်တာကြောင့် step by step သာလေ့လာစေလိုပါသည် အပေါ်တွင်ရေးသားခဲ့သောအကြောင်းအရာအား နားလည်ပါက အခုထပ်မံရေးသားမည့် အကြောင်းအရာကို ဆက်လက်လေ့လာနိုင်ပါသည် စာများများဖတ်လေ အနှစ်သာရများလေဖြစ်သောကြောင့် စာများများဖတ်ပြီး practical အပိုင်းအား ဆက်လက်လုပ်ကိုင်နိုင်မည်ဖြစ်သည်
အခန်း ( 3)
- pereloader ဘုတ်အဖွဲ့အစည်း ( Next step Loading)
- pereloader သည် emmc rom or fimware ထဲမှာရှိတဲ့ lk.bin ( Main kernel,Little Kernel)ကို emmc ထဲက သီးသန့်နေရာကနေ ရှာဖွေဖတ်ယူပြီး Ram ပေါ်သို့တင်ကာအလုပ်လုပ်ပါတယ် တနည်း lk.bin သည် kernel ကို စတင်ပြီး Android system ကို boot လုပ်ပေးတယ်လို့လည်း မှတ်ယူလို့ရပါတယ်
အခန်း ( 4)
Download Mode
- ကျွန်တော်တို့ Mtk device တွေကို firmware ရေးသားသည့်အခါ Sp flash tool or thirty party tool တွေကိုအသုံးပြုပြီး upgrade firmware ရေးသားကြပါတယ် အခုလို firmware ရေးသားခြင်း,unlock လုပ်ခြင်းစသည်တို့ကို လုပ်ဆောင်နိုင်စေရန် Pc နှင့် device ကြား ဆက်သွယ်နိုင်စေရန် Brom mode ကို pereloader မှ ဆက်သွယ်ပေးပါတယ် တချို့ကြုံဖူးကြမယ်ထင်ပါတယ် brom mode ( download mode) ကိုခေါ်သုံးသည့်အခါ device မသိတာ brom mode မှာရှိမနေခြင်းသည် pereloader dead ဖြစ်နေတက်ခြင်းကြောင့်ဖြစ်သည် အကြောင်းမှာ system ထဲတွင် pereloader.bin ကိုမှားဖျက်ခြင်း သို့မဟုတ် ရှိမနေခြင်းကြောင့်ဖြစ်သည်
Pereloader ရဲ့ဆက်စပ်ပြသာနာ
- pereloader.bin မရှိတော့ရင် စက်ကအပြီးတိုင်ပွင့်မလာတာမျိုးကြုံရနိုင်ပါတယ် အဲ့အခြေအနေကို pereloader dead/ bricked phone လို့သတ်မှတ်လို့ရပါတယ်
- ဖုန်း vibration မလာတာမျိုး charging LED, pc မသိတာမျိုး ကြုံရနိုင်ပါတယ်
Software မှာပိုင်ပိုင်နိုင်နိုင်ဖြစ်လာဖို့ဆိုတာ အခြေခံအုပ်မြစ်ကိုသိရန်လိုအပ်ပါသည် Technician သည် အခြေခံရှိရန်လိုအပ်သောကြောင့် အခြေခံရှိမှသာ advance cource များကိုမှီငြမ်းနိုင်မည်ဖြစ်သည် မူရင်းရေးသားထားသောကြောင့် copy ယူသုံးခြင်းဖွင့်မပြုပါ

Wednesday, December 10, 2025

Inversion of Control (IoC)

Dependency Injection အကြောင်းပြောရင် IoC က တွဲပါလာတယ် တချို.က ၂ခုကို တူတူပဲလို.ထင်ကြတယ်။ DI နဲ. IoC က related ဖြစ်တယ် အတူတူတော့မဟုတ်ဘူး။

Inversion of Control လို.ပြောရင် Control ဆိုတာဘာကိုလဲဆိုတာအရင်ပြောရမယ်။ Control ဆိုတာ flow of control, ဆိုချင်တာက application က code flow, method flow, object creation အစရှိတာတွေကိုပြောတာ။ အဲ့ကောင်တွေကို ပြောင်းပြန် ဖြစ်စေတာကို iverse လုပ်တယ်လို.ခေါ်တယ်။ ဒါကြောင့် inversion of control လို.ခေါ်တာ။ ဘယ်လိုတုန်းဆိုရင် ပထမ DI example မှာတုန်းက Car ဖို.လိုအပ်တဲ့ Engine ကို Car က မဆောက်ပဲ ဆောက်ပြီးသား engine object ကို constructor parameter အနေနဲ. လက်ခံတယ်။ အဲ့ဒီလိုတဲ့ Engine ကိုကျတော့ ဘယ်သူကဆောက်ပေးမှာလဲဆိုတော့ framework က ဆောက်ပေးမယ် ။ ဒါဆိုရင် ပထမ DI မှာ ပြတဲ့ ဥပမာမှာ engine ကိုဆောက်တာသည် car တာဝန်မဟုတ်တော့ပဲနဲ. framework တာဝန်ဖြစ်သွားတယ်၊ Object creation ဖြစ်တဲ့ (control ကို) Car သည် မလုပ်တော့ပဲနဲ. framework ကလုပ်သွားမယ် ဒါကို inversion of control လို.ခေါ်တယ်။ Car က object creation(Engine object) ကို control လုပ်ရာကနေ framework တာဝန်ဖြစ်သွားတယ်၊ Object creation (control) သည် Car ကနေ framework ဘက်ကို ပြောင်းသွားတယ်။ ဒါကို inversion of control လို.ခေါ်တယ်။
ဒီနေရာမှာ မေးခွန်းတခုက Framework က ဘာလို. Object creation flow ကို control လုပ်တာလဲ ဘာပိုကောင်းလာလဲပေါ့။ ဒီနေရာမှာ Hollywood principle ကိုပြောဖို.လိုလာတယ်။ Hollywood principle ကို တခါတလေ Inversion of Control လို.လဲသုံးတယ်။ Principle က ဘာလဲဆိုတော့ "Don't call us, we'll call you" ဆိုတာပဲ။
Hollywood ကို လူတွေက သိချင်တာတွေ ဖုန်းဆက်လှမ်းမေးတော့ တခုခုဆို call အရမ်းများတယ် အဲ့တော့ စုံစမ်းတဲ့လူတွေ ဖုန်းနံပါတ်ကိုတောင်းထားလိုက်တယ် သူတို.လိုချင်တဲ့ အချက်အလက် ရောက်တာဆိုရင် လှမ်းအကြောင်းကြားတယ်။ ဒီနေရာမှာ API နဲ. framework အကြောင်းရှင်းပြဖို.လိုလာတယ်။
API ဆိုတာကိုက လိုချင်တာလေးကို လှမ်းခေါ်လိုက်တာမျိုး။ Framework ကျတော့ ကိုယ်ရေးထားတဲ့ code တွေကို သူက ခေါ်သွားတာ API ထက်ပိုအဆင့်မြင့်တယ် အဲ့တော့ user က လိုအပ်တဲ့ module တွေ code တွေပေးလိုက်မယ် သူ.ရဲ. template algorithm အတိုင်းခေါ်သွားမယ်။ Client က အကုန်လုံးလုပ်စရာမလိုတော့ဘူး ဥပမာ Object creation လို life cycle management လို ကိစ္စတွေ ခေါင်းစားစရာမလိုတော့ဘူး ။ ဥပမာ Car က engine ကိုလိုတယ်ဆိုရင် engine ကို Car မဆောက်ခင်မှာ framework က ဆောက်ပေးလိုက်မယ်၊ ဒါဆို Object creation နောက် engine ကိုဘယ်အချိန်မှာ deallocate လုပ်မလဲဆိုတာ framework က စဉ်းစားမယ် အဲ့တာတွေကို life cycle management လို.ခေါ်တာ။
မေးစရာရှိတယ် ဘာလို. framework က အဲ့တာတွေလုပ်ပေးနေရတာလဲဆိုရင် loose copuling နဲ. high cohesion ဖြစ်အောင်လို. loose copuling ကတော့ရှင်းပြီးပီ high cohesion ဆိုတာ class တခုက သူ. function တွေ method တွေအပေါ်များများ မှီခိုလေ သုံးလေ cohesion များလေပေါ့ ကောင်းတယ်ပေါ့။ အဲ့လိုရချင်လို. framework ကိုတချို.အလုပ်တွေ လုပ်ခိုင်းလိုက်တာ။ Car သည် engine ကို တိုက်ရိုက် မဆောက်ပဲ framework ကိုပေးဆောက်လိုက်တဲ့အခါ loose coupling ဖြစ်သွားတယ်။ Engine တခုတည်းမဟုတ်ပဲ သူ.က ဆင်းလာမဲ့ hierarchy ပါနောက်တချိန်မှာ အစားထိုးပေးလို.ရသွားမယ်။ နောက်တခုက car သည် သူနဲ.မဆိုင်တဲ့ engine creation ကိုမလုပ်ရတော့အတွက် သူများကို မှီခိုရတဲ့ code (object creation) နည်းသွားတယ် အဲ့တော့ cohesion တက်လာမယ်။
ခုနက Object creation flow ကို application code ကနေ ထိန်းတာမဟုတ်ပဲ framework ကနေ ထိန်းတဲ့ကောင်တွေကို IoC container လို.ခေါ်တယ်။ အဲ့လိုလုပ်တဲ့ နည်းက အဓိက အားဖြင့်
Service Locator Design Pattern
Factory Design Pattern
Dependency Injection Pattern
တွေသုံးပြီးလုပ်လို.ရတယ်။ ဆိုချင်တာက IoC container ဆိုတိုင်း DI ပါစရာမလိုဘူးပြောတာ၊ Flow of control ကို invert လုပ်ပေးရင်ရပြီ ။ Service locator မှာဆိုရင် သူက လိုချင်တဲ့ dependency တွေကို lookup ခေါ်ပြီး client က လုပ်နေရတာ အဲ့တော့သိပ်အဆင်မပြေဘူး Factory ကလဲ ဒီအတိုင်းပဲ အဲ့တော့ DI ကိုသုံးတယ်။
DI မှာကျတော့ Framework or container က configuration တွေကိုကြည့်ပီး ဘယ် Object တွေ သည် ဘယ် dependency ရှိတယ် ဘယ် ကောင့်ကို အရင်ဆောက်ရမယ်။ ဥပမာ A သည် B ကိုလိုတယ် B သည် C ကို လိုတယ် ဒါဆိုရင် dependency graph အရ C->B->A C ကိုအရင်ဆောက် B ထဲကို inject ထဲ့ပေး B ရလာမှ A ကိုဆောက်ပေးအဲ့လိုလုပ်သွားတယ်။ Cyclic တော့မရဘူး၊
Inject လုပ်တဲ့နည်းက အဓိက ၃ မျိုးရှိတယ်
Constructor Injection ( Dependency လိုတဲ့ကောင်တွေကို Constructor မှာ parameter အနေဲ.ထားရင် framework က အဲဒီလိုတဲ့ dependency တွေကိုအရင်ဆောက် ပြီးမှ constructor ထဲကိုထဲ့ပေးလိုက်တာ)
Setter injection( လိုတဲ့ dependency ကို setter တွေသုံးပြီး ထဲ့ပေးလိုက်တာ)
Interface injection( Interface အနေနဲ.ထားတဲ့ dependency တွေကို အဲ့ interface ကို implement လုပ်ထားတဲ့ ကိုက်ညီတဲ့ dependency ထဲ့ပေးပီး inject လုပ်တာ။
ခုနက Injection တွေကို run time မှာလုပ်တာရှိတယ် ဥပမာ Spring , နောက် android dagger လိုကောင်တွေဆို compile time မှာလုပ်တယ်။ runtime မှာလုပ်ရင် peformance နည်းနည်းထိလို. android လို resource နည်းတဲ့ကောင်တွေကျတော့ compile time မှာကတည်းကလုပ်တယ်လို.ယူဆရမယ်။
(အတော်ရှုပ်သွားမယ်လို.လဲ ထင်ပါတယ်)

PC Game ဆော့မယ့်သူတိုင်း သိထားသင့်တဲ့ Graphic Setting တွေရဲ့ အဓိပ္ပါယ်များ 🛠️⚙️ Part (2)


===============
ပထမတစ်ခေါက် Game settingတွေနဲ့ပတ်သတ်ပြီးတင်တုန်းက အားပေးကြတဲ့အတွက်ကျေးဇူးအများကြီးတင်ပါတယ်ခင်ဗျ... 🥰

ခုဆက်ပြီး ကျန်သေးတဲ့ settin‌g တွေအကြောင်းကို တင်ပေးလိုက်ပါတယ်... 

Draw Distance / Draw Range (ရေးဆွဲမှု အကွာအဝေး)
ရေးဆွဲမှု အကွာအဝေး သို့မဟုတ် မြင်ကွင်းအဝေးထိ ရေးဆွဲခြင်း

အရာဝတ္ထုများ (Objects)၊ သစ်ပင်များ (Trees)၊ မြက်များ (Grass)၊ အရိပ်များ (Shadows)၊ နှင့် အသေးစိတ် အစိတ်အပိုင်းများ (Details) ကို ကစားသူ (Player) ဆီကနေ မည်မျှ အကွာအဝေးအထိ ကွန်ပျူတာ (GPU) က ရေးဆွဲ (Render) ပြီး မျက်နှာပြင်ပေါ် ပြသပေးမလဲ ဆိုတာကို သတ်မှတ်တဲ့ Setting ဖြစ်ပါတယ်။

ဤ Setting ကို မြှင့်တင်လေ၊ အဝေးက အရာဝတ္ထုတွေကို ပိုမိုစောစီးစွာ ပိုမိုအသေးစိတ်စွာ မြင်ရလေ ဖြစ်ပါတယ်။


FOV (Field of View)
မြင်ကွင်းကျယ်

FOV သည် ဂိမ်းထဲရှိ ကင်မရာ (သို့မဟုတ် ကစားသူ၏ မျက်လုံး) မှတစ်ဆင့် တစ်ပြိုင်နက်တည်း မြင်နိုင်သော ပတ်ဝန်းကျင် အကျယ်အဝန်း ကို ညွှန်းဆိုခြင်း ဖြစ်ပါသည်။ သူ့ကို ဒီဂရီ (Degrees) ဖြင့် ပြသလေ့ရှိပါသည်။

⚠️အရေးကြီးသော အချက်များ
Console နှင့် PC ကွာခြားချက်: Console ဂိမ်းများသည် TV ဖြင့် ဆော့ရသောကြောင့် FOV ကို 60 မှ 85 ကြားတွင်သာ ထားလေ့ရှိပြီး၊ PC ဂိမ်းများမှာမူ Player သည် Monitor နှင့် ပိုမိုနီးကပ်စွာ ထိုင်သောကြောင့် 90 မှ 110 ကို အများဆုံး အသုံးပြုကြပါသည်။
FOV တန်ဖိုးကို မြှင့်တင်လိုက်ပါက တစ်ပြိုင်နက်တည်း Render လုပ်ရမယ့် မြင်ကွင်းဧရိယာ ပိုများလာတဲ့အတွက် FPS (Frame Rate) ကို အနည်းငယ် လျော့ကျစေနိုင်ပါတယ်။ FOV ကို ချိန်ညှိခြင်းဟာ ကစားသူရဲ့ ကိုယ်တိုင်ရွေးချယ်မှု (Personal Preference)၊ Monitor အရွယ်အစား နှင့် ကစားနေသော ဂိမ်းအမျိုးအစား (ဥပမာ- FPS Shooter သမားများက FOV မြင့်တာကို ပိုနှစ်သက်ပါတယ်) ပေါ်မူတည်ပါတယ်။ 


Depth of Field (DOF)
အနက်ရှိုင်း အတိုင်းအတာ သို့မဟုတ် မြင်ကွင်းအနက်

DOF ဆိုသည်မှာ ကင်မရာမှ အာရုံစူးစိုက်ထားသော နေရာ (Focal Point) ရှိ အရာဝတ္ထုများသည် ပြတ်သားပြီး ကြည်လင်နေစေရန် (In Focus) လုပ်ဆောင်ပေးကာ၊ အဲဒီ Focal Point ရဲ့ အရှေ့နဲ့ အနောက် မှာရှိတဲ့ အရာဝတ္ထုများ (Background/Foreground) ကိုမူ မှုန်ဝါးသွားစေရန် (Blurred / Out of Focus) ပြုလုပ်ပေးသည့် setting ဖြစ်ပါသည်။



Tessellation (မျက်နှာပြင် အသေးစိတ်ခွဲခြမ်းခြင်း)
အရာဝတ္ထုများ (Objects) ၏ မျက်နှာပြင်များကို ပိုမို အသေးစိတ်သော Polygons များအဖြစ် ပိုင်းခြားခြင်းဖြင့် ပုံသဏ္ဌာန်များကို ပိုမို ကြွတက်ထင်ရှားပြီး သုံးဖက်မြင် (3D) ဆန်စေပါသည်။ ဥပမာ- ကျောက်တုံးမျက်နှာပြင်များကို ပိုမို ကြမ်းတမ်းပြီး လက်တွေ့ကျအောင် လုပ်ဆောင်ပေးသည်။
ရုပ်ထွက် (Fidelity) ကို များစွာ မြှင့်တင်ပေးသော်လည်း GPU usage ပိုယူစေပါသည်။

Motion Blur (လှုပ်ရှားမှု မှုန်ဝါးခြင်း)
ကင်မရာ သို့မဟုတ် အရာဝတ္ထုများ လျင်မြန်စွာ လှုပ်ရှားသည့်အခါ ရုပ်ပုံများကို ရုပ်ရှင်များကဲ့သို့ မှုန်ဝါးသွားစေ သော Effect ဖြစ်သည်။
ရုပ်ရှင်ဆန်သော အမြင်အာရုံကို ပေးသည်။
FPS နိမ့်နေပါက ရုပ်ထွက်ကို ပိုဆိုးစေနိုင်ပြီး၊ တချို့ကစားသမားများအတွက် ခေါင်းမူးခြင်း (Motion Sickness) ကို ဖြစ်စေနိုင်သောကြောင့် များသောအားဖြင့် ပိတ်ထားကြသည်။ (ကျွနတော်ဆို အမြဲပိတ် 😛)
Reflections (ရောင်ပြန်ဟပ်ခြင်း)
ရေ၊ မှန်၊ သတ္တု သို့မဟုတ် စိုစွတ်သော မျက်နှာပြင်များပေါ်တွင် ပတ်ဝန်းကျင်မှ အလင်းနှင့် ပုံရိပ်များကို ပြန်ဟပ်ခြင်း ကို ပြသသော setting ဖြစ်သည်။
(ဥပမာ- Screen Space Reflections, SSR)
အရမ်းကို Realism (လက်တွေ့ဆန်မှု)ဖြစ်စေသော်လည်း Performance ကို အများဆုံး ထိခိုက်စေနိုင်သည့် Setting တစ်ခုဖြစ်သည်။
Volumetric Lighting / Fog (ထုထည် အလင်းရောင် / မြူခိုး)
အလင်းတန်းများ သို့မဟုတ် မြူခိုးများသည် လေထဲမှာ ထုထည်ရှိသော အရာဝတ္ထုများကဲ့သို့ ထင်ရှားစွာ မြင်တွေ့ရအောင် ဖန်တီးခြင်း ဖြစ်သည်။
(ဥပမာ- သစ်ပင်များကြားမှ ဖြာကျလာသော နေရောင်ခြည်တန်းများ)
ပတ်ဝန်းကျင်ကို ပိုမို လှပပြီး လက်တွေ့ကျစေသော်လည်း FPS များစွာကျနိုင်သည်။
HUD (Heads-Up Display)
ဂိမ်းမျက်နှာပြင်ပေါ်တွင် ကစားသူအတွက် အရေးကြီးသော အချက်အလက်များ (ဥပမာ- ကျန်းမာရေး (Health Bar)၊ မြေပုံငယ် (Minimap)၊ ကျည်ဆန်အရေအတွက် (Ammo Count)) တွေကို ပြသပေးသော Interface များ ဖြစ်ပါသည်။
HUD ကို လုံးဝပိတ်ခြင်း၊ သို့မဟုတ် တစ်ချို့အရာများသာ (ဥပမာ- Minimap ကိုသာ ပိတ်ခြင်း) ချိန်ညှိနိုင်ပါသည်။ (Screen Capture နှင့် Gameplay Videos ရိုက်ကူးသူများ အများဆုံး အသုံးပြုသည်။)
Subtitles (စာတန်းထိုး)
ဂိမ်းထဲရှိ ဇာတ်ကောင်များ၏ စကားပြောသံများ သို့မဟုတ် နောက်ခံအသံများကို စာသားဖြင့် ပြသပေးခြင်း ဖြစ်သည်။
ဖွင့်/ပိတ် ခြင်း၊ စာသားအရွယ်အစား၊ စာသားနောက်ခံ (Background) အရောင်များကိုပါ ချိန်ညှိနိုင်ပါသည်။
Sensitivity (ထိတွေ့မှု အာရုံခံနိုင်စွမ်း)
Mouse, Controller သို့မဟုတ် Keyboard ကို ထိန်းချုပ်သည့်အခါ ဂိမ်းထဲရှိ ကင်မရာ/ဇာတ်ကောင် မည်မျှ လျင်မြန်စွာ လှည့်ပတ်မည် ကို ချိန်ညှိခြင်း ဖြစ်သည်။

အဓိကအမျိုးအစားများ:
Mouse Sensitivity: Mouse ရွှေ့လျားမှုကို ထိန်းချုပ်သည်။
Aim Down Sights (ADS) Sensitivity: ချိန်ရွယ်နေစဉ် (Zoom လုပ်ထားစဉ်) ကင်မရာ ရွှေ့လျားမှုကို ထိန်းချုပ်သည်။
Draw Distance / Draw Range (ရေးဆွဲမှု အကွာအဝေး)
ရေးဆွဲမှု အကွာအဝေး သို့မဟုတ် မြင်ကွင်းအဝေးထိ ရေးဆွဲခြင်း

အရာဝတ္ထုများ (Objects)၊ သစ်ပင်များ (Trees)၊ မြက်များ (Grass)၊ အရိပ်များ (Shadows)၊ နှင့် အသေးစိတ် အစိတ်အပိုင်းများ (Details) ကို ကစားသူ (Player) ဆီကနေ မည်မျှ အကွာအဝေးအထိ ကွန်ပျူတာ (GPU) က ရေးဆွဲ (Render) ပြီး မျက်နှာပြင်ပေါ် ပြသပေးမလဲ ဆိုတာကို သတ်မှတ်တဲ့ Setting ဖြစ်ပါတယ်။

ဤ Setting ကို မြှင့်တင်လေ၊ အဝေးက အရာဝတ္ထုတွေကို ပိုမိုစောစီးစွာ ပိုမိုအသေးစိတ်စွာ မြင်ရလေ ဖြစ်ပါတယ်။













 




Wednesday, November 26, 2025

Graphic Setting တွေရဲ့ အဓိပ္ပါယ်များ 1

 PC Game ဆော့မယ့်သူတိုင်း သိထားသင့်တဲ့ Graphic Setting တွေရဲ့ အဓိပ္ပါယ်များ

🛠️⚙️
===============
ကျွန်တော်တို့တွေ PC Game အသစ်တစ်ခု စဆော့ပြီဆိုရင် Setting ဆီအရင်ပြေးတတ်ကြတဲ့သူတွေချည်းပါပဲ...
တကယ်လို့ ကိုယ်က ခုမှ PC game စဆော့မယ်ဆိုရင် ခုဖော်ပြမယ့် အသုံးအနှုန်းနဲ့ သူတို့လုပ်ဆောင်ပုံတွေကို အကျဉ်းဖျင်းသိရအောင် Game တိုင်းနီးပါးမှာပါတဲ့ အသုံးများတဲ့ Graphic Setting တွေကို ပုံနဲ့တကွ ရှင်းပြလိုက်ပါတယ်...
(သိချင်တာရှိလည်း မေးလို့ရပါတယ်)

🔰Resolution (ရုပ်ထွက်အရည်အသွေး / ပစ်ဆယ်လ်အရေအတွက်)

မျက်နှာပြင်တစ်ခုပေါ်ရှိ အလျားနှင့် ဒေါင်လိုက်ရှိသော ပစ်ဆယ်လ် (pixel) အရေအတွက် ကို ညွှန်းဆိုခြင်း ဖြစ်ပါသည်။ ဥပမာ - $1920 \times 1080$ (1080p)၊ $2560 \times 1440$ (1440p)၊ $3840 \times 2160$ (4K)။အရေအတွက် များလေ၊ ရုပ်ပုံ ပိုမို ကြည်လင်ပြတ်သားလေ ဖြစ်သော်လည်း ဂရပ်ဖစ်ကတ် (GPU) ပေါ်တွင် ဝန်ပိမှု ပိုများလာပါသည်။


🔰V-Sync (Vertical Synchronization) (ဒေါင်လိုက် ပုံဖော်မှုပြုခြင်း)

ဂိမ်းမှ ထုတ်ပေးသော Frame Rate (FPS) ကို မော်နီတာ၏ Refresh Rate (Hz) နှင့် ထပ်တူညီအောင် ချိန်ညှိပေးခြင်း ဖြစ်ပါသည်။
၎င်းကို ဖွင့်ထားခြင်းဖြင့် "Screen Tearing" မျက်နှာပြင်မှာ ကန့်လတ်ဖြတ် Graphic လိုင်တွေပျောက်ကုန်ပေမယ့် အနည်းငယ် Lag နိုင်ပါသည်။


🔰Anti-Aliasing (AA) (အနားသတ်များ ချောမွေ့အောင် ပြုလုပ်ခြင်း)

ဂိမ်းထဲရှိ အရာဝတ္ထုများ၏ အစွန်းအနားများ (edges) တွင် ဖြစ်ပေါ်နေတတ်သော လှေကားလို အထစ်တွေ (jagged / stair-step Aliasing) ကို ဖယ်ရှားပေးပါသည်။

ရုပ်ပုံများကို ပိုမို ချောမွေ့ သဘာဝကျအောင် ပြုလုပ်ပေးသော်လည်း Graphic ပိုစားသည်။ (MSAA, FXAA, TAA စသည်ဖြင့် အမျိုးမျိုးရှိသည်)


🔰Texture Quality (ပုံပန်းသဏ္ဌာန် အရည်အသွေး)

ဂိမ်းထဲရှိ အရာဝတ္ထုများ (ဥပမာ- မြေပြင်၊ နံရံ၊ ဇာတ်ကောင်၏ အဝတ်အစား) ပုံများ၏ ကြည်လင်ပြတ်သားမှုနှင့် အသေးစိတ် detail ကို ဖော်ပြပေးပါသည်။

အရည်အသွေး မြင့်လေ၊ ပုံပန်းသဏ္ဌာန်များ ပိုမို အသေးစိတ်ပြီး လှပလေ ဖြစ်သော်လည်း VRAM (Video Memory) အသုံးပြုမှုကို ပိုများပြားစေပါသည်။


🔰Shadow Quality (အရိပ် အရည်အသွေး)

ဂိမ်းထဲရှိ အရိပ်များ၏ ပုံသဏ္ဌာန်၊ ပြတ်သားမှုနှင့် အသေးစိတ်မှု ကို ဖော်ပြပါသည်။

အရိပ် အရည်အသွေး မြှင့်တင်ခြင်း သည် Game Graphic ကို ပိုသဘာဝဆန်စေသော်လည်း System Resource ကို အသုံးပြုရသောကြောင့် Frame Rate (FPS) ကို သိသိသာသာ ကျဆင်းစေနိုင်ပါသည်။


🔰Ambient Occlusion (AO) (ပတ်ဝန်းကျင်မှ အရိပ်ကျခြင်း)

အလင်းရောင် ရောက်ရှိရန် ခက်ခဲသောနေရာများ၊ အရာဝတ္ထုနှစ်ခု ဆုံစည်းရာနေရာများ တွင် အနက်ရောင် အရိပ်သေးသေးလေးများ (subtle shadows) ကို ဖန်တီးပေးခြင်း ဖြစ်ပါသည်။
အရပ်ရဲ့ အနက်၊ အနက်ရှိုင်း (depth) ကို ပိုမိုဖြစ်ပေါ်စေပြီး ရုပ်ပုံကို ပိုမို သဘာဝဆန်စေပါသည်။ (ဥပမာ- SSAO, HBAO)


🔰Anisotropic Filtering (AF) (ပုံပန်းသဏ္ဌာန် စစ်ထုတ်ခြင်း)

ကြည့်နေသော ထောင့်ချိုးနှင့် ဝေးကွာသော နေရာများရှိ ပုံပန်းသဏ္ဌာန်များ (Textures) မှုန်ဝါးခြင်းကို လျှော့ချရန် အသုံးပြုပါသည်။ ဥပမာ- လမ်းရှည်ကြီးတစ်ခုကို ကြည့်ရှုသောအခါ ဝေးလံသောနေရာများမှ ပုံပန်းသဏ္ဌာန်များကို ပိုမိုကြည်လင်ပြတ်သားစေရန် လုပ်ဆောင်ပေးပါသည်။

2x, 4x, 8x, 16x စသည်ဖြင့် ချိန်ညှိနိုင်ပြီး၊ 16x ကို သုံးခြင်းက အကောင်းဆုံးဖြစ်သော်လည်း Load ပိုပိစေပါသည်။