Полноэкранный рендеринг на широкоэкранных мониторах - PullRequest
2 голосов
/ 06 января 2010

Моя ситуация следующая. Я делаю игры, которые используют фоны фиксированного размера (скажем, 800x600). Когда игроки выходят на полный экран на широкоэкранном мониторе, я добавляю черные полосы по бокам, чтобы игра не выглядела растянутой.

Однако есть несколько способов сделать это, и мне интересно, каков наилучший подход:

1) Найдите разрешение, которое точно соответствует исходному соотношению сторон монитора, и увеличьте отображаемое изображение до высоты. Например, мой монитор имеет разрешение 1280x800, поэтому я установил это разрешение и масштабировал изображения на 1,33 - для этого требуется 1066x800, но он выглядит хорошо. Недостатки: увеличение, но масштабирование равномерное (поэтому пиксели все еще квадратные)

2) Установите полноэкранный режим 800x600, уменьшив ширину на 0,625, чтобы визуализированное изображение выглядело не растянутым. Недостатки: неравномерное масштабирование. Это выглядит хорошо?

3) Что-то еще

Какой, по вашему мнению, лучший способ сделать это?

Ответы [ 4 ]

4 голосов
/ 07 января 2010

Я бы также предложил ваш вариант 1. В частности, вы хотите оставить разрешение экрана в собственном разрешении монитора, если это вообще возможно. В наши дни большинство людей используют ЖК-дисплеи, и если выходное разрешение не совпадает с исходным разрешением экрана (или не очень удобно многократным), то вы можете получить некоторые ужасные артефакты и размытие. Поэтому определенно начните с родного разрешения, определите меньшее измерение (вероятная высота, поскольку широкоэкранный - все в моде) и дотируйте стороны. Вы определенно хотите сохранить квадратные пиксели. Возможно, вы даже обнаружите (в зависимости от соотношения размеров между вашими игровыми активами и выходными данными), что вы получите лучшие результаты, если вы уменьшите масштаб.

3 голосов
/ 07 января 2010

Решение 1) звучит лучше для меня (прост в реализации и производительности).

Вы также можете визуализировать свою игру в текстуре фиксированного размера (800x600), а затем визуализировать квад (два треугольника, выровненные по экрану) с собственным разрешением экрана, прямо посередине, с включенным текстурированием и фиксированным размер текстуры привязан к конвейеру.

1 голос
/ 07 января 2010

Не очень много опыта в этом, но важно ли, чтобы весь фон был виден? Если нет, то как насчет масштабирования, как вы можете сделать с фонами в окнах: Заполните экран и обрежьте края, которые выходят наружу снизу и сверху (или слева и справа). Таким образом, соотношение сторон изображения также не будет нарушено.

Если качество плохое, как насчет увеличения изображения и его уменьшения? Должно быть лучшего качества, чем, по крайней мере, увеличение.

0 голосов
/ 07 января 2010

Mhn ... насколько я знаю, это уже делается большинством драйверов в качестве опции, без необходимости конкретного кодирования. (По крайней мере, у Intel есть такой, и он отлично работает. Он имеет три режима: неограниченное растяжение, растяжение с сохранением соотношения сторон (с черными полосами), по центру (без растяжения))

В любом случае, если вам нужно кодировать, он предпочитает использовать равномерное масштабирование, иначе вы получите плохие результаты. : P

...