Параметры устройства DirectX - PullRequest
       14

Параметры устройства DirectX

1 голос
/ 15 октября 2011

Почти во всех играх сегодня есть меню параметров видео, где вы можете выбрать качество текстур, шейдеров, теней, разрешения и т. Д. Мне просто интересно, как я могу найти доступные параметры?(например, если у пользователя есть экран 1080x1050, не должно быть опции для разрешения 1920x1200)

Если это не так, нужно ли мне создавать список функций и просто позволить пользователю выбрать выбратьлюбой из них?Как бы я это сделал?Кстати, я использую C ++.

1 Ответ

2 голосов
/ 15 октября 2011

Судя по комментариям, похоже, что какое-то время вы этого не сделаете, но если / когда вы это сделаете, волшебной палочки нет, вам придется иметь дело со всеми вариантами по отдельности, и этозависит от поддерживаемых вами функций.

Например, для текстур опция "low" может означать, что вы не загружаете самый высокий mip, а вместо этого начинаете со второго самого высокого.

Youможет сделать нечто подобное с LODами ваших моделей.

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

Параметры разрешения экрана являются наиболее простыми.В зависимости от того, какую версию DirectX вы используете, вы можете вызывать различные функции для перечисления полноэкранных режимов, которые поддерживаются устройством.Например, EnumAdapterModes в DirectX 9 и EnumAdapters в DirectX 10.

...