Судя по комментариям, похоже, что какое-то время вы этого не сделаете, но если / когда вы это сделаете, волшебной палочки нет, вам придется иметь дело со всеми вариантами по отдельности, и этозависит от поддерживаемых вами функций.
Например, для текстур опция "low" может означать, что вы не загружаете самый высокий mip, а вместо этого начинаете со второго самого высокого.
Youможет сделать нечто подобное с LODами ваших моделей.
Многие варианты - это версии ваших шейдеров.Таким образом, вы можете написать одну затененную, которая поддерживает четыре динамических источника света, другую версию, которая поддерживает одну и третью версию, которая не поддерживает ни одного.Затем у вас есть другие варианты, такие как количество проходов текстуры и методы генерации теней.Это приводит к комбинаторному взрыву шейдерных версий.Таким образом, в большинстве игр есть способ сшивания кусков шейдерного кода для формирования комбинации параметров, которые они хотят для каждой модели, и настроек качества.
Параметры разрешения экрана являются наиболее простыми.В зависимости от того, какую версию DirectX вы используете, вы можете вызывать различные функции для перечисления полноэкранных режимов, которые поддерживаются устройством.Например, EnumAdapterModes в DirectX 9 и EnumAdapters в DirectX 10.