Ця стаття є другою в циклі про якісну розробку VR-проектів. Раніше ми вже вивчили принципи роботи з камерою в статті "VR-Design: погляд у віртуальний світ ". Посилання на інші матеріали можна знайти в оглядовій статті.
Щоб створити віртуальну реальність, необхідна складна взаємодія апаратного та програмного забезпечення. При цьому кожен окремий компонент відіграє важливу роль.
Сьогодні ми розглянемо ПЗ більш детально і зрозуміємо, що відбувається на його різних рівнях. Якщо ти зможеш зрозуміти ці основи, то отримаєш необхідні знання для того, щоб правильно оптимізувати свої проекти.
Зокрема ми хочемо розширити твої знання про рендеринг і оптимізацію VR-додатків, щоб тобі легше було розробляти якісні VR-проекти. Потрібно знати, наприклад, як камера впливає на розробку.
90 кадрів на секунду
Принципово важливо, щоб ми забезпечували рендеринг 90 кадрів на секунду (скорочено FPS). Це було непросто і при розробці класичних ігор, а в VR дана проблема постала ще гостріше.
Оскільки видима область повинна пройти рендеринг двічі для кожного ока зі своєю перспективою. У 3D движки вже вбудовані прискорювачі подвійного рендерінга, але вони ще не можуть бути повноцінною противагою для цього додаткового навантаження.
You really, really have to watch framerate.
You don’t wanna make yourself sick.
- Dylan Fitterer, розробник з Audioshield
Можливо, ти вже чув поняття «motion to photon latency». Воно описує час, що минув між зміною положення та актуалізацією зображень у VR-окулярах. В ідеалі цей проміжок часу повинен становити менше 30 мілісекунд.
Як правило, найбільш поширені движки і SDK дозволяють розробнику не думати про це. Вони беруть цю складну роботу на себе. Завдяки їм наші 3D сцени оптимізуються для будь-якого типу пристроїв, положення і кривизни лінз.
До того ж ми автоматично отримуємо нові прискорювачі рендерингу, використовуючи движки. Наприклад, розробники Unity нещодавно представили обширне оновлення щодо поліпшення оптимізації, частина навантаження перенесена з CPU на GPU - з процесора на графічну карту - і так навантаження знижується.
Складнощі, які відбуваються на цьому рівні візуалізації, занадто об'ємні для цієї статті. Але якщо ти хочеш серйозно зайнятися цією темою, то я раджу тобі доповідь Alex-а Vlachos на тему «Advanced VR Rendering»!
Also, go for quantity.
Try a lot of different things, new concepts.
- Dylan Fitterer, розробник з Audioshield
Поки ми контролюємо наш FPS і він досить високий, ми на вірному шляху. Щоб досягти цього, потрібно під час розробки звертати увагу на пару моментів.
Корисні інструменти
При розробці не варто покладатися на власні відчуття, оскільки існують дуже корисні інструменти для тестування продуктивності наших VR-додатків.
Tool Nsight від NVIDIA тісно взаємодіє з графічною картою і користується популярністю серед розробників движків. Але на практиці, для точного контролю продуктивності, можна скористатися інструментами Unity або Unreal Engine
Unity 3D Profiler надає важливу інформацію про продуктивність твого VR-додатку
Крім того, було б ідеально, якби ти використовував для тестів своїх VR-проектів комп'ютер, який відповідає мінімальним вимогам будь-якого необхідного пристрою. Так ти зможеш бути впевненим в тому, що побачиш VR-додаток точно також, як їх потім побачать користувачі.
Сфокусуйся на анімації, звуці та взаємодії
З технічного боку існують певні моменти, які ми можемо оптимізувати. Але це все приватні випадки, що залежать від контексту.
Однак ми можемо черпати натхнення з методів оптимізації мобільних ігор. Оскільки при їх розробці виникають схожі проблеми з продуктивністю, особливо при великій роздільній здатності (наприклад, iPad Retina).
У нас є величезний потенціал для поліпшення наших VR-додатків. У візуальному плані наші віртуальні світи не повинні змагатися з класичними іграми в рівні деталізації.
У VR візуальна складова йде на задній план, оскільки важливі зовсім інші елементи. Тому ми можемо без проблем спростити наші 3D моделі та ефекти і, таким чином, знизити навантаження.
Світ VR-проекту стоїть на трьох китах: анімація, звук і взаємодія. Тому тобі слід націлити весь свій час і натхнення саме на ці аспекти.
Краще зроби сильне спрощення графіки та інвестуй свій час і зекономлені потужності в живу анімацію і відповідний звуковий супровід, вони доповнять сцену і зроблять її ще яскравішою. Не забудь про інтерактив. Саме він зацікавить і розважить користувача.
Прекрасним прикладом такого способу VR-розробки є гра «Job Simulator»:
Той факт, що чудова візуальна складова в VR-проектах не є необхідністю, і комбінація з живої анімації і простої графіки виглядає абсолютно правдоподібно, ти можеш побачити в цьому відео:
Допомога для тебе:
Наскільки важливо правильне впровадження звукових ефектів у VR-проекти, і чому при симуляції 3D звуків все ще вдаються до обману, ми подивимося в наступній статті.
Якщо ти в своєму VR-проекті виходиш за межі допустимої продуктивності і шукаєш допомоги в оптимізації, ти можеш зв'язатися зі мною.
Як уже було сказано, застосування різних методів оптимізації доречне і доцільне залежно від контексту і проекту. І часто не так просто зрозуміти, який компонент проекту відповідальний за погіршення продуктивності.
Далі ми вивчимо принципи роботи зі звуком у статті «Звукові ефекти у віртуальних світах».