Перейти к содержимому


Внимание!

Это форум по извлечению ресурсов из игр: музыки, звуков, текстур, 3D-моделей...
Перед поиском ответов на форуме, рекомендуется ознакомиться с основным сайтом EXTRACTOR.ru!
[ Прочтите внимательно - правила создания тем и ответа в них ]
Все вопросы по запуску игр задавайте в другом месте: Установка и запуск игр.


PowerDraw - вопросик


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 21

#1

  • Гости

Отправлено 11 April 2004 - 17:07

вот буквально сегодня только начал экспериментировать
с PowerDraw. Очень понравилась скорость(!) и фичи.

Сам несколько лет возился с тайлово-изометрическими
движками посредством DelphiX.

Так вот возник специфический вопросик.

Значится отрисовываю я карту по тайлам

представим нечто вроде обычного:
for Y:=0 to maxSY do
for X:=0 to maxSX do
рисуем тайл (в соответствии с высотой, освещенностью, индексом текстуры данного map[X,Y])
PDraw.TextureMap(ImgList.Images[SquareTex(X,Y)],p4,c4,pNone,Effect);

все было хорошо, пока я использовал только один вид тайлов (скажем трава) , но как только их кол-во увеличилось(стало трава и земля smile.gif - производительность упала просто катострофически!!!

Даже *дешевле сверху еще раз таким же слоем отрисовать по второму разу видимую облась карты, чем просто сменять изображенье тайла (что мне сначала показалось логичным, по опыту с DirectDraw).

Вот хотел спросить, собственно, мнение разработчика на счет этой проблемы.

#2

  • Гости

Отправлено 11 April 2004 - 17:14

кстати, только что повнимательней прочитав твою статью, увидел,
что ты все-таки отрисовываешь отдельным слоем для каждого вида тайлов smile.gif

>"Не буду объяснять - почему, но для достижения желаемого >результата нам нужно вывести карту по слоям."

#3

  • Гости

Отправлено 11 April 2004 - 17:34

Так, благодарю за внимание - с *послойной отрисовкой все отлично получилось. фрамерате ~420 при любом кол-ве видов тайлов -)))

теперь попробую плавные переходы с блендингом добавить ~)

Кстати, вопрос - на скриншотах я видел тени от елок. Елки с ними уже поставляются, тени тоже накладываются на тайловую плоскость отдельно, или это что-то хитрое? tongue.gif

#4 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 11 April 2004 - 20:31

Тени с елками поставляются. Это текстура, выводимая с оперделенным эффектом. Вообще, вPowerDraw надо отслеживать какой эффект используется, т.к. от этого не в малой степени зависит производстельность. У меня тени накладываются каким то multiply, кажется, но лучше будет сформировать альфа канал и выводить как простую текстуру с альфой... мда.

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

#5 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 11 April 2004 - 20:38

Если интересно, прорисовка происходит в следующей последовательности:
1. Тайлы
2. Тени
3. Наземные эффекты
4. Спрайты (существа и остальное)
5. Опять спрайты, но уже только полупрозрачные существа
6. Интерфейс

#6 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 11 April 2004 - 22:17

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

#7

  • Гости

Отправлено 12 April 2004 - 12:39

благодарю -)) ответ исчерпывающий.

#8

  • Гости

Отправлено 13 April 2004 - 14:22

да, попробовал с паттернами. никаких потерь в производительности при отрисовке. НО..

Но, если я пользуюсь методом блендинга для сглаживания между раличными видами тайлов - то разницы почти никакой - что с паттернами, что из разных текстур sad.gif( . Оно конечно красиво (рандомно генерирую ландшафт с водой, песочком, травкой, землей и каменистым ландшафтом - все так плавненько переходит одно-в-другое.. + высоты ландшафта (и в перспективе движение воды)), но блин фрамерате критически низок(при 1024x768 около 150) sad.gif((
А ведь еще объекты впереди!!!

Кстати: Как ты отрисовываешь неплоские объекты (юниты и деревья, скажем?) ведь тут по слою не отрисуешь, рисовать надо в порядке как и положено - слева-направо,сверху-вниз, чтоб не получилось, чтобы юнит топтал ногами верхушку нижерастущего дерева. как тут быть?? не хранить же все юниты в одной текстуре?? сдается мне что присутствие приличного кол-ва разнотипных юнитов/нпс/объектов может быть просто катострофическим??

#9 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 13 April 2004 - 14:54

Хе хе, 150 это критически низок? biggrin.gif До того, как я перешел на паттерны у меня FPS был втрое ниже, чем сейчас smile.gif. Отрисовка чисто тайлов дает где то 200-250 FPS. Хотя у нас машины, конечно, разные... Спрайты тоже ощутимо FPS опустят. Вроде, казалось бы, легкое "2D", но все спрайты - то текстуры с альфой и соответствующим эффектом вывода, а все 3d-модели юзают текстуры вообще без эффектов, что гораздо быстрее... Если, конечно, не считать шейдеров и прочей ерунды для избранных.

Все объекты действительно отрисовываются слева направо сверху вниз. Правда, и тут приходится круто извращаться, т.к. бывают частные случаи, когда спрайты перекрываются неверно. Например, если герой идет по определенной диагонали. Хранить все в одной текстуре нет смысла. Дело в том, что в одну текстуру надо запишивать те изображения, которые выводятся непосредственно друг после друга. Например, нет смысла каждый кадр анимированного курсора в отдельню текстуру пихать, т.к. по любому между двумя отрисовками крусора (в разных кадрах) лежит для остальная отрисовка. Со спрайтами тоже самое. Вначале рисуем дерево, потом дом. Поэтому нецелесобразно пытаться запихать все изображения анимированного дерева в одну текстуру. Я же не говорю о том, что текстуры не следует делать больше чем 256x256... biggrin.gif

Кстати, на ai2.extractor.ru ест новая статья, я там написал кое-что про карту и спрайты. Напомню: Login - ai2 Password - test

#10 FlyDragon

FlyDragon

    Прапорщик

  • Доверенные
  • 124 сообщений
  • Город:Москва

Отправлено 13 April 2004 - 16:09

Терм, а почу не перемещаешь ai2 на ai.

#11 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 13 April 2004 - 16:32

QUOTE
Терм, а почу не перемещаешь ai2 на ai.


Щас новую версию подготовим, и обновим сразу и сайт (т.е. переместим) и игру biggrin.gif

P.S.: Думаю - завтра

#12 FlyDragon

FlyDragon

    Прапорщик

  • Доверенные
  • 124 сообщений
  • Город:Москва

Отправлено 13 April 2004 - 18:36

Руки чешутся потестить, глюки половить smile.gif

#13

  • Гости

Отправлено 14 April 2004 - 16:45

А вот еще - насчет интерфейса вопрос возник. Ты сам писал элементы интерфейса?? или использовал чьи-то? типа

http://jansoft.aquasoft.cz/ ?

#14 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 14 April 2004 - 19:42

Интерфейс создавался с нуля собственными руками.

Кстати, произошло, наконец, обновление smile.gif

#15 Comper

Comper

    Рядовой

  • Пользователи
  • 2 сообщений

Отправлено 12 July 2004 - 17:11

Есть ли у кого нибудь какая либо инфа по написанию GUI под граф. библиотеки на Delphi?

#16 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 12 July 2004 - 17:42

Вот здесь есть пример для OpenGL

http://delphigfx.mas...ru/samples5.htm

#17 Comper

Comper

    Рядовой

  • Пользователи
  • 2 сообщений

Отправлено 13 July 2004 - 06:30

Хороший пример. Теперь возник другой вопрос тоже про GUI.
В данном примере GUI отображается во время работы программы. У меня была задумка сделать GUI отображаемый в режиме разработки т.е. в виде компонентов. Для работой с графикой я использую пока PowerDraw. Или лучше так не делать?

#18 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 13 July 2004 - 08:51

Можно, конечно, и так попробовать, только формы эти после запуска программы будут уже не нужны. smile.gif Поэтому я создаю все контролы при инициализации игры. Кроме того, размер стандартных контролов наверняка будет отличаться от разреров, которые Вам нужны.

#19 TIFA

TIFA

    Рядовой

  • Пользователи
  • 1 сообщений
  • Город:Москва

Отправлено 13 July 2004 - 14:41

Слушайте люди. Помогите разобраться с PowerDraw 3
Вроде я тестил на скорость PD2 и PD3, так у меня (GeForce3) первый был шустрее. А вот Terminus вроде писал что с переходом на PD3 прибавилось скорости...

Так скорость прибавится только если DX9 карта держит или что?

Я на 2ой версии сижу так-как она быстрее. А новые фичи из 3 можно переписать.

#20 Terminus

Terminus

    Генерал-майор

  • Администраторы
  • 1969 сообщений
  • Пол:Мужчина
  • Город:Санкт-Петербург

Отправлено 13 July 2004 - 15:05

Острой необходимости переходить на v3 действительно нет. Просто я решил юзать его. А карточка у меня его тоже пока не поддерживает smile.gif (GForce 4 MX 440). Тем не менее стало действительно чуть быстрее...