Pull to refresh

Рендеринг и оптимизация в VR-разработке

Reading time 4 min
Views 6.8K
Original author: Ruben Artus
Данная статья является второй в цикле про качественную разработку 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 и он достаточно высок, мы на верном пути. Чтобы достичь этого, нужно во время разработки обращать внимание на пару моментов.

Полезные инструменты



image

При разработке не стоит полагаться на собственные ощущения, так как существуют очень полезные инструменты для тестирования производительности наших VR-приложений.

Tool Nsight от NVIDIA тесно взаимодействует с графической картой и пользуется популярностью среди разработчиков движков. Но на практике, для точного контроля производительности, можно воспользоваться инструментами Unity или Unreal Engine

image
Unity 3D Profiler предоставляет важную информацию о производительности твоего VR-приложения

Кроме того, было бы идеально, если бы ты использовал для тестов своих VR-проектов компьютер, который соответствует минимальным требованиям любого необходимого устройства. Так ты сможешь быть уверенным в том, что увидишь VR-приложение точно также, как их потом увидят пользователи.

Сфокусируйся на анимации, звуке и взаимодействии


С технической стороны существуют определенные моменты, которые мы можем оптимизировать. Но это все частные случаи, зависящие от контекста.

Однако мы можем черпать вдохновение из методов оптимизации мобильных игр. Так как при их разработке возникают схожие проблемы с производительностью, особенно при большом разрешении (к примеру, iPad Retina).

У нас есть огромный потенциал для улучшения наших VR-приложений. В визуальном плане наши виртуальные миры не должны соперничать с классическими играми в уровне детализации.

В VR визуальная составляющая уходит на задний план, так как важны совсем другие элементы. Поэтому мы можем без проблем упростить наши 3D модели и эффекты и, таким образом, снизить нагрузку.

Мир VR-проекта стоит на трех китах: анимация, звук и взаимодействие. Поэтому тебе следует нацелить все свое время и вдохновение именно на эти аспекты.

Лучше сделай сильное упрощение графики и инвестируй свое время и сэкономленные мощности в живую анимацию и подходящее звуковое сопровождение, они дополнят сцену и сделают ее еще ярче. Не забудь про интерактив. Именно он заинтересует и развлечет пользователя.

Прекрасным примером такого способа VR-разработки является игра «Job Simulator»:


Тот факт, что превосходная визуальная составляющая в VR-проектах не является необходимостью, и комбинация из живой анимации и простой графики выглядит совершенно правдоподобно, ты можешь увидеть в этом видео:


Помощь для тебя:

Насколько важно правильное внедрение звуковых эффектов в VR-проекты, и почему при симуляции 3D звуков все еще прибегают к обману, мы посмотрим в следующей статье.

Если ты в своем VR-проекте выходишь за границы допустимой производительности и ищешь помощи в оптимизации, ты можешь связаться со мной.

Как уже было сказано, применение различных методов оптимизации уместно и целесообразно в зависимости от контекста и проекта. И часто не так просто понять, какой компонент проекта ответственен за ухудшение производительности.

Далее мы изучим принципы работы со звуком в статье «Звуковые эффекты в виртуальных мирах».
Tags:
Hubs:
+2
Comments 0
Comments Leave a comment

Articles