جریان پیکسل غیر واقعی در لاجورد

ساخت وبلاگ

این مستندات از طریق مرور کلی در مورد چگونگی استقرار فناوری جریان پیکسل Unreal Engine در لاجورد ، که فناوری ای است که بازی های حماسی در موتور غیر واقعی خود فراهم می کند تا برنامه های سه بعدی تعاملی مستقر را از طریق مرورگر از دستگاه هایی مانند رایانه و تلفن های همراه بدون نیاز به کار می اندازد ، ارائه می دهد. برای اتصال مشتری اتصال سخت افزار GPU. برای کسانی که تازه وارد جریان پیکسل هستند ، توصیه می شود ابتدا Epic را از مستندات شروع کنید تا اطمینان حاصل کنید که می توانید جریان پیکسل را روی رایانه محلی خود مستقر کنید ، و سپس مستندات زیر را بخوانید تا درک بیشتری از معماری های جریان پیکسل در لاجورد داشته باشید. هنگامی که درک خوبی از نحوه کار جریان پیکسل داشته باشید ، می توانید راهنمای شروع سریع ما را در زیر برای اصول اولیه استقرار جریان پیکسل در لاجورد دنبال کنید. برای بهترین تجربه در Azure ، ما توصیه می کنیم برنامه موتور Unreal خود را از طریق راه حل بازار جریان پیکسل Unreal در Azure ، که به طور رسمی توسط Epic Games منتشر می شود ، مستقر کنید. تمام ویژگی های جدید برای پخش پیکسل غیر واقعی در لاجورد در راه حل Azure Marketplace ساخته خواهد شد و نه نسخه Terraform در GitHub. برای راه حل قدیمی تر شکل برای لاجورد ، به راه حل خودکار سازی که از GIT استفاده می کند با استفاده از Terraform و Insights Application برای معیارهای سفارشی استفاده کنید.

راهنمای شروع سریع

این راهنما را برای یادگیری اصول اولیه استقرار جریان پیکسل بر روی یک دستگاه مجازی GPU Azure یا چندین VM در صورت استفاده از سرویس MatchMaker برای بارگذاری تعادل در بسیاری از جریان ها در چندین GPU VM: راهنمای شروع سریع دنبال کنید.

محلول

برای استقرار جریان پیکسل غیر واقعی در مقیاس (یعنی 2 تا 1000 جریان) با خودکار سازی ، چندین جریان در هر GPU و معیارهای لاجورد ، به مستندات لاجورد در اینجا مراجعه کنید: جریان پیکسل غیر واقعی در مقیاس. این یک نسخه قدیمی است و جدیدترین نسخه در بازار Azure یافت می شود.

راه حل بازار لاجورد

به طور رسمی توسط Epic Games در بازار لاجورد منتشر شده است ، این راه حل آسان برای استقرار در بالای راه حل خودکار سازی ایجاد می شود و عملکرد بیشتری مانند مدیریت شیوه LifeCy ، یک داشبورد سفارشی برای مدیریت استقرار ، معیارهای جریان و پیشرفت های بسیاری را اضافه می کند. تمام پیشرفت های جدید در راه حل Marketplace انجام می شود و نسخه Terraform در GitHub به غیر از رفع مشکلات به روز نمی شود. مستندات این راه حل به عنوان بخشی از مستندات استقرار ابر موتور Unreal در دسترس است: جریان پیکسل غیر واقعی در مقیاس.

نمای کلی از جریان پیکسل موتور Unreal

جریان غیر واقعی پیکسل به توسعه دهندگان اجازه می دهد تا فریم ها و صوتی های ارائه شده را از یک رایانه GPU از راه دور فعال شده (به عنوان مثال ، ابر) به کاربران خود از طریق یک مرورگر دسک تاپ یا موبایل موبایل ، بدون نیاز به کاربران برای داشتن سخت افزار ویژه GPU ، پخش کنند. بیش از یک جریان ، جریان پیکسل به کاربران امکان می دهد با برنامه سه بعدی تعامل داشته باشند ، زیرا ورودی های ماوس و صفحه کلید به سرور از راه دور منتقل می شوند و با تأخیر کم پردازش می شوند. این تجربه را به کاربر می دهد که گویی از برنامه درست در رایانه یا دستگاه تلفن همراه خود استفاده می کنند. برخی از موارد استفاده متداول برای این کار برای بازی ها ، شبیه سازی ها یا تجربیات همهجانبه مانند پیکربندی یک ماشین جدید یا پیاده روی در یک نمایشگاه مجازی است. برنامه های کاربردی در موتور غیر واقعی توسعه داده شده و سپس به عنوان ویندوز قابل اجرا در یک سرور توانمند GPU صادر می شوند ، که سپس با یک سرور محلی NodeJS محلی برای کارگزاری جریان و تعامل به و از اتصال مرورگر مشتری ارتباط برقرار می کند.

معماری

در زیر چند معمار توصیه شده در هنگام استفاده از جریان پیکسل به لاجورد ، از یک VM واحد ، چندین VM با سرویس Matchmaker و یک رویکرد چند منطقه در نظر گرفته شده است.

Unreal Pixel Streaming architectures in Azure

تک VM

ساده ترین راه اندازی برای دریافت جریان پیکسل مستقر در Azure ، استقرار یک GPU VM واحد در یک شبکه مجازی است که یک سیستم عامل ویندوز را که توسط موتور غیر واقعی مورد نیاز است (به عنوان مثال ، ویندوز 10) است. این برای سناریوهایی که در آن هیچ مقیاس لازم نیست کافی است ، و تمام کاربرانی که به راه حل جریان پیکسل ضربه می زنند ، همان جلسه را به اشتراک می گذارند (یعنی همه با همان نمای و کنترل مشترک هستند). سرور سیگنالینگ و برنامه 3D UE4 منابع اصلی در حال اجرا در این GPU VM خواهند بود و نیاز به کپی کردن محتوای صادر شده از موتور غیر واقعی به ویندوز VM (یعنی دسک تاپ) دارد. کاربران می توانند از مرورگر خود برای حرکت به آدرس IP VM با استفاده از درگاه مورد نظر (پیش فرض 80) استفاده کنند تا جریان و تعامل با برنامه 3D را شروع کنند. به مراحل شروع سریع در اینجا پرش کنید.

چندین VM با MatchMaker

برای استقرار جریان پیکسل که نیاز به مقیاس بندی دارند و هر کاربر را کنترل کرده و جلسه شخصی خود را مشاهده می کنند ، از سرویس MatchMaker ارائه شده در بسته صادر شده Pixel Streaming استفاده می شود. این معماری در لاجورد شامل 1 VM برای سرویس سازنده (سیستم عامل ویندوز است ، اما می تواند برای اجرای لینوکس تنظیم شود) و 1 یا بیشتر VM های GPU برای برنامه Signaling / UE4 (Windows OS) در یک شبکه مجازی. علاوه بر معماری مجرد VM ، استقرار همکار ساز نیاز به کپی کردن پوشه Matchmaker از محتوای صادر شده از موتور غیر واقعی به Matchmaker VM (یعنی دسک تاپ) دارد. پس از شروع سرویس سیگنالینگ و برنامه UE4 در GPU VM ، کاربران اکنون می توانند از مرورگر خود برای حرکت به آدرس IP Matchmaker VM با استفاده از درگاه مورد نظر (پیش فرض 90) استفاده کنند تا شروع به پخش و تعامل با برنامه سه بعدی در جلسه خود کنند.

همانطور که انتظار می رفت ، هرچه VM های GPU بیشتر مورد نیاز برای چرخش باشند ، ضرورت ایجاد یک خط لوله استقرار مناسب/DevOps برای پیکربندی هر سرور سازنده و سیگنالینگ سرور/برنامه VM که می چرخد بیشتر است. به جای VM های فردی ، به معماری چند منطقه نگاه کنید تا به جای آن برای مقیاس بندی محاسبات ، در مورد استفاده از مجموعه های مقیاس ماشین مجازی (VMSS) بیاموزید. به مراحل شروع سریع در اینجا پرش کنید.

چند منطقه

معماری جریان چند منظوره پیکسل سفارشی برای لاجورد تنظیم شده است تا راه حل جریان پیکسل را برای چندین منطقه مشخص شده با یک مدیر ترافیک به عنوان نقطه ورود مستقر کند و این امکان را به کاربر می دهد تا برای کمترین تاخیر ممکن به نزدیکترین منطقه مستقر هدایت شود. اگرچه یک کاربر در تگزاس (ایالات متحده) می تواند به یک منطقه لاجورد در واشنگتن (ایالات متحده) وصل شود و هنوز هم تجربه خوبی داشته باشد ، هرچه کاربر به منطقه مستقر نزدیک تر باشد ، تعامل بیشتری به دلیل تأخیر مورد انتظار احساس می کند. هر استقرار منطقه ای از یک راه حل جریان پیکسل از یک Matchmaker VM و Signaling Server + UE4 GPU VM با استفاده از مجموعه های مقیاس ماشین مجازی (VMSS) تشکیل شده است تا محاسبه شود. لطفاً به مستندات راه حل AutoScaling ما مراجعه کنید که دارای شیرجه عمیق در این معماری است.

اجزای کلیدی جریان پیکسل

در زیر مؤلفه های اصلی جریان پیکسل غیر واقعی را بررسی خواهیم کرد تا بهتر بفهمیم چه کاری در راه حل کامل انجام می دهد.

Matchmaker (تغییر مسیر به سرورهای موجود)

Matchmaker (MM) اولین ضربه اصلی سرویس است که تعیین می کند که سرورهای جریان برای هدایت کاربر به آن در دسترس هستند و می توان به عنوان یک متعادل کننده بار یا ارکستر ویژه تصور کرد تا کاربران بتوانند به یک برنامه پخش پیکسل در دسترس برسند. بدون این سرویس که کاربران به یک سرور جریان پیکسل به طور مستقیم با سایر جلسات کاربر برخورد می کنند و افراد برای کنترل برنامه جلسات را به اشتراک می گذارند و می جنگند. برای استفاده از مواردی که به اشتراک گذاری یک جلسه واحد در بین کاربران مورد نیاز است ، از یک همکار ساز استفاده نکنید.

Matchmaker یک Node. js WebApp ساده است که بر روی سرور ویندوز مستقر شده است (می تواند هر سیستم عامل باشد که می تواند Node. js را با حذف صریح PowerShell. exe اجرا کند) ، و برای اتصالات از یک کاربر ورودی گوش می دهد و یک مرورگر را هدایت می کند تا به یک مرورگر هدایت شودآدرس یک GPU VM موجود که سرور سیگنالینگ و برنامه 3D را اجرا می کند. اتصالات سوکت وب برای برقراری ارتباط با سرورهای وب سیگنالینگ استفاده می شود تا مشخص شود که نمونه های سرور در دسترس هستند یا خیر. سرویس MM هنگام صادرات یک برنامه جریان پیکسل از موتور غیر واقعی تولید می شود. این مهم است که برای Matchmaker و سرور وب سیگنالینگ WebRTC که در یک گره GPU جداگانه قرار دارد تا در ارتباطات مداوم بماند ، که از طریق سوکت های وب انجام می شود. از آنجا که کاربران از یک سرور سیگنالینگ وصل و قطع می شوند ، ارتباطات به MatchMaker ارسال می شود تا به آن اطلاع دهد که سرور در دسترس/در دسترس نیست. اگر به همبازی ارتباط نداشته باشد ، نه تنها به هم وصل نشده است ، بلکه "Message. Ready == True" به یک سرور سیگنالینگ هدایت نمی کند ، بلکه "Message. Ready == True" را به عنوان "Message. Ready == True" تغییر نمی دهد. و آماده استفادهکد اصلی برای کبریت موجود در مسیر پوشه:

این برنامه به عنوان یک برنامه کنسول اجرا می شود و با راه اندازی Run. Bat در مسیر Matchmaker می تواند به صورت دستی اجرا شود. شما می توانید آزمایش کنید که با ضربه زدن به ریشه در پورت 90 به یک سرور جریان هدایت می شود ، یا پیامی با نمایش داده می شود که می گوید هیچ سرور در دسترس نیست. هنگامی که Matchmaker می بیند که از تمام شکافهای موجود برای پخش استفاده می شود ، یک صفحه وب را به کاربر نشان می دهد که به آنها می گوید منتظر یک سرور موجود باشد ، و هر 10 ثانیه یک نیرو را انجام می دهد تا مجدداً هر سرور باز را برای ارسال آنها انجام دهد. توجه داشته باشید که هیچ صف کاربران وجود ندارد ، بنابراین اگر سرورهای سیگنالینگ موجود پر شود ، کاربر بعدی برای دریافت نقطه اولین کاربر است که مرورگر پس از در دسترس بودن مرورگر است.

سیگنالینگ وب سرور (سرور جریان WeBRTC)

سرور سیگنالینگ (SS) یک برنامه وب Node. js است که جریان WebRTC را از برنامه Unreal 3D Pixel Streaming به کاربر هدایت می کند. مانند Matchmaker، این مورد از Unreal Engine هنگام صادرات یک برنامه Pixel Streaming ایجاد می شود. از طریق سوکت ها با Matchmaker ارتباط دائمی دارد و به MM اطلاع می دهد که سرور در دسترس یا در دسترس نیست. SS روی ماشین‌های مجازی VMSS GPU (مانند NV12s_v3، NVIDIA Tesla M60، Windows 10) در کنار برنامه Unreal 3D مستقر شده است و یک وب سرور Node. js را روی پورت Http 80 اجرا می‌کند و از طریق پورت 9999 از طریق پورت 9999 به Matchmaking ارتباط برقرار می‌کند.. SS از طریق یک مرورگر وب که کاربر برنامه را از آن مشاهده می کند، ورودی را از کاربر دریافت می کند و ورودی های ماوس و صفحه کلید را از طریق رابط جاوا اسکریپت به برنامه سه بعدی هدایت می کند. SS از NVENC استفاده می‌کند تا جریان سه‌بعدی را به چیزی کارآمد تبدیل کند تا فریم‌های رندر شده توسط کاربر تا 60 فریم بر ثانیه ارسال شود، مانند تماشای ویدیویی که تعاملی است به‌گونه‌ای که گویی برنامه سه بعدی را به صورت محلی اجرا می‌کنید.

کد اصلی برای سرور سیگنالینگ در اینجا در ساختار پوشه قرار دارد: …EngineSourceProgramsPixelStreamingWebServers SignallingWebServercirrus. js

برای اجرای دستی سرویس، می‌توانید فایل

un*. bat را در پوشه اصلی کد SS اجرا کنید. این را می توان قبل یا بعد از شروع برنامه سه بعدی شروع کرد. هنگامی که Matchmaker و برنامه 3D در حال اجرا هستند، گزارش‌های SS باید اتصال به matchmaker را در پورت 9999 نشان دهند و یک "Streamer Connected::1" برای نشان دادن برنامه سه بعدی روی جعبه متصل است. همیشه می توانید MM را دور بزنید و مستقیماً از طریق DNS یا IP خاص گره از طریق پورت 80 (پیش فرض) به گره SS ضربه بزنید. SS از طریق پورت سوکت وب 8888 با برنامه سه بعدی ارتباط برقرار می کند.

برنامه غیرواقعی 3D Pixel Streaming< PixelStreamingName >برنامه سه بعدی که کاربر با آن تعامل خواهد داشت از Unreal Engine ساخته شده است، به عنوان یک فایل اجرایی ویژه Pixel Streaming صادر می شود و از طریق آرگومان های خطوط فرمان از طریق یک پورت مشخص (پیش فرض 8888) به سرور سیگنالینگ Node. js متصل می شود. برای اجرای این برنامه سه بعدی روی ماشین مجازی باید DirectX runtime، vcredist2017 و Node. js را نصب کرده باشد. لطفاً توجه داشته باشید که exe. تنها اجرای قابل اجرا در هنگام شروع نیست، اما یک فایل اجرایی جداگانه نیز وجود دارد که اجرا می شود و در

پوشه ای که دارای اندازه exe بزرگتر است.

برای کسب اطلاعات بیشتر در مورد تنظیمات قابل توجه، بخش تنظیمات مربوط به برنامه Unreal را در زیر ببینید.

توصیه های Azure SKU

  • در زیر SKUهای محاسباتی توصیه شده برای استفاده عمومی از Pixel Streaming در Azure آمده است:
  • MatchMaker: Standard_F4S_V2 یا مشابه باید کافی باشد. 4 هسته با ردپای حافظه کوچکتر باید برای اکثر استقرار ها خوب باشد زیرا به دلیل هدایت سریع کاربران به سرورهای سیگنالینگ ، استفاده از CPU/حافظه بسیار کمی وجود دارد.

سرور سیگنالینگ: Standard_NV12S_V3 یا Standard_NV6 ممکن است بهترین قیمت برای هر عملکرد GPU VM در Azure برای جریان پیکسل باشد ، با جدیدتر NV12S_V3 عملکرد CPU بهتر را در یک قیمت مشابه با NV6 های قدیمی تر ارائه می دهد. هر دو دارای GPU NVIDIA TESLA M60 هستند. اگر ردیابی ری در برنامه شما لازم است ، باید به NCAS T4 V3 و حتی قدرتمندتر سری NVADSA10V5 VMS نگاه کنید. برای GPU های NVIDIA A10 ، حتماً از SKU Standard_NV36ADS_A10_V5 استفاده کنید تا از یک پردازنده گرافیکی کامل استفاده کنید ، زیرا این سری مطابق با شمارش اصلی تقسیم می شود. از آنجا که SKU های GPU تقاضای زیادی دارند ، مهم است که در اوایل کار با تیم ظرفیت کار کنید تا سهمیه مورد نیاز را برای هر رویداد یا استقرار درخواست کنید که تعداد زیادی از VM های GPU را در نظر بگیرد.

نکته مهم: توصیه می شود ابتدا Pixel Streaming خود را اجرا کنید و آن را بر روی GPU SKU مورد نظر خود اجرا کنید تا ویژگی های عملکرد را در مورد CPU/Memory/GPU استفاده کنید تا اطمینان حاصل شود که هیچ منبع در آن وجود ندارد و نرخ فریم قابل قبول نیست. برای دستیابی به کیفیت قابل قبول در هر مورد نیاز خود ، وضوح و فریم را در هر ثانیه از برنامه UE4 تغییر دهید. علاوه بر این ، هنگام انتخاب دیسک ، نیازهای IOPS / تأخیر را برای برنامه سه بعدی در نظر بگیرید ، زیرا SSDS و / یا Disks Striping برای به دست آوردن بهترین سرعت دیسک مهم خواهند بود (برخی از SKU های GPU ممکن است از SSD های برتر پشتیبانی نکنند ، بنابراین برای اضافه کردن IOPS نوار دیسک را نیز در نظر بگیرید.).

بهینه سازی جریان پیکسل در لاجورد

برخی از بهینه سازی های عملکردی و قیمت گذاری وجود دارد که باید هنگام اجرای جریان پیکسل در لاجورد در نظر بگیرید و استقرار شما نیاز به وزن/پاداش برای هر یک از گزینه ها دارد.

بهینه سازی عملکرد

  • بهینه سازی عملکرد زیر را برای راه حل جریان پیکسل خود در نظر بگیرید:
  • FPS: برای کاهش بار در GPU ، به ویژه ، که می تواند در پرونده Engine. ini با اضافه کردن بخش زیر (به عنوان مثال ، 30 فریم در ثانیه) تنظیم شود ، کاهش فریم در ثانیه (fps) برنامه غیر واقعی را در نظر بگیرید:

وضوح: اگر وضوح برنامه Unreal را در خط فرمان یا آرگومان های دارایی میانبر تنظیم نکنید ، از وضوح تنظیم شده در حال حاضر استفاده می کنید ، بنابراین توصیه می شود وضوح تصویر را انتخاب کنید که حداکثر وضوح قابل قبول برای برنامه مانند 720p یا1080p برای کاهش بار در GPU/CPU. هنگام فراخوانی اجرایی غیر واقعی از آرگومان های زیر استفاده کنید تا رزولوشن را که برنامه Unreal باید اجرا کند (از خط فرمان/اسکریپت یا از میانبر . exe) تنظیم کنید: -Winx = 0-winy = 0-resx = 192 0-resy= 108 0-forceres windowed

  • استدلال Forceres برای اطمینان از استفاده از Azure VM از وضوح مشخص بسیار مهم است.

پیچیدگی سه بعدی: مانند هر برنامه سه بعدی ، هر چه بیشتر می توانید تعداد مثلث ، اندازه بافت و پیچیدگی روشنایی را کاهش دهید ، بار کمتری که روی GPU قرار می دهید. در نظر بگیرید که بسیاری از کاربران ممکن است برنامه پخش پیکسل شما را از تلفن همراه خود مشاهده کنند و می توان روش هایی برای کاهش پیچیدگی بدون قربانی کردن کیفیت قابل توجه وجود داشت. این فرض بر این است که شما نیاز به کاهش بار GPU دارید ، بنابراین ابتدا روی SKU GPU Target خود را آزمایش کنید تا ببینید که آیا حتی چیزی در آن قرار گرفته است.

بهینه سازی قیمت

خبرهای فارکس...
ما را در سایت خبرهای فارکس دنبال می کنید

برچسب : نویسنده : عفت السادات شجاعی بازدید : 43 تاريخ : يکشنبه 6 فروردين 1402 ساعت: 19:39