Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];

Вниз

Как лучше?   Найти похожие ветки 

 
Nostradamus   (2002-10-08 18:51) [0]

Возник такой вопрос как лучше: делать графику маленького размера, а потом выводить спомощью StretchDraw или сразу нормального размера если не нужна большая скорость прорисовки. Просто если рисовать нормального размера игра получается очень объёмная, но если делать StretchDraw, то будет потеря качества. Я вот незнаю насколько большая эта потеря какчества.


 
Daddy   (2002-10-08 19:23) [1]

Лучше нормального размера. Я бы даже сказал, что вывод через StretchDraw - изврат.


 
Namo   (2002-10-08 20:44) [2]

через StretchDraw лучше не делать, будет такое д..мо!!!


 
Gandalf   (2002-10-08 21:28) [3]

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


 
Sapersky_   (2002-10-09 01:46) [4]

StretchDraw действительно не надо. Но если есть ускоритель, то обычный IDirectDrawSurface.Blt автоматически выполняет достаточно быстрое растяжение с фильтрацией. Если картинка плавная, без резких цветовых скачков, качество получается вполне приличное. Если ускорителя нет (нужно проверять), то можно растянуть предварительно, используя какую-нибудь графичекую библиотеку (FastLIB - FastFX.RotoZoom, или Graphics32). Единственный момент - растяжение с фильтрацией противопоказано спрайтам с цветовым ключом... т.е. этот метод подходит в большей степени для фонов.
Вообще, конечно, объём можно уменьшать и другими методами - использовать jpeg-и, 8-битные bmp.


 
Nostradamus   (2002-10-09 03:50) [5]

>Daddy & Namo
Хорошо тогда встречный вопрос: тогда получается нужно рисовать графику для всех поддерживаемых игрой разрешений???

>Gandalf
Потери во времени в данном случае не проблема (как уже было сказано мне не нужна большая скорость). А что это за специфические ситуации о которых ты говоришь?

>Sapersky_
Не пойму почему нельзя растягивать спомощью StretchDraw и можно растягивать какой-нить FastFX.RotoZoom.

P.S. Спасибо за ответы.


 
Sapersky_   (2002-10-09 12:54) [6]

Я в том смысле, что StretchDraw не делает фильтрацию (т.е. получаются квадратики).


 
Sapersky_   (2002-10-09 12:59) [7]

А рисовать графику для всех разрешений в любом случае не надо. Пусть в больших разрешениях спрайты будут меньше - будет больше обзор игрового поля. Так обычно и делают. Хотя вообще, конечно, хорошо, если будет опция "общий масштаб" (вроде "приблизить камеру/удалить").


 
Nostradamus   (2002-10-09 19:55) [8]

>Sapersky_
>усть в больших разрешениях спрайты будут меньше - будет больше >обзор игрового поля
Но при смене разрешения если не растягивать графику то появится пустое сесто или что-то будет вылазить из поля зрения. Или я что-то не так понимаю?


 
Gandalf   (2002-10-09 22:39) [9]

>Nostradamus
>А что это за специфические ситуации о которых ты говоришь?
Ну скажем надо сделать эффект взврыва, у нас есть анимация (набор спрайтов) с вырастающей сферой с рлавно меняющимися цветами, мы эти сферы отрисовывает с random смещением от центра взрыва с неким коэфициентом растяжения (или сжатия) - получаем неплохой эффект взрыва. Но это только пример. Например нужно градиентную заливку делать от RGB(0,0,0) до RGB(255,0,0) - понятно что максимум 256 шагов. Чтобы залить скажем прямоугольник с длинной 800, используем StretchDraw. Ну и так далее.

>Но при смене разрешения если не растягивать графику то появится
>пустое сесто или что-то будет вылазить из поля зрения. Или я >что-то не так понимаю?

Правильно понимаешь. Но это можно обойти поменяв угол зрения - как фактический результат мастабирование.

ЗЫ: Рисовать графику для всех разрешений глупо. Обычно рисуют маскимальное (сам выбераешь его) разрешение. А остальные получаешь уменьшением. Как понимаешь уменьшение получается гораздо качественне чем увеличение - информацию не надо придумывать.


 
Nostradamus   (2002-10-10 08:25) [10]

>Gandalf
Понял. Теперь хотябы понятно что рисовать надо и как.
Только вот один вопрос. Хорошо нарисовал я графику под макс. разрешение, так получается всё равно что-то типа StretchDraw применять надобно чтоб нормально её изобразить???


 
cyborg   (2002-10-10 12:25) [11]

Если делаешь стратегию, то делай как сказали, графика одна для всех разрешений. Например посмотри игру Противостояние 3 или 4.


 
Gandalf   (2002-10-10 14:41) [12]

>получается всё равно что-то типа StretchDraw применять надобно >чтоб нормально её изобразить???
Если хочешь сохранять пропорции, то да, придется - использовать либо StretchDraw либо нечто для сжатия спрайта.Если тебе скорость и качество не важны, то используй StretchDraw. Если важно и то и то - используй OpenGL или DirectX. Если важно качество, найди или сам сделай процедурку для сжатия спрайта с фильтрацией. Но как правильно заметил cyborg в не 3д играх принято при смене разрешения оставлять как есть, т.е. разрешение стало больше, значит юниты стали мельче, но их стало больше помещатся на экране.


 
Nostradamus   (2002-10-10 18:50) [13]

Ок, спасибо за подробное объяснение. Теперь всё ясно.


 
k   (2002-10-11 15:54) [14]

как тому же StratchDraw сам непрочь по-тормозить.........



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2003.03.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.6 MB
Время: 0.041 c
1-29822
Adil
2003-02-28 07:06
2003.03.10
Kak poluchit direktoriyu?


1-29869
Павел
2003-02-24 18:30
2003.03.10
Как найти разницу времени?


14-30059
Igor_thief
2003-02-19 16:56
2003.03.10
GIF


7-30143
ychnic
2003-01-10 15:25
2003.03.10
Компонент


6-29974
Anton
2003-01-21 13:53
2003.03.10
Вложения Email





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский