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

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

<table data-full-width="true"><thead><tr><th width="258">Параметр</th><th width="388.272705078125">Объяснение для Meta Quest</th><th width="492.45458984375">Дополнительная информация в рамках мобильного VR</th></tr></thead><tbody><tr><td>r.Mobile.ShadingPath = 0</td><td>Определяет путь затенения для мобильных устройств. Значение 0 использует прямой рендеринг (Forward Rendering), что оптимально для VR на Quest, так как снижает нагрузку и обеспечивает быстрый рендеринг.</td><td><p><a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/forward-shading-renderer-in-unreal-engine">https://dev.epicgames.com/documentation/en-us/unreal-engine/forward-shading-renderer-in-unreal-engine</a></p><p><a href="https://developers.meta.com/horizon/documentation/unreal/unreal-forward-renderer/">https://developers.meta.com/horizon/documentation/unreal/unreal-forward-renderer/</a></p></td></tr><tr><td>r.Mobile.AllowDeferredShadingOpenGL = False</td><td>Отключает отложенный рендеринг для OpenGL на мобильных устройствах. Правильная настройка для Quest, так как использует Vulkan/Metal вместо OpenGL.</td><td></td></tr><tr><td>r.Mobile.SupportGPUScene = True</td><td>Включает поддержку GPU сцены на мобильных устройствах. Для Quest это может улучшить производительность, позволяя использовать GPU для обработки сцены, но требует тщательного тестирования. Может вызвать проблемы</td><td><p>GPU Scene Is A Scam In Unreal Engine 5 by Surin</p><p><a href="https://www.youtube.com/watch?v=s7Aq11GC2tY">https://www.youtube.com/watch?v=s7Aq11GC2tY</a></p></td></tr><tr><td>r.Mobile.AntiAliasing = 3</td><td><p>В Unreal Engine доступны следующие методы сглаживания:</p><ul><li><strong>0</strong> — None</li><li><strong>1</strong> — Fast Approximate Anti-Aliasing (FXAA)</li><li><strong>2</strong> — Temporal Anti-Aliasing (TAA)x: Мультисэмплинг с 4 выборками.</li><li><strong>3</strong> — Multisample Anti-Aliasing (MSAA)</li></ul><p></p><p>Устанавливает уровень сглаживания на мобильных устройствах. Значение 3 соответствует Multisample Anti-Aliasing (MSAA), При выборе <strong>MSAA</strong> его кратность (2x, 4x, 8x) задаётся через <code>r.MSAACount</code>.</p><p>MSAA — предпочтительный вариант для VR на Meta Quest, так как обеспечивает высокое качество без размытия, характерного для TAA и FXAA.</p></td><td><a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/anti-aliasing-and-upscaling-in-unreal-engine">https://dev.epicgames.com/documentation/en-us/unreal-engine/anti-aliasing-and-upscaling-in-unreal-engine</a></td></tr><tr><td>r.Mobile.FloatPrecisionMode = 0</td><td>Устанавливает режим точности для плавающей запятой. Значение 0 означает стандартную точность, что подходит для большинства случаев на Quest. Всегда ставим 0 иначе будет всё пиксельное.</td><td><a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Engine/EMobileFloatPrecisionMode__Type">dev.epicgames.com/documentation/en-us/unreal-engine/API/Runtime/Engine/Engine/EMobileFloatPrecisionMode__Type</a></td></tr><tr><td>r.Mobile.AllowDitheredLODTransition = False</td><td>Отключает дизеринг при переходе между уровнями детализации. На Quest это может улучшить производительность, но иногда приводит к заметным скачкам при изменении LOD.</td><td></td></tr><tr><td>r.Mobile.VirtualTextures = False</td><td>Отключает виртуальные текстуры на мобильных устройствах. Правильно для Quest, так как виртуальные текстуры требуют значительных ресурсов, которых может не хватить.</td><td></td></tr><tr><td>r.DiscardUnusedQuality = True</td><td>Если эта опция включена, движок будет отбрасывать неиспользуемые уровни качества при загрузке контента для игры, что позволяет сэкономить немного памяти.</td><td></td></tr><tr><td>r.AllowOcclusionQueries = true</td><td><p>Occlusion Queries (r.AllowOcclusionQueries) – это важный механизм оптимизации в Unreal Engine, позволяющий не рендерить объекты, полностью перекрытые другими. На мобильных VR-устройствах, таких как Quest, использующих Vulkan, есть аппаратная поддержка для этих запросов. Однако, большое количество запросов на окклюзию может создавать определенную нагрузку на CPU и GPU, поэтому разработчики иногда экспериментируют с отключением или тюнингом этой функции для достижения оптимальной производительности.</p><p></p><p>Важно понимать, что полное отключение Occlusion Queries (r.AllowOcclusionQueries = False) может иметь непредвиденные побочные эффекты. В моем случае, это привело к тому, что функция движка WasRecentlyRendered(), используемая для определения, был ли объект недавно видим, начала возвращать некорректные значения для <strong>меша зеркала</strong>. Это происходило потому, что система определения видимости без запросов на окклюзию, вероятно, не обновляла статус рендера для объектов, чей материал на первом кадре мог быть полностью прозрачным (как у зеркала до первого захвата отражения). В результате, оптимизация, основанная на WasRecentlyRendered(), блокировала обновление зеркала, и оно оставалось черным.</p><p>Возвращение r.AllowOcclusionQueries к значению True (по умолчанию) восстановило ожидаемое поведение WasRecentlyRendered() и корректную работу системы зеркал. Это подчеркивает, что при изменении ключевых консольных переменных рендеринга необходимо тщательно тестировать все зависимые системы, так как внутренние механизмы движка могут полагаться на их стандартное поведение.</p></td><td><a href="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/visibility-and-occlusion-culling-in-unreal-engine</a></td></tr><tr><td>r.MinScreenRadiusForLights = 0.050000</td><td>Минимальный радиус экрана для рендеринга источников света. Увеличение значения может улучшить производительность на Quest, но уменьшит детализацию освещения на расстоянии.</td><td></td></tr><tr><td>r.MinScreenRadiusForDepthPrepass = 0.050000</td><td>Минимальный радиус экрана для предварительного прохода глубины. Может улучшить производительность на Quest за счет пропуска мелких объектов.</td><td></td></tr><tr><td>r.PrecomputedVisibilityWarning = False</td><td>Отключает предупреждения о предварительно вычисленной видимости. Не влияет на производительность, только на отладку.</td><td></td></tr><tr><td>r.TextureStreaming = True</td><td><p>Включает потоковую загрузку текстур, что критично для Quest для управления ограниченной памятью.</p><p><code>r.TextureStreaming 0</code> — все текстуры загружаются полностью, что может повысить качество, но увеличивает использование VRAM<br>Рекомендуется оставить включенным.</p></td><td><p><a href="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-in-unreal-engine</a></p><p><a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/texture-streaming-configuration-in-unreal-engine">https://dev.epicgames.com/documentation/en-us/unreal-engine/texture-streaming-configuration-in-unreal-engine</a><br><a href="https://www.youtube.com/watch?v=_2sY0i1nDUg">https://www.youtube.com/watch?v=_2sY0i1nDUg</a><br><a href="https://forums.unrealengine.com/t/texture-streaming-pool-over/340751"><strong>https://forums.unrealengine.com/t/texture-streaming-pool-over/340751</strong></a></p><p><strong>Установка размера пула памяти</strong>: <code>r.Streaming.PoolSize [значение в МБ]</code> — определяет объем памяти, выделяемый для потоковой загрузки текстур. Например, <code>r.Streaming.PoolSize 2000</code></p></td></tr><tr><td>Compat.UseDXT5NormalMaps = False</td><td>Использует более эффективный формат для карт нормалей. Правильно для Quest, так как DXT5 может быть менее эффективным на мобильных GPU. На Quest используется ASTC</td><td></td></tr><tr><td>r.VirtualTextures = False</td><td>Глобально отключает виртуальные текстуры. Подходит для Quest из-за ограничений памяти и вычислительной мощности.</td><td></td></tr><tr><td>r.VT.EnableAutoImport = False</td><td>Отключает автоимпорт виртуальных текстур. Согласуется с отключением виртуальных текстур для Quest.</td><td></td></tr><tr><td>r.VirtualTexturedLightmaps = False</td><td>Отключает виртуальные текстуры для карт освещения. Правильно для Quest, экономит память и вычислительные ресурсы.</td><td></td></tr><tr><td>r.VT.AnisotropicFiltering = False</td><td>Отключает анизотропную фильтрацию для виртуальных текстур. Согласуется с отключением виртуальных текстур для Quest.</td><td></td></tr><tr><td>bEnableVirtualTextureOpacityMask = False</td><td>Отключает маски непрозрачности виртуальных текстур. Согласуется с глобальным отключением виртуальных текстур для Quest.</td><td></td></tr><tr><td>bEnableVirtualTexturePostProcessing = False</td><td>Отключает постобработку виртуальных текстур. Согласуется с отключением виртуальных текстур для Quest.</td><td></td></tr><tr><td>r.VT.TileSize = 128</td><td>Размер тайла виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>r.VT.TileBorderSize = 4</td><td>Размер границы тайла виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>r.vt.FeedbackFactor = 16</td><td>Коэффициент обратной связи для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>r.MeshPaintVirtualTexture.TileSize = 32</td><td>Размер тайла виртуальных текстур для покраски мешей. Не используется для Quest.</td><td></td></tr><tr><td>r.MeshPaintVirtualTexture.TileBorderSize = 2</td><td>Размер границы тайла виртуальных текстур для покраски мешей. Не используется для Quest.</td><td></td></tr><tr><td>r.MeshPaintVirtualTexture.UseCompression = False</td><td>Отключает сжатие виртуальных текстур для покраски мешей. Не используется для Quest.</td><td></td></tr><tr><td>r.StaticMesh.DefaultMeshPaintTextureSupport = False</td><td>Отключает поддержку текстур покраски мешей по умолчанию. Экономит ресурсы на Quest.</td><td></td></tr><tr><td>r.MeshPaintVirtualTexture.DefaultTexelsPerVertex = 4</td><td>Устанавливает количество текселей на вершину для виртуальных текстур покраски мешей. Не используется для Quest.</td><td></td></tr><tr><td>r.MeshPaintVirtualTexture.MaxTextureSize = 4096</td><td>Максимальный размер <strong>виртуальной</strong> текстуры для виртуальных текстур покраски мешей. Не используется для Quest.</td><td></td></tr><tr><td>r.vt.rvt.EnableBaseColor = True</td><td>Включает базовый цвет для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>r.vt.rvt.EnableBaseColorRoughness = True</td><td>Включает шероховатость базового цвета для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>r.vt.rvt.EnableBaseColorSpecular = True</td><td>Включает отражение базового цвета для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>r.vt.rvt.EnableMask4 = True</td><td>Включает маску 4 для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>r.vt.rvt.EnableWorldHeight = True</td><td>Включает мировую высоту для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>r.vt.rvt.EnableDisplacement = True</td><td>Включает смещение для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>r.vt.rvt.HighQualityPerPixelHeight = True</td><td>Включает высококачественную высоту на пиксель для виртуальных текстур. Не используется, так как виртуальные текстуры отключены.</td><td></td></tr><tr><td>WorkingColorSpaceChoice = sRGB</td><td>Выбор рабочего цветового пространства. sRGB стандартно для Quest и большинства мобильных устройств.</td><td></td></tr><tr><td>RedChromaticityCoordinate = (X=0.640000,Y=0.330000)</td><td>Координаты хроматичности для красного цвета. Стандартные значения, подходят для Quest.</td><td></td></tr><tr><td>GreenChromaticityCoordinate = (X=0.300000,Y=0.600000)</td><td>Координаты хроматичности для зелёного цвета. Стандартные значения, подходят для Quest.</td><td></td></tr><tr><td>BlueChromaticityCoordinate = (X=0.150000,Y=0.060000)</td><td>Координаты хроматичности для синего цвета. Стандартные значения, подходят для Quest.</td><td></td></tr><tr><td>WhiteChromaticityCoordinate = (X=0.312700,Y=0.329000)</td><td>Координаты хроматичности для белого цвета. Стандартные значения, подходят для Quest.</td><td></td></tr><tr><td>r.LegacyLuminanceFactors = False</td><td>Отключает устаревшие факторы яркости. Рекомендуется для новых проектов на Quest.</td><td></td></tr><tr><td>r.ClearCoatNormal = False</td><td>Отключает нормали для прозрачного покрытия. Экономит производительность на Quest.</td><td></td></tr><tr><td>r.DynamicGlobalIlluminationMethod = 0</td><td>Метод динамического глобального освещения. Значение 0 отключает его, что оптимально для Quest из-за ограниченных ресурсов.</td><td><a href="https://forums.unrealengine.com/t/dynamic-global-illumination-method-greyed-out/527254/7">https://forums.unrealengine.com/t/dynamic-global-illumination-method-greyed-out/527254/7</a></td></tr><tr><td>r.ReflectionMethod = 0</td><td><p>Метод отражений. Значение 0 использует базовые отражения, что подходит для Quest:</p><ul><li><strong>Reflection Capture Actors</strong> (кубические и сферические карты — работают даже при <code>=0</code>).</li><li><strong>Skylight</strong> с кубмапой тоже продолжит работать.</li><li><strong>Planar Reflections</strong>, если включены. (но мы выключаем для Quest)</li><li>Эмуляция отражений в материалах (через roughness/specular/emissive и пр.)</li></ul></td><td><a href="https://forums.unrealengine.com/t/can-i-create-a-setting-for-the-in-game-reflection-method/1256751">https://forums.unrealengine.com/t/can-i-create-a-setting-for-the-in-game-reflection-method/1256751</a></td></tr><tr><td>r.ReflectionCaptureResolution = 128</td><td>Разрешение для захвата отражений. 128 - низкое значение, подходящее для экономии памяти на Quest.</td><td></td></tr><tr><td>r.ReflectionEnvironmentLightmapMixBasedOnRoughness = True</td><td>Смешивание отражения окружения и карты освещения на основе шероховатости. Улучшает визуальное качество с минимальным влиянием на производительность Quest.</td><td></td></tr><tr><td>r.Lumen.HardwareRayTracing = False</td><td>Отключает аппаратную трассировку лучей для Lumen. Правильно для Quest, так как он не поддерживает трассировку лучей.</td><td></td></tr><tr><td>r.Lumen.HardwareRayTracing.LightingMode = 0</td><td>Режим освещения для аппаратной трассировки лучей Lumen. Не используется, так как аппаратная трассировка лучей отключена.</td><td></td></tr><tr><td>r.Lumen.TranslucencyReflections.FrontLayer.EnableForProject = False</td><td>Отключает отражения полупрозрачности переднего слоя для Lumen. Lumen не используется на Quest, поэтому настройка правильная.</td><td></td></tr><tr><td>r.Lumen.TraceMeshSDFs = 1</td><td>Трассировка SDF-меши для Lumen. Не имеет эффекта, так как Lumen отключен для Quest.</td><td></td></tr><tr><td>r.Lumen.ScreenTracingSource = 0</td><td>Источник трассировки экрана для Lumen. Не имеет эффекта, так как Lumen отключен для Quest.</td><td></td></tr><tr><td>r.Lumen.Reflections.HardwareRayTracing.Translucent.Refraction.EnableForProject = False</td><td>Отключает преломление полупрозрачности при аппаратной трассировке лучей для отражений Lumen. Не имеет эффекта, так как Lumen отключен для Quest.</td><td></td></tr><tr><td>r.MegaLights.EnableForProject = False</td><td>Отключает MegaLights для проекта. Правильно для Quest, так как эта функция требует значительных ресурсов.</td><td></td></tr><tr><td>r.RayTracing.Shadows = False</td><td>Отключает трассировку лучей для теней. Правильно для Quest, так как он не поддерживает трассировку лучей.</td><td></td></tr><tr><td>r.Shadow.Virtual.Enable = 0</td><td>Отключает виртуальные тени. Правильно для Quest из-за ограниченных ресурсов.</td><td></td></tr><tr><td>r.RayTracing = False</td><td>Глобально отключает трассировку лучей. Правильно для Quest, так как он не поддерживает трассировку лучей.</td><td></td></tr><tr><td>r.RayTracing.UseTextureLod = False</td><td>Отключает использование LOD текстур для трассировки лучей. Не имеет эффекта, так как трассировка лучей отключена для Quest.</td><td></td></tr><tr><td>r.PathTracing = False</td><td>Отключает трассировку путей. Правильно для Quest, так как он не поддерживает трассировку путей.</td><td></td></tr><tr><td>r.GenerateMeshDistanceFields = False</td><td>Отключает генерацию полей расстояния для мешей. Правильно для Quest, экономит память и вычислительные ресурсы.</td><td></td></tr><tr><td>r.DistanceFields.DefaultVoxelDensity = 0.200000</td><td>Устанавливает плотность вокселей по умолчанию для полей расстояния. Не имеет эффекта, так как поля расстояния отключены для Quest.</td><td></td></tr><tr><td>r.Nanite.ProjectEnabled = False</td><td>Отключает Nanite для проекта. Правильно для Quest, так как он не поддерживает Nanite.</td><td></td></tr><tr><td>r.AllowStaticLighting = True</td><td>Разрешает статическое освещение. Рекомендуется для Quest, так как предварительно вычисленное освещение экономит вычислительные ресурсы во время выполнения.</td><td></td></tr><tr><td>r.NormalMapsForStaticLighting = True</td><td>Использует карты нормалей для статического освещения. Улучшает визуальное качество статического освещения с минимальным влиянием на производительность Quest.</td><td></td></tr><tr><td>r.ForwardShading = True</td><td>Включает прямой рендеринг. Оптимально для VR на Quest, обеспечивает лучшую производительность для стереоскопического рендеринга.</td><td></td></tr><tr><td>r.VertexFoggingForOpaque = False</td><td>Отключает туман для непрозрачных объектов на уровне вершин. Может улучшить производительность на Quest.</td><td></td></tr><tr><td>r.SeparateTranslucency = False</td><td>Отключает отдельный рендеринг полупрозрачности. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.TranslucentSortPolicy = 0</td><td>Политика сортировки полупрозрачных объектов. Значение 0 означает сортировку по расстоянию, что подходит для большинства случаев на Quest.</td><td></td></tr><tr><td>TranslucentSortAxis = (X=0.000000,Y=-1.000000,Z=0.000000)</td><td>Ось сортировки полупрозрачных объектов. Стандартное значение, подходит для большинства случаев.</td><td></td></tr><tr><td>r.LocalFogVolume.ApplyOnTranslucent = False</td><td>Не применяет локальные объёмы тумана к полупрозрачным объектам. Правильно для Quest, экономит производительность.</td><td></td></tr><tr><td>xr.VRS.FoveationLevel = 3</td><td>Уровень фовеации для Variable Rate Shading в XR. Значение 3 означает агрессивную фовеацию, что значительно улучшает производительность на Quest путем снижения разрешения рендеринга периферийного зрения.</td><td></td></tr><tr><td>xr.VRS.DynamicFoveation = False</td><td>Отключает динамическую фовеацию для VRS в XR. Статическая фовеация более предсказуема для производительности на Quest.</td><td></td></tr><tr><td>r.CustomDepth = 1</td><td>Разрешает пользовательский буфер глубины с ограниченной функциональностью. Компромисс между возможностями и производительностью для Quest.</td><td></td></tr><tr><td>r.CustomDepthTemporalAAJitter = False</td><td>Отключает дрожание временного сглаживания для пользовательского буфера глубины. Улучшает стабильность изображения для VR на Quest.</td><td></td></tr><tr><td>r.PostProcessing.PropagateAlpha = False</td><td>Не распространяет альфа-канал через цепочку постобработки. Экономит вычислительные ресурсы на Quest.</td><td></td></tr><tr><td>r.Deferred.SupportPrimitiveAlphaHoldout = False</td><td>Отключает поддержку вырезания альфа для примитивов в отложенном рендеринге. Не имеет эффекта, так как используется прямой рендеринг для Quest.</td><td></td></tr><tr><td>r.DefaultFeature.Bloom = True</td><td>Включает цветение по умолчанию. Улучшает визуальное качество, но следует использовать умеренно на Quest.</td><td></td></tr><tr><td>r.DefaultFeature.AmbientOcclusion = False</td><td>Отключает окружающую окклюзию по умолчанию. Правильно для Quest, так как SSAO требует значительных ресурсов.</td><td></td></tr><tr><td>r.DefaultFeature.AmbientOcclusionStaticFraction = False</td><td>Отключает статическую фракцию окружающей окклюзии. Согласуется с отключением окружающей окклюзии для Quest.</td><td></td></tr><tr><td>r.DefaultFeature.AutoExposure = False</td><td>Отключает автоэкспозицию по умолчанию. Правильно для VR на Quest, так как изменения экспозиции могут вызывать дискомфорт.</td><td></td></tr><tr><td>r.DefaultFeature.AutoExposure.Method = 2</td><td>Метод автоэкспозиции. Не имеет эффекта, так как автоэкспозиция отключена для Quest.</td><td></td></tr><tr><td>r.DefaultFeature.AutoExposure.Bias = 1.000000</td><td>Смещение автоэкспозиции. Не имеет эффекта, так как автоэкспозиция отключена для Quest.</td><td></td></tr><tr><td>r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange = True</td><td>Расширяет диапазон яркости по умолчанию для автоэкспозиции. Не имеет эффекта, так как автоэкспозиция отключена для Quest.</td><td></td></tr><tr><td>r.DefaultFeature.LocalExposure.HighlightContrastScale = 0.800000</td><td>Масштаб контраста подсветки для локальной экспозиции. Не используется на Quest.</td><td></td></tr><tr><td>r.DefaultFeature.LocalExposure.ShadowContrastScale = 0.800000</td><td>Масштаб контраста теней для локальной экспозиции. Не используется на Quest.</td><td></td></tr><tr><td>r.DefaultFeature.MotionBlur = False</td><td>Отключает размытие движения по умолчанию. Правильно для VR на Quest, так как размытие движения может вызывать дискомфорт и снижать производительность.</td><td></td></tr><tr><td>r.DefaultFeature.LensFlare = False</td><td>Отключает эффект блика линз по умолчанию. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.AntiAliasingMethod = 0</td><td>Метод сглаживания. Значение 0 означает отсутствие постобработки сглаживания, что правильно, так как используется MSAA.</td><td></td></tr><tr><td>r.TemporalAA.Upsampling = False</td><td>Отключает апсэмплинг временного сглаживания. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.MSAACount = 4</td><td>Количество сэмплов для MSAA. Значение 4 означает 4x MSAA, что является хорошим компромиссом между качеством и производительностью для Quest.</td><td></td></tr><tr><td>r.DefaultFeature.LightUnits = 1</td><td>Единицы измерения света. Значение 1 означает физически корректные единицы, что подходит для большинства случаев.</td><td></td></tr><tr><td>r.DefaultBackBufferPixelFormat = 4</td><td>Формат пикселей заднего буфера по умолчанию. Значение 4 соответствует 8-битному формату, что подходит для Quest.</td><td></td></tr><tr><td>r.ScreenPercentage.Default = 100.000000</td><td>Процент экрана по умолчанию. 100% означает рендеринг в нативном разрешении. Можно уменьшить для повышения производительности на Quest.</td><td></td></tr><tr><td>r.ScreenPercentage.Default.Desktop.Mode = 1</td><td>Режим процента экрана по умолчанию для настольных ПК. Не влияет на Quest.</td><td></td></tr><tr><td>r.ScreenPercentage.Default.Mobile.Mode = 0</td><td>Режим процента экрана по умолчанию для мобильных устройств. Значение 0 означает отключение динамического разрешения, что подходит для большинства случаев на Quest.</td><td></td></tr><tr><td>r.ScreenPercentage.Default.VR.Mode = 0</td><td>Режим процента экрана по умолчанию для VR. Значение 0 означает отключение динамического разрешения, что хорошо для Quest, учитывая наличие фовеации.</td><td></td></tr><tr><td>r.ScreenPercentage.Default.PathTracer.Mode = 0</td><td>Режим процента экрана по умолчанию для трассировщика путей. Не имеет эффекта, так как трассировка путей отключена для Quest.</td><td></td></tr><tr><td>r.Shadow.UnbuiltPreviewInGame = False</td><td>Отключает предварительный просмотр непостроенных теней в игре. Правильно для релизных сборок, экономит производительность на Quest.</td><td></td></tr><tr><td>r.StencilForLODDither = False</td><td>Отключает использование трафарета для дизеринга LOD. Может улучшить производительность на Quest.</td><td></td></tr><tr><td>r.EarlyZPass = 3</td><td>Тип раннего Z-прохода. Значение 3 означает полный ранний Z-проход, что улучшает производительность на сложных сценах для Quest.</td><td></td></tr><tr><td>r.EarlyZPassOnlyMaterialMasking = False</td><td>Отключает ограничение раннего Z-прохода только маскированием материала. Позволяет полному раннему Z-проходу работать эффективнее на Quest.</td><td></td></tr><tr><td>r.Shadow.CSMCaching = True</td><td>Включает кэширование карт теней от каскадов. Улучшает производительность динамических теней на Quest.</td><td></td></tr><tr><td>r.DBuffer = False</td><td>Отключает буфер декалей. Правильно для Quest, экономит память и вычислительные ресурсы.</td><td></td></tr><tr><td>r.ClearSceneMethod = 1</td><td>Метод очистки сцены. Значение 1 означает очистку на основе бесконечного далекого цвета неба, что подходит для большинства случаев.</td><td></td></tr><tr><td>r.VelocityOutputPass = 0</td><td>Отключает проход вывода скорости. Правильно для Quest, экономит вычислительные ресурсы, особенно при отключенном размытии движения.</td><td></td></tr><tr><td>r.Velocity.EnableVertexDeformation = 2</td><td>Включает деформацию вершин для скорости при скиннинге. Не имеет большого эффекта при отключенном размытии движения.</td><td></td></tr><tr><td>r.SelectiveBasePassOutputs = False</td><td>Отключает селективные выходы базового прохода. Упрощает рендеринг на Quest.</td><td></td></tr><tr><td>bDefaultParticleCutouts = False</td><td>Отключает вырезы для частиц по умолчанию. Улучшает производительность частиц на Quest.</td><td></td></tr><tr><td>fx.GPUSimulationTextureSizeX = 1024</td><td>Размер текстуры симуляции GPU по X. 1024 - разумное значение для Quest.</td><td></td></tr><tr><td>fx.GPUSimulationTextureSizeY = 1024</td><td>Размер текстуры симуляции GPU по Y. 1024 - разумное значение для Quest.</td><td></td></tr><tr><td>r.AllowGlobalClipPlane = False</td><td>Отключает глобальную плоскость отсечения. Улучшает производительность на Quest, но ограничивает некоторые эффекты, такие как зеркала.</td><td></td></tr><tr><td>r.GBufferFormat = 1</td><td>Формат G-буфера. Значение 1 означает сниженное качество G-буфера, что подходит для Quest при прямом рендеринге.</td><td></td></tr><tr><td>r.MorphTarget.Mode = True</td><td>Включает морф-таргеты. Позволяет использовать морф-анимацию на Quest, но следует использовать умеренно.</td><td></td></tr><tr><td>r.MorphTarget.MaxBlendWeight = 5.000000</td><td>Максимальный вес смешивания для морф-таргетов. Ограничивает количество одновременно активных морф-таргетов, что важно для производительности на Quest.</td><td></td></tr><tr><td>r.SupportSkyAtmosphere = True</td><td>Включает поддержку атмосферы неба. На Quest следует использовать простые версии атмосферы для лучшей производительности.</td><td></td></tr><tr><td>r.SupportSkyAtmosphereAffectsHeightFog = True</td><td>Позволяет атмосфере неба влиять на туман высоты. Улучшает визуальное соответствие между небом и туманом.</td><td></td></tr><tr><td>r.SupportExpFogMatchesVolumetricFog = False</td><td>Отключает соответствие экспоненциального тумана объемному туману. Правильно для Quest, так как объемный туман обычно отключен.</td><td></td></tr><tr><td>r.SupportLocalFogVolumes = True</td><td>Включает поддержку локальных объемов тумана. Можно использовать на Quest для небольших локальных эффектов.</td><td></td></tr><tr><td>r.SupportCloudShadowOnForwardLitTranslucent = False</td><td>Отключает тени облаков на полупрозрачных объектах с прямым освещением. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.LightFunctionAtlas.Format = 0</td><td>Формат атласа световых функций. Значение 0 означает стандартный формат, что подходит для простых световых функций на Quest.</td><td></td></tr><tr><td>r.VolumetricFog.LightFunction = False</td><td>Отключает световые функции для объемного тумана. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Deferred.UsesLightFunctionAtlas = False</td><td>Не использует атлас световых функций в отложенном рендеринге. Не имеет эффекта, так как используется прямой рендеринг для Quest.</td><td></td></tr><tr><td>r.SingleLayerWater.UsesLightFunctionAtlas = False</td><td>Не использует атлас световых функций для однослойной воды. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Translucent.UsesLightFunctionAtlas = False</td><td>Не использует атлас световых функций для полупрозрачных объектов. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Translucent.UsesIESProfiles = False</td><td>Не использует профили IES для полупрозрачных объектов. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Translucent.UsesRectLights = False</td><td>Не использует прямоугольные источники света для полупрозрачных объектов. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.GPUCrashDebugging = False</td><td>Отключает отладку сбоев GPU. Правильно для релизных сборок.</td><td></td></tr><tr><td>vr.InstancedStereo = True</td><td>Включает инстансированное стерео. Критично для оптимальной производительности VR на Quest, позволяет рендерить оба глаза за один проход.</td><td></td></tr><tr><td>r.MobileHDR = False</td><td>Отключает HDR на мобильных устройствах. Правильно для Quest, значительно экономит вычислительные ресурсы.</td><td></td></tr><tr><td>vr.MobileMultiView = True</td><td>Включает мобильный многовидовой рендеринг. Критично для оптимальной производительности VR на Quest, использует оптимизированный путь для стереоскопического рендеринга.</td><td></td></tr><tr><td>r.Mobile.UseHWsRGBEncoding = True</td><td>Использует аппаратное кодирование sRGB на мобильных устройствах. Улучшает производительность на Quest.</td><td></td></tr><tr><td>vr.RoundRobinOcclusion = False</td><td>Отключает карусельную окклюзию для VR. Используйте инстансированное стерео вместо этого для Quest.</td><td></td></tr><tr><td>r.MeshStreaming = False</td><td>Отключает потоковую загрузку мешей. Может улучшить стабильность на Quest, хотя ограничивает возможности управления памятью.</td><td></td></tr><tr><td>r.HeterogeneousVolumes = False</td><td>Отключает гетерогенные объемы. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.HeterogeneousVolumes.Shadows = False</td><td>Отключает тени для гетерогенных объемов. Согласуется с отключением гетерогенных объемов для Quest.</td><td></td></tr><tr><td>r.Translucency.HeterogeneousVolumes = False</td><td>Отключает гетерогенные объемы для полупрозрачности. Согласуется с отключением гетерогенных объемов для Quest.</td><td></td></tr><tr><td>r.WireframeCullThreshold = 5.000000</td><td>Порог отсечения для проволочного отображения. Не влияет на релизные сборки.</td><td></td></tr><tr><td>r.SupportStationarySkylight = True</td><td>Включает поддержку стационарного света неба. Можно использовать на Quest, но следует быть осторожным с разрешением отражений.</td><td></td></tr><tr><td>r.SupportLowQualityLightmaps = True</td><td>Включает поддержку карт освещения низкого качества. Полезно для Quest для экономии памяти.</td><td></td></tr><tr><td>r.SupportPointLightWholeSceneShadows = True</td><td>Включает поддержку теней от точечных источников света на всю сцену. Следует использовать умеренно на Quest.</td><td></td></tr><tr><td>r.Shadow.TranslucentPerObject.ProjectEnabled = False</td><td>Отключает тени на полупрозрачные объекты для проекта. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Water.SingleLayerWater.SupportCloudShadow = False</td><td>Не поддерживает тени облаков для однослойной воды. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Substrate = False</td><td>Отключает систему материалов Substrate. Правильно для Quest, так как Substrate требует значительных ресурсов.</td><td></td></tr><tr><td>r.Substrate.OpaqueMaterialRoughRefraction = True</td><td>Включает преломление шероховатости для непрозрачных материалов в Substrate. Не имеет эффекта, так как Substrate отключен для Quest.</td><td></td></tr><tr><td>r.Refraction.Blur = True</td><td>Включает размытие преломления. Можно использовать на Quest для простых эффектов преломления.</td><td></td></tr><tr><td>r.Substrate.Debug.AdvancedVisualizationShaders = False</td><td>Отключает расширенные шейдеры визуализации для отладки Substrate. Согласуется с отключением Substrate для Quest.</td><td></td></tr><tr><td>r.Material.RoughDiffuse = False</td><td>Отключает шероховатый диффузный материал. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Material.EnergyConservation = False</td><td>Отключает сохранение энергии для материалов. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Material.DefaultAutoMaterialUsage = True</td><td>Включает автоматическое использование материалов по умолчанию. Полезно для разработки.</td><td></td></tr><tr><td>r.OIT.SortedPixels = False</td><td>Отключает сортированные пиксели для Order-Independent Transparency. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.HairStrands.LOD = False</td><td>Отключает LOD для прядей волос. Согласуется с тем, что система Groom не используется на Quest.</td><td></td></tr><tr><td>r.SkinCache.CompileShaders = True</td><td>Компилирует шейдеры для кэша скинов. Необходимо для использования кэша скинов на Quest.</td><td></td></tr><tr><td>r.VRS.Support = True</td><td>Включает поддержку Variable Rate Shading. Полезно для Quest, работает совместно с фовеацией.</td><td></td></tr><tr><td>r.SkinCache.SkipCompilingGPUSkinVF = False</td><td>Не пропускает компиляцию вершинных фабрик для скинов GPU. Не рекомендуется изменять.</td><td></td></tr><tr><td>r.SkinCache.DefaultBehavior = 1</td><td>Устанавливает поведение кэша скинов по умолчанию. Значение 1 означает автоматический выбор, что подходит для большинства случаев.</td><td></td></tr><tr><td>r.SkinCache.SceneMemoryLimitInMB = 128.000000</td><td>Ограничение памяти сцены для кэша скинов в МБ. 128 - разумное значение для Quest.</td><td></td></tr><tr><td>r.Mobile.EnableStaticAndCSMShadowReceivers = False</td><td>Отключает приемники статических теней и теней CSM на мобильных устройствах. Улучшает производительность на Quest.</td><td></td></tr><tr><td>r.Mobile.EnableMovableLightCSMShaderCulling = True</td><td>Включает отсечение шейдеров CSM для движущихся источников света на мобильных устройствах. Улучшает производительность на Quest.</td><td></td></tr><tr><td>r.Mobile.Forward.EnableLocalLights = 1</td><td>Включает локальные источники света для прямого рендеринга на мобильных устройствах. Позволяет использовать динамическое освещение на Quest.</td><td></td></tr><tr><td>r.Mobile.Forward.EnableClusteredReflections = False</td><td>Отключает кластеризованные отражения для прямого рендеринга на мобильных устройствах. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Mobile.AllowDistanceFieldShadows = False</td><td>Отключает тени на основе полей расстояния на мобильных устройствах. Правильно для Quest, экономит память и вычислительные ресурсы.</td><td></td></tr><tr><td>r.Mobile.EnableMovableSpotlightsShadow = False</td><td>Отключает тени от движущихся прожекторов на мобильных устройствах. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.GPUSkin.Support16BitBoneIndex = False</td><td>Отключает поддержку 16-битных индексов костей для скинов GPU. Правильно для Quest, так как обычно не требуется более 8 бит для индексов костей.</td><td></td></tr><tr><td>r.GPUSkin.Limit2BoneInfluences = False</td><td>Не ограничивает скины GPU 2 костными влияниями. Позволяет использовать до 4 костных влияний на Quest.</td><td></td></tr><tr><td>r.SupportDepthOnlyIndexBuffers = False</td><td>Отключает поддержку индексных буферов только для глубины. Упрощает рендеринг на Quest.</td><td></td></tr><tr><td>r.SupportReversedIndexBuffers = False</td><td>Отключает поддержку обратных индексных буферов. Упрощает рендеринг на Quest.</td><td></td></tr><tr><td>r.Mobile.AmbientOcclusion = False</td><td>Отключает окружающую окклюзию на мобильных устройствах. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Mobile.DBuffer = False</td><td>Отключает буфер декалей на мобильных устройствах. Правильно для Quest, экономит память и вычислительные ресурсы.</td><td></td></tr><tr><td>r.GPUSkin.UnlimitedBoneInfluences = False</td><td>Отключает неограниченные костные влияния для скинов GPU. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.GPUSkin.AlwaysUseDeformerForUnlimitedBoneInfluences = False</td><td>Не всегда использует деформатор для неограниченных костных влияний. Не имеет эффекта, так как неограниченные костные влияния отключены для Quest.</td><td></td></tr><tr><td>r.GPUSkin.UnlimitedBoneInfluencesThreshold = 8</td><td>Порог для неограниченных костных влияний. Не имеет эффекта, так как неограниченные костные влияния отключены для Quest.</td><td></td></tr><tr><td>DefaultBoneInfluenceLimit = (Default=0,PerPlatform=())</td><td>Лимит костных влияний по умолчанию. Значение 0 означает использование движковых настроек, что подходит для большинства случаев.</td><td></td></tr><tr><td>MaxSkinBones = (Default=65536,PerPlatform=(("Mobile", 256)))</td><td>Максимальное количество костей для скинов. Ограничение до 256 для мобильных платформ, включая Quest, что обычно достаточно.</td><td></td></tr><tr><td>r.Mobile.PlanarReflectionMode = 0</td><td>Режим планарных отражений на мобильных устройствах. Значение 0 означает отключение, что правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Mobile.ScreenSpaceReflections = False</td><td>Отключает экранные отражения на мобильных устройствах. Правильно для Quest, экономит вычислительные ресурсы.</td><td></td></tr><tr><td>r.Mobile.SupportsGen4TAA = False</td><td>Отключает поддержку TAA 4-го поколения на мобильных устройствах. Правильно для Quest, так как используется MSAA вместо TAA.</td><td></td></tr><tr><td>bStreamSkeletalMeshLODs = (Default=False,PerPlatform=())</td><td>Отключает потоковую загрузку LOD скелетных мешей. Может улучшить стабильность на Quest.</td><td></td></tr><tr><td>bDiscardSkeletalMeshOptionalLODs = (Default=False,PerPlatform=())</td><td>Не отбрасывает дополнительные LOD скелетных мешей. Позволяет использовать все LOD на Quest.</td><td></td></tr><tr><td>VisualizeCalibrationColorMaterialPath = /Engine/EngineMaterials/PPM_DefaultCalibrationColor.PPM_DefaultCalibrationColor</td><td>Путь к материалу цветовой калибровки для визуализации. Используется только для разработки.</td><td></td></tr><tr><td>VisualizeCalibrationCustomMaterialPath = None</td><td>Путь к пользовательскому материалу калибровки для визуализации. Не установлен.</td><td></td></tr><tr><td>VisualizeCalibrationGrayscaleMaterialPath = /Engine/EngineMaterials/PPM_DefaultCalibrationGrayscale.PPM_DefaultCalibrationGrayscale</td><td>Путь к материалу калибровки в оттенках серого для визуализации. Используется только для разработки.</td><td></td></tr><tr><td>r.AllowGlobalClipPlane = False</td><td>Отключает глобальную плоскость отсечения. Улучшает производительность на Quest, повторяющаяся настройка.</td><td></td></tr></tbody></table>

## Заключение

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

1. Использование прямого рендеринга (Forward Rendering) вместо отложенного
2. Активация фовеации (VRS.FoveationLevel = 3)
3. Отключение ресурсоемких функций (Lumen, Nanite, трассировка лучей)
4. Использование MSAA (4x) для сглаживания
5. Включение инстансированного стерео и мобильного многовидового рендеринга

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