8bitsage wiki
  • Описание раздела Rendering для Meta Quest
Powered by GitBook
On this page

Описание раздела Rendering для Meta Quest

Анализ настроек рендеринга для оптимизации AAA VR-проекта на Meta Quest 2, 3, 3s и Pro.

Параметр
Объяснение для Meta Quest
Дополнительная информация в рамках мобильного VR

r.Mobile.ShadingPath = 0

Определяет путь затенения для мобильных устройств. Значение 0 использует прямой рендеринг (Forward Rendering), что оптимально для VR на Quest, так как снижает нагрузку и обеспечивает быстрый рендеринг.

r.Mobile.AllowDeferredShadingOpenGL = False

Отключает отложенный рендеринг для OpenGL на мобильных устройствах. Правильная настройка для Quest, так как использует Vulkan/Metal вместо OpenGL.

r.Mobile.SupportGPUScene = True

Включает поддержку GPU сцены на мобильных устройствах. Для Quest это может улучшить производительность, позволяя использовать GPU для обработки сцены, но требует тщательного тестирования. Может вызвать проблемы

GPU Scene Is A Scam In Unreal Engine 5 by Surin

r.Mobile.AntiAliasing = 3

В Unreal Engine доступны следующие методы сглаживания:

  • 0 — None

  • 1 — Fast Approximate Anti-Aliasing (FXAA)

  • 2 — Temporal Anti-Aliasing (TAA)x: Мультисэмплинг с 4 выборками.

  • 3 — Multisample Anti-Aliasing (MSAA)

Устанавливает уровень сглаживания на мобильных устройствах. Значение 3 соответствует Multisample Anti-Aliasing (MSAA), При выборе MSAA его кратность (2x, 4x, 8x) задаётся через r.MSAACount.

MSAA — предпочтительный вариант для VR на Meta Quest, так как обеспечивает высокое качество без размытия, характерного для TAA и FXAA.

r.Mobile.FloatPrecisionMode = 0

Устанавливает режим точности для плавающей запятой. Значение 0 означает стандартную точность, что подходит для большинства случаев на Quest. Всегда ставим 0 иначе будет всё пиксельное.

r.Mobile.AllowDitheredLODTransition = False

Отключает дизеринг при переходе между уровнями детализации. На Quest это может улучшить производительность, но иногда приводит к заметным скачкам при изменении LOD.

r.Mobile.VirtualTextures = False

Отключает виртуальные текстуры на мобильных устройствах. Правильно для Quest, так как виртуальные текстуры требуют значительных ресурсов, которых может не хватить.

r.DiscardUnusedQuality = True

Если эта опция включена, движок будет отбрасывать неиспользуемые уровни качества при загрузке контента для игры, что позволяет сэкономить немного памяти.

r.AllowOcclusionQueries = true

Occlusion Queries (r.AllowOcclusionQueries) – это важный механизм оптимизации в Unreal Engine, позволяющий не рендерить объекты, полностью перекрытые другими. На мобильных VR-устройствах, таких как Quest, использующих Vulkan, есть аппаратная поддержка для этих запросов. Однако, большое количество запросов на окклюзию может создавать определенную нагрузку на CPU и GPU, поэтому разработчики иногда экспериментируют с отключением или тюнингом этой функции для достижения оптимальной производительности.

Важно понимать, что полное отключение Occlusion Queries (r.AllowOcclusionQueries = False) может иметь непредвиденные побочные эффекты. В моем случае, это привело к тому, что функция движка WasRecentlyRendered(), используемая для определения, был ли объект недавно видим, начала возвращать некорректные значения для меша зеркала. Это происходило потому, что система определения видимости без запросов на окклюзию, вероятно, не обновляла статус рендера для объектов, чей материал на первом кадре мог быть полностью прозрачным (как у зеркала до первого захвата отражения). В результате, оптимизация, основанная на WasRecentlyRendered(), блокировала обновление зеркала, и оно оставалось черным.

Возвращение r.AllowOcclusionQueries к значению True (по умолчанию) восстановило ожидаемое поведение WasRecentlyRendered() и корректную работу системы зеркал. Это подчеркивает, что при изменении ключевых консольных переменных рендеринга необходимо тщательно тестировать все зависимые системы, так как внутренние механизмы движка могут полагаться на их стандартное поведение.

r.MinScreenRadiusForLights = 0.050000

Минимальный радиус экрана для рендеринга источников света. Увеличение значения может улучшить производительность на Quest, но уменьшит детализацию освещения на расстоянии.

r.MinScreenRadiusForDepthPrepass = 0.050000

Минимальный радиус экрана для предварительного прохода глубины. Может улучшить производительность на Quest за счет пропуска мелких объектов.

r.PrecomputedVisibilityWarning = False

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

r.TextureStreaming = True

Включает потоковую загрузку текстур, что критично для Quest для управления ограниченной памятью.

r.TextureStreaming 0 — все текстуры загружаются полностью, что может повысить качество, но увеличивает использование VRAM Рекомендуется оставить включенным.

Установка размера пула памяти: r.Streaming.PoolSize [значение в МБ] — определяет объем памяти, выделяемый для потоковой загрузки текстур. Например, r.Streaming.PoolSize 2000

Compat.UseDXT5NormalMaps = False

Использует более эффективный формат для карт нормалей. Правильно для Quest, так как DXT5 может быть менее эффективным на мобильных GPU. На Quest используется ASTC

r.VirtualTextures = False

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

r.VT.EnableAutoImport = False

Отключает автоимпорт виртуальных текстур. Согласуется с отключением виртуальных текстур для Quest.

r.VirtualTexturedLightmaps = False

Отключает виртуальные текстуры для карт освещения. Правильно для Quest, экономит память и вычислительные ресурсы.

r.VT.AnisotropicFiltering = False

Отключает анизотропную фильтрацию для виртуальных текстур. Согласуется с отключением виртуальных текстур для Quest.

bEnableVirtualTextureOpacityMask = False

Отключает маски непрозрачности виртуальных текстур. Согласуется с глобальным отключением виртуальных текстур для Quest.

bEnableVirtualTexturePostProcessing = False

Отключает постобработку виртуальных текстур. Согласуется с отключением виртуальных текстур для Quest.

r.VT.TileSize = 128

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

r.VT.TileBorderSize = 4

Размер границы тайла виртуальных текстур. Не используется, так как виртуальные текстуры отключены.

r.vt.FeedbackFactor = 16

Коэффициент обратной связи для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.

r.MeshPaintVirtualTexture.TileSize = 32

Размер тайла виртуальных текстур для покраски мешей. Не используется для Quest.

r.MeshPaintVirtualTexture.TileBorderSize = 2

Размер границы тайла виртуальных текстур для покраски мешей. Не используется для Quest.

r.MeshPaintVirtualTexture.UseCompression = False

Отключает сжатие виртуальных текстур для покраски мешей. Не используется для Quest.

r.StaticMesh.DefaultMeshPaintTextureSupport = False

Отключает поддержку текстур покраски мешей по умолчанию. Экономит ресурсы на Quest.

r.MeshPaintVirtualTexture.DefaultTexelsPerVertex = 4

Устанавливает количество текселей на вершину для виртуальных текстур покраски мешей. Не используется для Quest.

r.MeshPaintVirtualTexture.MaxTextureSize = 4096

Максимальный размер виртуальной текстуры для виртуальных текстур покраски мешей. Не используется для Quest.

r.vt.rvt.EnableBaseColor = True

Включает базовый цвет для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.

r.vt.rvt.EnableBaseColorRoughness = True

Включает шероховатость базового цвета для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.

r.vt.rvt.EnableBaseColorSpecular = True

Включает отражение базового цвета для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.

r.vt.rvt.EnableMask4 = True

Включает маску 4 для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.

r.vt.rvt.EnableWorldHeight = True

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

r.vt.rvt.EnableDisplacement = True

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

r.vt.rvt.HighQualityPerPixelHeight = True

Включает высококачественную высоту на пиксель для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.

WorkingColorSpaceChoice = sRGB

Выбор рабочего цветового пространства. sRGB стандартно для Quest и большинства мобильных устройств.

RedChromaticityCoordinate = (X=0.640000,Y=0.330000)

Координаты хроматичности для красного цвета. Стандартные значения, подходят для Quest.

GreenChromaticityCoordinate = (X=0.300000,Y=0.600000)

Координаты хроматичности для зелёного цвета. Стандартные значения, подходят для Quest.

BlueChromaticityCoordinate = (X=0.150000,Y=0.060000)

Координаты хроматичности для синего цвета. Стандартные значения, подходят для Quest.

WhiteChromaticityCoordinate = (X=0.312700,Y=0.329000)

Координаты хроматичности для белого цвета. Стандартные значения, подходят для Quest.

r.LegacyLuminanceFactors = False

Отключает устаревшие факторы яркости. Рекомендуется для новых проектов на Quest.

r.ClearCoatNormal = False

Отключает нормали для прозрачного покрытия. Экономит производительность на Quest.

r.DynamicGlobalIlluminationMethod = 0

Метод динамического глобального освещения. Значение 0 отключает его, что оптимально для Quest из-за ограниченных ресурсов.

r.ReflectionMethod = 0

Метод отражений. Значение 0 использует базовые отражения, что подходит для Quest:

  • Reflection Capture Actors (кубические и сферические карты — работают даже при =0).

  • Skylight с кубмапой тоже продолжит работать.

  • Planar Reflections, если включены. (но мы выключаем для Quest)

  • Эмуляция отражений в материалах (через roughness/specular/emissive и пр.)

r.ReflectionCaptureResolution = 128

Разрешение для захвата отражений. 128 - низкое значение, подходящее для экономии памяти на Quest.

r.ReflectionEnvironmentLightmapMixBasedOnRoughness = True

Смешивание отражения окружения и карты освещения на основе шероховатости. Улучшает визуальное качество с минимальным влиянием на производительность Quest.

r.Lumen.HardwareRayTracing = False

Отключает аппаратную трассировку лучей для Lumen. Правильно для Quest, так как он не поддерживает трассировку лучей.

r.Lumen.HardwareRayTracing.LightingMode = 0

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

r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject = False

Отключает отражения полупрозрачности переднего слоя для Lumen. Lumen не используется на Quest, поэтому настройка правильная.

r.Lumen.TraceMeshSDFs = 1

Трассировка SDF-меши для Lumen. Не имеет эффекта, так как Lumen отключен для Quest.

r.Lumen.ScreenTracingSource = 0

Источник трассировки экрана для Lumen. Не имеет эффекта, так как Lumen отключен для Quest.

r.Lumen.Reflections.HardwareRayTracing.Translucent.Refraction.EnableForProject = False

Отключает преломление полупрозрачности при аппаратной трассировке лучей для отражений Lumen. Не имеет эффекта, так как Lumen отключен для Quest.

r.MegaLights.EnableForProject = False

Отключает MegaLights для проекта. Правильно для Quest, так как эта функция требует значительных ресурсов.

r.RayTracing.Shadows = False

Отключает трассировку лучей для теней. Правильно для Quest, так как он не поддерживает трассировку лучей.

r.Shadow.Virtual.Enable = 0

Отключает виртуальные тени. Правильно для Quest из-за ограниченных ресурсов.

r.RayTracing = False

Глобально отключает трассировку лучей. Правильно для Quest, так как он не поддерживает трассировку лучей.

r.RayTracing.UseTextureLod = False

Отключает использование LOD текстур для трассировки лучей. Не имеет эффекта, так как трассировка лучей отключена для Quest.

r.PathTracing = False

Отключает трассировку путей. Правильно для Quest, так как он не поддерживает трассировку путей.

r.GenerateMeshDistanceFields = False

Отключает генерацию полей расстояния для мешей. Правильно для Quest, экономит память и вычислительные ресурсы.

r.DistanceFields.DefaultVoxelDensity = 0.200000

Устанавливает плотность вокселей по умолчанию для полей расстояния. Не имеет эффекта, так как поля расстояния отключены для Quest.

r.Nanite.ProjectEnabled = False

Отключает Nanite для проекта. Правильно для Quest, так как он не поддерживает Nanite.

r.AllowStaticLighting = True

Разрешает статическое освещение. Рекомендуется для Quest, так как предварительно вычисленное освещение экономит вычислительные ресурсы во время выполнения.

r.NormalMapsForStaticLighting = True

Использует карты нормалей для статического освещения. Улучшает визуальное качество статического освещения с минимальным влиянием на производительность Quest.

r.ForwardShading = True

Включает прямой рендеринг. Оптимально для VR на Quest, обеспечивает лучшую производительность для стереоскопического рендеринга.

r.VertexFoggingForOpaque = False

Отключает туман для непрозрачных объектов на уровне вершин. Может улучшить производительность на Quest.

r.SeparateTranslucency = False

Отключает отдельный рендеринг полупрозрачности. Правильно для Quest, экономит вычислительные ресурсы.

r.TranslucentSortPolicy = 0

Политика сортировки полупрозрачных объектов. Значение 0 означает сортировку по расстоянию, что подходит для большинства случаев на Quest.

TranslucentSortAxis = (X=0.000000,Y=-1.000000,Z=0.000000)

Ось сортировки полупрозрачных объектов. Стандартное значение, подходит для большинства случаев.

r.LocalFogVolume.ApplyOnTranslucent = False

Не применяет локальные объёмы тумана к полупрозрачным объектам. Правильно для Quest, экономит производительность.

xr.VRS.FoveationLevel = 3

Уровень фовеации для Variable Rate Shading в XR. Значение 3 означает агрессивную фовеацию, что значительно улучшает производительность на Quest путем снижения разрешения рендеринга периферийного зрения.

xr.VRS.DynamicFoveation = False

Отключает динамическую фовеацию для VRS в XR. Статическая фовеация более предсказуема для производительности на Quest.

r.CustomDepth = 1

Разрешает пользовательский буфер глубины с ограниченной функциональностью. Компромисс между возможностями и производительностью для Quest.

r.CustomDepthTemporalAAJitter = False

Отключает дрожание временного сглаживания для пользовательского буфера глубины. Улучшает стабильность изображения для VR на Quest.

r.PostProcessing.PropagateAlpha = False

Не распространяет альфа-канал через цепочку постобработки. Экономит вычислительные ресурсы на Quest.

r.Deferred.SupportPrimitiveAlphaHoldout = False

Отключает поддержку вырезания альфа для примитивов в отложенном рендеринге. Не имеет эффекта, так как используется прямой рендеринг для Quest.

r.DefaultFeature.Bloom = True

Включает цветение по умолчанию. Улучшает визуальное качество, но следует использовать умеренно на Quest.

r.DefaultFeature.AmbientOcclusion = False

Отключает окружающую окклюзию по умолчанию. Правильно для Quest, так как SSAO требует значительных ресурсов.

r.DefaultFeature.AmbientOcclusionStaticFraction = False

Отключает статическую фракцию окружающей окклюзии. Согласуется с отключением окружающей окклюзии для Quest.

r.DefaultFeature.AutoExposure = False

Отключает автоэкспозицию по умолчанию. Правильно для VR на Quest, так как изменения экспозиции могут вызывать дискомфорт.

r.DefaultFeature.AutoExposure.Method = 2

Метод автоэкспозиции. Не имеет эффекта, так как автоэкспозиция отключена для Quest.

r.DefaultFeature.AutoExposure.Bias = 1.000000

Смещение автоэкспозиции. Не имеет эффекта, так как автоэкспозиция отключена для Quest.

r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange = True

Расширяет диапазон яркости по умолчанию для автоэкспозиции. Не имеет эффекта, так как автоэкспозиция отключена для Quest.

r.DefaultFeature.LocalExposure.HighlightContrastScale = 0.800000

Масштаб контраста подсветки для локальной экспозиции. Не используется на Quest.

r.DefaultFeature.LocalExposure.ShadowContrastScale = 0.800000

Масштаб контраста теней для локальной экспозиции. Не используется на Quest.

r.DefaultFeature.MotionBlur = False

Отключает размытие движения по умолчанию. Правильно для VR на Quest, так как размытие движения может вызывать дискомфорт и снижать производительность.

r.DefaultFeature.LensFlare = False

Отключает эффект блика линз по умолчанию. Правильно для Quest, экономит вычислительные ресурсы.

r.AntiAliasingMethod = 0

Метод сглаживания. Значение 0 означает отсутствие постобработки сглаживания, что правильно, так как используется MSAA.

r.TemporalAA.Upsampling = False

Отключает апсэмплинг временного сглаживания. Правильно для Quest, экономит вычислительные ресурсы.

r.MSAACount = 4

Количество сэмплов для MSAA. Значение 4 означает 4x MSAA, что является хорошим компромиссом между качеством и производительностью для Quest.

r.DefaultFeature.LightUnits = 1

Единицы измерения света. Значение 1 означает физически корректные единицы, что подходит для большинства случаев.

r.DefaultBackBufferPixelFormat = 4

Формат пикселей заднего буфера по умолчанию. Значение 4 соответствует 8-битному формату, что подходит для Quest.

r.ScreenPercentage.Default = 100.000000

Процент экрана по умолчанию. 100% означает рендеринг в нативном разрешении. Можно уменьшить для повышения производительности на Quest.

r.ScreenPercentage.Default.Desktop.Mode = 1

Режим процента экрана по умолчанию для настольных ПК. Не влияет на Quest.

r.ScreenPercentage.Default.Mobile.Mode = 0

Режим процента экрана по умолчанию для мобильных устройств. Значение 0 означает отключение динамического разрешения, что подходит для большинства случаев на Quest.

r.ScreenPercentage.Default.VR.Mode = 0

Режим процента экрана по умолчанию для VR. Значение 0 означает отключение динамического разрешения, что хорошо для Quest, учитывая наличие фовеации.

r.ScreenPercentage.Default.PathTracer.Mode = 0

Режим процента экрана по умолчанию для трассировщика путей. Не имеет эффекта, так как трассировка путей отключена для Quest.

r.Shadow.UnbuiltPreviewInGame = False

Отключает предварительный просмотр непостроенных теней в игре. Правильно для релизных сборок, экономит производительность на Quest.

r.StencilForLODDither = False

Отключает использование трафарета для дизеринга LOD. Может улучшить производительность на Quest.

r.EarlyZPass = 3

Тип раннего Z-прохода. Значение 3 означает полный ранний Z-проход, что улучшает производительность на сложных сценах для Quest.

r.EarlyZPassOnlyMaterialMasking = False

Отключает ограничение раннего Z-прохода только маскированием материала. Позволяет полному раннему Z-проходу работать эффективнее на Quest.

r.Shadow.CSMCaching = True

Включает кэширование карт теней от каскадов. Улучшает производительность динамических теней на Quest.

r.DBuffer = False

Отключает буфер декалей. Правильно для Quest, экономит память и вычислительные ресурсы.

r.ClearSceneMethod = 1

Метод очистки сцены. Значение 1 означает очистку на основе бесконечного далекого цвета неба, что подходит для большинства случаев.

r.VelocityOutputPass = 0

Отключает проход вывода скорости. Правильно для Quest, экономит вычислительные ресурсы, особенно при отключенном размытии движения.

r.Velocity.EnableVertexDeformation = 2

Включает деформацию вершин для скорости при скиннинге. Не имеет большого эффекта при отключенном размытии движения.

r.SelectiveBasePassOutputs = False

Отключает селективные выходы базового прохода. Упрощает рендеринг на Quest.

bDefaultParticleCutouts = False

Отключает вырезы для частиц по умолчанию. Улучшает производительность частиц на Quest.

fx.GPUSimulationTextureSizeX = 1024

Размер текстуры симуляции GPU по X. 1024 - разумное значение для Quest.

fx.GPUSimulationTextureSizeY = 1024

Размер текстуры симуляции GPU по Y. 1024 - разумное значение для Quest.

r.AllowGlobalClipPlane = False

Отключает глобальную плоскость отсечения. Улучшает производительность на Quest, но ограничивает некоторые эффекты, такие как зеркала.

r.GBufferFormat = 1

Формат G-буфера. Значение 1 означает сниженное качество G-буфера, что подходит для Quest при прямом рендеринге.

r.MorphTarget.Mode = True

Включает морф-таргеты. Позволяет использовать морф-анимацию на Quest, но следует использовать умеренно.

r.MorphTarget.MaxBlendWeight = 5.000000

Максимальный вес смешивания для морф-таргетов. Ограничивает количество одновременно активных морф-таргетов, что важно для производительности на Quest.

r.SupportSkyAtmosphere = True

Включает поддержку атмосферы неба. На Quest следует использовать простые версии атмосферы для лучшей производительности.

r.SupportSkyAtmosphereAffectsHeightFog = True

Позволяет атмосфере неба влиять на туман высоты. Улучшает визуальное соответствие между небом и туманом.

r.SupportExpFogMatchesVolumetricFog = False

Отключает соответствие экспоненциального тумана объемному туману. Правильно для Quest, так как объемный туман обычно отключен.

r.SupportLocalFogVolumes = True

Включает поддержку локальных объемов тумана. Можно использовать на Quest для небольших локальных эффектов.

r.SupportCloudShadowOnForwardLitTranslucent = False

Отключает тени облаков на полупрозрачных объектах с прямым освещением. Правильно для Quest, экономит вычислительные ресурсы.

r.LightFunctionAtlas.Format = 0

Формат атласа световых функций. Значение 0 означает стандартный формат, что подходит для простых световых функций на Quest.

r.VolumetricFog.LightFunction = False

Отключает световые функции для объемного тумана. Правильно для Quest, экономит вычислительные ресурсы.

r.Deferred.UsesLightFunctionAtlas = False

Не использует атлас световых функций в отложенном рендеринге. Не имеет эффекта, так как используется прямой рендеринг для Quest.

r.SingleLayerWater.UsesLightFunctionAtlas = False

Не использует атлас световых функций для однослойной воды. Правильно для Quest, экономит вычислительные ресурсы.

r.Translucent.UsesLightFunctionAtlas = False

Не использует атлас световых функций для полупрозрачных объектов. Правильно для Quest, экономит вычислительные ресурсы.

r.Translucent.UsesIESProfiles = False

Не использует профили IES для полупрозрачных объектов. Правильно для Quest, экономит вычислительные ресурсы.

r.Translucent.UsesRectLights = False

Не использует прямоугольные источники света для полупрозрачных объектов. Правильно для Quest, экономит вычислительные ресурсы.

r.GPUCrashDebugging = False

Отключает отладку сбоев GPU. Правильно для релизных сборок.

vr.InstancedStereo = True

Включает инстансированное стерео. Критично для оптимальной производительности VR на Quest, позволяет рендерить оба глаза за один проход.

r.MobileHDR = False

Отключает HDR на мобильных устройствах. Правильно для Quest, значительно экономит вычислительные ресурсы.

vr.MobileMultiView = True

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

r.Mobile.UseHWsRGBEncoding = True

Использует аппаратное кодирование sRGB на мобильных устройствах. Улучшает производительность на Quest.

vr.RoundRobinOcclusion = False

Отключает карусельную окклюзию для VR. Используйте инстансированное стерео вместо этого для Quest.

r.MeshStreaming = False

Отключает потоковую загрузку мешей. Может улучшить стабильность на Quest, хотя ограничивает возможности управления памятью.

r.HeterogeneousVolumes = False

Отключает гетерогенные объемы. Правильно для Quest, экономит вычислительные ресурсы.

r.HeterogeneousVolumes.Shadows = False

Отключает тени для гетерогенных объемов. Согласуется с отключением гетерогенных объемов для Quest.

r.Translucency.HeterogeneousVolumes = False

Отключает гетерогенные объемы для полупрозрачности. Согласуется с отключением гетерогенных объемов для Quest.

r.WireframeCullThreshold = 5.000000

Порог отсечения для проволочного отображения. Не влияет на релизные сборки.

r.SupportStationarySkylight = True

Включает поддержку стационарного света неба. Можно использовать на Quest, но следует быть осторожным с разрешением отражений.

r.SupportLowQualityLightmaps = True

Включает поддержку карт освещения низкого качества. Полезно для Quest для экономии памяти.

r.SupportPointLightWholeSceneShadows = True

Включает поддержку теней от точечных источников света на всю сцену. Следует использовать умеренно на Quest.

r.Shadow.TranslucentPerObject.ProjectEnabled = False

Отключает тени на полупрозрачные объекты для проекта. Правильно для Quest, экономит вычислительные ресурсы.

r.Water.SingleLayerWater.SupportCloudShadow = False

Не поддерживает тени облаков для однослойной воды. Правильно для Quest, экономит вычислительные ресурсы.

r.Substrate = False

Отключает систему материалов Substrate. Правильно для Quest, так как Substrate требует значительных ресурсов.

r.Substrate.OpaqueMaterialRoughRefraction = True

Включает преломление шероховатости для непрозрачных материалов в Substrate. Не имеет эффекта, так как Substrate отключен для Quest.

r.Refraction.Blur = True

Включает размытие преломления. Можно использовать на Quest для простых эффектов преломления.

r.Substrate.Debug.AdvancedVisualizationShaders = False

Отключает расширенные шейдеры визуализации для отладки Substrate. Согласуется с отключением Substrate для Quest.

r.Material.RoughDiffuse = False

Отключает шероховатый диффузный материал. Правильно для Quest, экономит вычислительные ресурсы.

r.Material.EnergyConservation = False

Отключает сохранение энергии для материалов. Правильно для Quest, экономит вычислительные ресурсы.

r.Material.DefaultAutoMaterialUsage = True

Включает автоматическое использование материалов по умолчанию. Полезно для разработки.

r.OIT.SortedPixels = False

Отключает сортированные пиксели для Order-Independent Transparency. Правильно для Quest, экономит вычислительные ресурсы.

r.HairStrands.LOD = False

Отключает LOD для прядей волос. Согласуется с тем, что система Groom не используется на Quest.

r.SkinCache.CompileShaders = True

Компилирует шейдеры для кэша скинов. Необходимо для использования кэша скинов на Quest.

r.VRS.Support = True

Включает поддержку Variable Rate Shading. Полезно для Quest, работает совместно с фовеацией.

r.SkinCache.SkipCompilingGPUSkinVF = False

Не пропускает компиляцию вершинных фабрик для скинов GPU. Не рекомендуется изменять.

r.SkinCache.DefaultBehavior = 1

Устанавливает поведение кэша скинов по умолчанию. Значение 1 означает автоматический выбор, что подходит для большинства случаев.

r.SkinCache.SceneMemoryLimitInMB = 128.000000

Ограничение памяти сцены для кэша скинов в МБ. 128 - разумное значение для Quest.

r.Mobile.EnableStaticAndCSMShadowReceivers = False

Отключает приемники статических теней и теней CSM на мобильных устройствах. Улучшает производительность на Quest.

r.Mobile.EnableMovableLightCSMShaderCulling = True

Включает отсечение шейдеров CSM для движущихся источников света на мобильных устройствах. Улучшает производительность на Quest.

r.Mobile.Forward.EnableLocalLights = 1

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

r.Mobile.Forward.EnableClusteredReflections = False

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

r.Mobile.AllowDistanceFieldShadows = False

Отключает тени на основе полей расстояния на мобильных устройствах. Правильно для Quest, экономит память и вычислительные ресурсы.

r.Mobile.EnableMovableSpotlightsShadow = False

Отключает тени от движущихся прожекторов на мобильных устройствах. Правильно для Quest, экономит вычислительные ресурсы.

r.GPUSkin.Support16BitBoneIndex = False

Отключает поддержку 16-битных индексов костей для скинов GPU. Правильно для Quest, так как обычно не требуется более 8 бит для индексов костей.

r.GPUSkin.Limit2BoneInfluences = False

Не ограничивает скины GPU 2 костными влияниями. Позволяет использовать до 4 костных влияний на Quest.

r.SupportDepthOnlyIndexBuffers = False

Отключает поддержку индексных буферов только для глубины. Упрощает рендеринг на Quest.

r.SupportReversedIndexBuffers = False

Отключает поддержку обратных индексных буферов. Упрощает рендеринг на Quest.

r.Mobile.AmbientOcclusion = False

Отключает окружающую окклюзию на мобильных устройствах. Правильно для Quest, экономит вычислительные ресурсы.

r.Mobile.DBuffer = False

Отключает буфер декалей на мобильных устройствах. Правильно для Quest, экономит память и вычислительные ресурсы.

r.GPUSkin.UnlimitedBoneInfluences = False

Отключает неограниченные костные влияния для скинов GPU. Правильно для Quest, экономит вычислительные ресурсы.

r.GPUSkin.AlwaysUseDeformerForUnlimitedBoneInfluences = False

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

r.GPUSkin.UnlimitedBoneInfluencesThreshold = 8

Порог для неограниченных костных влияний. Не имеет эффекта, так как неограниченные костные влияния отключены для Quest.

DefaultBoneInfluenceLimit = (Default=0,PerPlatform=())

Лимит костных влияний по умолчанию. Значение 0 означает использование движковых настроек, что подходит для большинства случаев.

MaxSkinBones = (Default=65536,PerPlatform=(("Mobile", 256)))

Максимальное количество костей для скинов. Ограничение до 256 для мобильных платформ, включая Quest, что обычно достаточно.

r.Mobile.PlanarReflectionMode = 0

Режим планарных отражений на мобильных устройствах. Значение 0 означает отключение, что правильно для Quest, экономит вычислительные ресурсы.

r.Mobile.ScreenSpaceReflections = False

Отключает экранные отражения на мобильных устройствах. Правильно для Quest, экономит вычислительные ресурсы.

r.Mobile.SupportsGen4TAA = False

Отключает поддержку TAA 4-го поколения на мобильных устройствах. Правильно для Quest, так как используется MSAA вместо TAA.

bStreamSkeletalMeshLODs = (Default=False,PerPlatform=())

Отключает потоковую загрузку LOD скелетных мешей. Может улучшить стабильность на Quest.

bDiscardSkeletalMeshOptionalLODs = (Default=False,PerPlatform=())

Не отбрасывает дополнительные LOD скелетных мешей. Позволяет использовать все LOD на Quest.

VisualizeCalibrationColorMaterialPath = /Engine/EngineMaterials/PPM_DefaultCalibrationColor.PPM_DefaultCalibrationColor

Путь к материалу цветовой калибровки для визуализации. Используется только для разработки.

VisualizeCalibrationCustomMaterialPath = None

Путь к пользовательскому материалу калибровки для визуализации. Не установлен.

VisualizeCalibrationGrayscaleMaterialPath = /Engine/EngineMaterials/PPM_DefaultCalibrationGrayscale.PPM_DefaultCalibrationGrayscale

Путь к материалу калибровки в оттенках серого для визуализации. Используется только для разработки.

r.AllowGlobalClipPlane = False

Отключает глобальную плоскость отсечения. Улучшает производительность на Quest, повторяющаяся настройка.

Заключение

Ваши текущие настройки рендеринга в целом хорошо оптимизированы для Meta Quest. Ключевые моменты:

  1. Использование прямого рендеринга (Forward Rendering) вместо отложенного

  2. Активация фовеации (VRS.FoveationLevel = 3)

  3. Отключение ресурсоемких функций (Lumen, Nanite, трассировка лучей)

  4. Использование MSAA (4x) для сглаживания

  5. Включение инстансированного стерео и мобильного многовидового рендеринга

Эти настройки обеспечивают хороший баланс между визуальным качеством и производительностью для вашего AAA VR-проекта на Meta Quest 2, 3, 3s и Pro.

Last updated 1 month ago

https://dev.epicgames.com/documentation/en-us/unreal-engine/forward-shading-renderer-in-unreal-engine
https://developers.meta.com/horizon/documentation/unreal/unreal-forward-renderer/
https://www.youtube.com/watch?v=s7Aq11GC2tY
https://dev.epicgames.com/documentation/en-us/unreal-engine/anti-aliasing-and-upscaling-in-unreal-engine
dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Engine/EMobileFloatPrecisionMode__Type
https://dev.epicgames.com/documentation/en-us/unreal-engine/visibility-and-occlusion-culling-in-unreal-engine
https://dev.epicgames.com/documentation/en-us/unreal-engine/texture-streaming-in-unreal-engine
https://dev.epicgames.com/documentation/en-us/unreal-engine/texture-streaming-configuration-in-unreal-engine
https://www.youtube.com/watch?v=_2sY0i1nDUg
https://forums.unrealengine.com/t/texture-streaming-pool-over/340751
https://forums.unrealengine.com/t/dynamic-global-illumination-method-greyed-out/527254/7
https://forums.unrealengine.com/t/can-i-create-a-setting-for-the-in-game-reflection-method/1256751