ဖွံ့ဖြိုးတိုးတက်မှု တစ်နှစ်အကြာတွင်၊ Open Source ဂိမ်းအင်ဂျင် Ambient အသစ်၏ ပထမဆုံး ထွက်ရှိမှုကို တင်ပြသည်။ အင်ဂျင်သည် များစွာသောကစားသူဂိမ်းများနှင့် WebAssembly ကိုယ်စားပြုမှုအဖြစ် စုစည်းပြီး တင်ဆက်ရန်အတွက် WebGPU API ကို အသုံးပြုသည့် 3D အပလီကေးရှင်းများကို ဖန်တီးရန်အတွက် runtime ပေးပါသည်။ ကုဒ်ကို Rust ဖြင့် ရေးသားထားပြီး MIT လိုင်စင်အောက်တွင် ဖြန့်ဝေထားသည်။
Ambient ဖွံ့ဖြိုးတိုးတက်မှု၏ အဓိကပန်းတိုင်မှာ လူအများအပြားဂိမ်းများ ဖွံ့ဖြိုးတိုးတက်မှုကို ရိုးရှင်းစေပြီး ၎င်းတို့၏ဖန်တီးမှုကို တစ်ဦးတည်းကစားသူပရောဂျက်များထက် ပိုမိုခက်ခဲစေမည့် ကိရိယာများကို ပံ့ပိုးပေးရန်ဖြစ်သည်။ အင်ဂျင်သည် WebAssembly အလယ်အလတ်ကုဒ်သို့ စုစည်းဆောင်ရွက်နိုင်သည့် မည်သည့်ပရိုဂရမ်းမင်းဘာသာစကားများဖြင့်မဆို ဂိမ်းများနှင့် အက်ပ်လီကေးရှင်းများ ဖွံ့ဖြိုးတိုးတက်မှုကို ပံ့ပိုးပေးသည့် universal runtime ဖန်တီးရန် ရည်ရွယ်သည်။ သို့သော်၊ ပထမထွက်ရှိမှုသည် ယခုလောလောဆယ်တွင် Rust ဖွံ့ဖြိုးတိုးတက်မှုကိုသာ ထောက်ပံ့ပေးသည်။
အင်ဂျင်အသစ်၏ အဓိကအင်္ဂါရပ်များ
- ဖောက်ထွင်းမြင်ရသောကွန်ရက်ပံ့ပိုးမှု။ အင်ဂျင်သည် ကလိုင်းယင့်နှင့် ဆာဗာလုပ်ဆောင်ချက်များကို ပေါင်းစပ်ပြီး ကလိုင်းယင့်နှင့် ဆာဗာယုတ္တိကို ဖန်တီးရန်အတွက် လိုအပ်သော အစိတ်အပိုင်းများကို ပံ့ပိုးပေးကာ သုံးစွဲသူများတစ်လျှောက် ဆာဗာပြည်နယ်ကို အလိုအလျောက် တစ်ပြိုင်တည်း ချိန်ကိုက်စေသည်။ Backend နှင့် Frontend အကြား ကုဒ်လွှဲပြောင်းခြင်းကို ရိုးရှင်းလွယ်ကူစေသော ဘုံဒေတာမော်ဒယ်ကို client နှင့် server နှစ်ဖက်တွင် အသုံးပြုပါသည်။
- မယုံကြည်ထိုက်သောကုဒ်များ၏ လွှမ်းမိုးမှုကို ကန့်သတ်ရန် ၎င်း၏ကိုယ်ပိုင် သီးခြားပတ်ဝန်းကျင်တွင် မော်ဂျူးတစ်ခုစီကို လုပ်ဆောင်ခြင်း။ မော်ဂျူးတစ်ခုကို ဖျက်လိုက်ခြင်းသည် အပလီကေးရှင်းတစ်ခုလုံးကို ပျက်စီးစေမည်မဟုတ်ပါ။
- ဒေတာဆန်တဲ့ ဗိသုကာပညာ။ WASM module တစ်ခုစီမှ ကိုင်တွယ်နိုင်သော အစိတ်အပိုင်းများ၏ စနစ်အပေါ် အခြေခံ၍ ဒေတာမော်ဒယ်ကို ပံ့ပိုးပေးခြင်း။ ECS (Entity Component System) ဒီဇိုင်းပုံစံကို အသုံးပြုခြင်း။ ဆာဗာပေါ်ရှိ ဗဟိုချုပ်ကိုင်ထားသော ဒေတာဘေ့စ်တစ်ခုတွင် အစိတ်အပိုင်းအားလုံး၏ဒေတာကို သိမ်းဆည်းထားခြင်း၊ ၎င်း၏ဘေးထွက်သည် ဒေသဆိုင်ရာအခြေအနေကို ထည့်သွင်းစဉ်းစားပြီး ဒေတာကို ချဲ့ထွင်နိုင်စေသည့် ဖောက်သည်ထံ အလိုအလျောက်ပုံတူကူးထားသည့် အခြေအနေ။
- WebAssembly တွင် စုစည်းထားသော မည်သည့် ပရိုဂရမ်းမင်းဘာသာစကားဖြင့်မဆို ပတ်ဝန်းကျင် module များကို ဖန်တီးနိုင်သည် (ယခုအချိန်တွင် Rust ကိုသာ ပံ့ပိုးထားသည်)။
- Windows၊ macOS နှင့် Linux တို့တွင် လုပ်ဆောင်နိုင်သည့် universal executable files များကို ထုတ်ပေးနိုင်ပြီး client နှင့် server တစ်ခုအနေဖြင့် လုပ်ဆောင်နိုင်သည်။
- သင်၏ကိုယ်ပိုင်အစိတ်အပိုင်းများနှင့် "အယူအဆများ" (အစိတ်အပိုင်းများစုဆောင်းမှု) ကိုသတ်မှတ်ရန်စွမ်းရည်။ တူညီသော အစိတ်အပိုင်းများနှင့် သဘောတရားများကို အသုံးပြုသည့် ပရောဂျက်များသည် ဒေတာကို သီးခြားပရောဂျက်များတွင် အသုံးပြုရန်အတွက် အထူးဒီဇိုင်းထုတ်ထားခြင်းမဟုတ်သော်လည်း ဒေတာကို သယ်ဆောင်ရလွယ်ကူပြီး မျှဝေသုံးစွဲနိုင်စေပါသည်။
- .glb နှင့် .fbx အပါအဝင် ဖော်မတ်အမျိုးမျိုးဖြင့် အရင်းအမြစ်များစုစည်းမှုအတွက် ပံ့ပိုးမှု။ ကွန်ရက်ပေါ်ရှိ အရင်းအမြစ်များကို ဒေါင်းလုဒ်ဆွဲခြင်းကို တိုက်ရိုက်ကြည့်ရှုနိုင်ခြေ - client သည် ဆာဗာသို့ချိတ်ဆက်သည့်အခါ လိုအပ်သောအရင်းအမြစ်များအားလုံးကို လက်ခံရရှိနိုင်သည် (အရင်းအမြစ်အားလုံးကို တင်ရန်မစောင့်ဆိုင်းဘဲ စတင်ကစားနိုင်သည်)။ FBX နှင့် glTF မော်ဒယ်ဖော်မတ်များ၊ အမျိုးမျိုးသော အသံနှင့် ရုပ်ပုံဖော်မတ်များကို ပံ့ပိုးပေးသည်။
- တင်ဆက်မှုကို အရှိန်မြှင့်ရန်နှင့် GPU-side clipping နှင့် အသေးစိတ်အဆင့်ပြောင်းလဲမှုများကို ပံ့ပိုးပေးသည့် GPU ကို အသုံးပြုသည့် အဆင့်မြင့် rendering စနစ်။ ပုံသေအားဖြင့် ရုပ်ပိုင်းဆိုင်ရာအခြေခံထားသော ပုံဖေါ်ခြင်း (PBR) ကို အသုံးပြုသည်၊ ကာတွန်းနှင့် အရိပ်မြေပုံများကို ပံ့ပိုးပေးသည်။
- PhysX အင်ဂျင်ကို အခြေခံ၍ ရုပ်ပိုင်းဆိုင်ရာ လုပ်ငန်းစဉ်များကို ပုံဖော်ခြင်းအတွက် ပံ့ပိုးမှု။
- React နှင့်ဆင်တူသော user interface များတည်ဆောက်ရန်အတွက် စနစ်တစ်ခု။
- လက်ရှိပလက်ဖောင်းနှင့် သီးခြားကင်းသော ပေါင်းစည်းထည့်သွင်းမှုစနစ်။
- plug-in filter များပါရှိသော Spatial အသံစနစ်။
ဖွံ့ဖြိုးတိုးတက်မှုသည် alpha ဗားရှင်းအဆင့်တွင် ရှိနေသေးသည်။ အကောင်အထည်မဖော်ရသေးသည့်လုပ်ဆောင်ချက်များထဲတွင်၊ ဝဘ်ပေါ်တွင်လည်ပတ်နိုင်မှု၊ client API၊ multithreading ကိုစီမံခန့်ခွဲရန် API၊ အသုံးပြုသူအင်တာဖေ့စ်ဖန်တီးရန်စာကြည့်တိုက်၊ သင်၏ကိုယ်ပိုင်အရိပ်အာနိသင်ကိုအသုံးပြုရန်၊ အသံပံ့ပိုးမှု၊ တင်ခြင်းနှင့်သိမ်းဆည်းခြင်းအတွက် API ကို ကျွန်ုပ်တို့မှတ်သားနိုင်ပါသည်။ ECS (Entity Component System) အစိတ်အပိုင်းများ၊ အရင်းအမြစ်များကို အလျင်အမြန် ပြန်လည်စတင်ခြင်း၊ အလိုအလျောက် ဆာဗာစကေးချဲ့ခြင်း၊ ဂိမ်းမြေပုံများနှင့် ဂိမ်းမြင်ကွင်းများ ပူးပေါင်းဖန်တီးမှုအတွက် တည်းဖြတ်ခြင်း။
source: opennet.ru