Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2010, 22:54   #41
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Спасибо. Правда, меня интересовала не смена разрешения на ходу, а смена его в меню настроек и не 'Оконное => Полноэкранное', а смена разрешений в полноэкранном режиме (во многих играх такое реализовано). Ну, из того, что вы описали, я думаю, что все здесь применимо и к моему случаю. Но остается еще и другой вопрос: как располагать объекты на экране в зависимости от разрешения экрана? Ведь необходимо:

1. Менять их координаты
2. Менять их размер

Почему-то мне кажется, что вариант с рендером в текстуру, размером равную размеру экрана и последующим наложением ее на экран (сжатием) не подходит.
ZotaC вне форума Ответить с цитированием
Старый 07.11.2010, 09:52   #42
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

ZotaC,
Цитата:
...Ну, из того, что вы описали, я думаю, что все здесь применимо и к моему случаю...
Конечно, и к вашему… менять можно и в полноэкранном режиме разрешение, никто вам не запрещает. Другое дело что, выбор будущего разрешения будет производиться еще в старом контексте. А уже когда пользователь, пользуясь вашей игровой UI(пользовательским интерфейсом) нажмет кнопочку «ок»… далее по сценарию выше описанному).

Насчет размещения объектов. Какие это объекты? Если это опять же ваш игровой UI привязывайте его к краям (текущего разрешения) или запоминайте расположение на кране где они у вас находятся, если они у вас двигаются конечно же, пользователь сам растащит их куда ему нужно.
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 07.11.2010, 10:26   #43
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Цитата:
Какие это объекты?
Это все игровые объекты: кнопки, списки, боевые единицы, здания и т.д. А как быть с их размерами? Если просто привязывать к краям, как вы говорите, то да, при смене разрешения размеры объектов тоже должны меняться. Но ведь сами картинки остаются прежних размеров.

Тогда вопрос: с чем связано уменьшение тормозов в играх при смене разрешения на более низкое? Не с тем ли, что и все изображения становятся более низкого качества?
ZotaC вне форума Ответить с цитированием
Старый 07.11.2010, 14:28   #44
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

Цитата:
Это все игровые объекты: кнопки, списки
это элементы управления, по-моему…

Цитата:
…боевые единицы, здания и т.д..
а это уже объекты непосредственно связанные с логикой игры, т.е. в вашем выражении «игровые объекты»


Цитата:
Но ведь сами картинки остаются прежних размеров.
Как правило, при смене разрешения на более высокое… увеличивается непосредственно игровая область, в котором вы можете наблюдать большее кол-во юнитов, зданий, элементов окружения, декора. Зачем вам их увеличивать?


Цитата:
с чем связано уменьшение тормозов в играх при смене разрешения на более низкое? Не с тем ли, что и все изображения становятся более низкого качества?
Уменьшается область прорисовки – меньше нагрузка на видео подсистему.


Возможно, вам поможет и подскажет пример следующего кода.
В процедуре изменения разрешения (у меня в reshape() )…

1. Масштабирует сцену (в случае изменения) к соотношениям заданным при инициализации контекста oGL с помощью GLUT.

Код:
void Reshape ( int w, int h )
{
glViewport ( 0, 0, (GLsizei) Scene :: width, (GLsizei) Scene :: height );
….
}

2. Не масштабирует. Какое окно, такая и область – рисования.
Код:
void Reshape ( int w, int h )
{
glViewport ( 0, 0, (GLsizei) w, (GLsizei) h );
…
}
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 07.11.2010, 14:57   #45
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Цитата:
Как правило, при смене разрешения на более высокое… увеличивается непосредственно игровая область, в котором вы можете наблюдать большее кол-во юнитов, зданий, элементов окружения, декора. Зачем вам их увеличивать?
Хм... А мне, почему-то, казалось, что при увеличении разрешения не должно рисоваться больше объектов: все объекты должны увеличиваться, и, как следствие, в экран их попадет столько же, сколько и при меньшем разрешении.
ZotaC вне форума Ответить с цитированием
Старый 07.11.2010, 20:46   #46
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

Цитата:
Хм... А мне, почему-то, казалось, что при увеличении разрешения не должно рисоваться больше объектов: все объекты должны увеличиваться, и, как следствие, в экран их попадет столько же, сколько и при меньшем разрешении.
Согласен. Но не везде же, это дело вкуса, ума разработчика, а так же специфика жанра) …если управления камерой нету и к тому же, если мы возьмем «тру-2D» (R)TS, там нет таких прелестей как – отдаление / приближения, зачем нам растягивать спрайты? и для чего пользователь решил сменить разрешение? Может он захотел, что бы кругозор был чуть побольше?)

Я сужу по старым 2D (R)TS’ам и насколько мне припоминается там расширялась обозримая игровая область. В современных же играх такое мало практикуется, ведь вы вольны отдалится (приблизится) камерой от объекта на столько, на сколько вам заблагорассудится, разумеется, в пределах дозволенных разработчиком.

Гляньте пример прикрепленный ниже …там два скрина при разных разрешениях.
Вот о чем я говорю)

ссылка на изображение, размер: 597 кбайт, 800 x 600 точек
ссылка на изображение, размер: 2.34 Мбайт, 1024 x 768 точек
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 07.11.2010, 21:45   #47
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Спасибо, убедили. Просто, сначала это представлялось мне чем-то очень страшным, но раз это не так страшно, как кажется, то вопрос отпадает. Впрочем, он может вновь возникнуть, когда все вышесказанное немного утрясется в моем сознании.
ZotaC вне форума Ответить с цитированием
Старый 08.11.2010, 00:15   #48
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

Вообще как-то делал такой фокус: создавал оконное приложение фиксированным размером (типа 800х600) и все размеры объектов подгонял под это разрешение. А потом изменял размер окна до нужного(например, а-ля фулскрин). Поскольку контекст бал создан для старого, то на новое изображение просто растянется.
P.S.
Возможно, я что-то попутал, ибо проект этот делал давно...
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Старый 08.11.2010, 17:40   #49
ZotaC
Форумчанин
 
Аватар для ZotaC
 
Регистрация: 25.06.2009
Сообщений: 163
По умолчанию

Selestis, качество, наверное, сильно портилось? 800x600 => 1024x768, например. А если у игрока широкий экран, то вообще все будет растянуто...
ZotaC вне форума Ответить с цитированием
Старый 08.11.2010, 21:27   #50
Selestis
Форумчанин
 
Аватар для Selestis
 
Регистрация: 21.01.2009
Сообщений: 719
По умолчанию

В том-то и дело, что если сохранились пропорции, то не очень-то и ухудшилось. А для ширформата можно чуть другое соотношение брать, анализируя стоящее разрешение.
Изобретатель велосипедов
Selestis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenGL...Игры без тормозов...Как?! saggy Мультимедиа в Delphi 10 03.07.2010 12:25
разработка игры "Реверси". Имеется код этой игры на С++ CD-RW Помощь студентам 0 28.03.2010 00:13
Хочу начать писать игры на OpenGL lionbeast Помощь студентам 2 02.10.2009 11:04
OpenGL Paul_AG C++ Builder 20 14.09.2009 19:07
OpenGL в С# LeGAl Общие вопросы .NET 0 30.04.2009 02:15