PowerDraw - вопросик
#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);
все было хорошо, пока я использовал только один вид тайлов (скажем трава) , но как только их кол-во увеличилось(стало трава и земля - производительность упала просто катострофически!!!
Даже *дешевле сверху еще раз таким же слоем отрисовать по второму разу видимую облась карты, чем просто сменять изображенье тайла (что мне сначала показалось логичным, по опыту с DirectDraw).
Вот хотел спросить, собственно, мнение разработчика на счет этой проблемы.
#2
Отправлено 11 April 2004 - 17:14
что ты все-таки отрисовываешь отдельным слоем для каждого вида тайлов
>"Не буду объяснять - почему, но для достижения желаемого >результата нам нужно вывести карту по слоям."
#3
Отправлено 11 April 2004 - 17:34
теперь попробую плавные переходы с блендингом добавить ~)
Кстати, вопрос - на скриншотах я видел тени от елок. Елки с ними уже поставляются, тени тоже накладываются на тайловую плоскость отдельно, или это что-то хитрое?
#4
Отправлено 11 April 2004 - 20:31
Касательно тайлов - в Direct3D чем боьлше происходит смен текстур (и эффектов) тем медленнее все работает. Поэтому надо стараться собирать все тайлы в одну текстуру (или так - вся вода в одном, весь песок тоже), и оперировать при выводе паттернами. Тогда производительность существенно возрастет
#5
Отправлено 11 April 2004 - 20:38
1. Тайлы
2. Тени
3. Наземные эффекты
4. Спрайты (существа и остальное)
5. Опять спрайты, но уже только полупрозрачные существа
6. Интерфейс
#6
Отправлено 11 April 2004 - 22:17
#7
Отправлено 12 April 2004 - 12:39
#8
Отправлено 13 April 2004 - 14:22
Но, если я пользуюсь методом блендинга для сглаживания между раличными видами тайлов - то разницы почти никакой - что с паттернами, что из разных текстур ( . Оно конечно красиво (рандомно генерирую ландшафт с водой, песочком, травкой, землей и каменистым ландшафтом - все так плавненько переходит одно-в-другое.. + высоты ландшафта (и в перспективе движение воды)), но блин фрамерате критически низок(при 1024x768 около 150) ((
А ведь еще объекты впереди!!!
Кстати: Как ты отрисовываешь неплоские объекты (юниты и деревья, скажем?) ведь тут по слою не отрисуешь, рисовать надо в порядке как и положено - слева-направо,сверху-вниз, чтоб не получилось, чтобы юнит топтал ногами верхушку нижерастущего дерева. как тут быть?? не хранить же все юниты в одной текстуре?? сдается мне что присутствие приличного кол-ва разнотипных юнитов/нпс/объектов может быть просто катострофическим??
#9
Отправлено 13 April 2004 - 14:54
Все объекты действительно отрисовываются слева направо сверху вниз. Правда, и тут приходится круто извращаться, т.к. бывают частные случаи, когда спрайты перекрываются неверно. Например, если герой идет по определенной диагонали. Хранить все в одной текстуре нет смысла. Дело в том, что в одну текстуру надо запишивать те изображения, которые выводятся непосредственно друг после друга. Например, нет смысла каждый кадр анимированного курсора в отдельню текстуру пихать, т.к. по любому между двумя отрисовками крусора (в разных кадрах) лежит для остальная отрисовка. Со спрайтами тоже самое. Вначале рисуем дерево, потом дом. Поэтому нецелесобразно пытаться запихать все изображения анимированного дерева в одну текстуру. Я же не говорю о том, что текстуры не следует делать больше чем 256x256...
Кстати, на ai2.extractor.ru ест новая статья, я там написал кое-что про карту и спрайты. Напомню: Login - ai2 Password - test
#10
Отправлено 13 April 2004 - 16:09
#11
Отправлено 13 April 2004 - 16:32
QUOTE |
Терм, а почу не перемещаешь ai2 на ai. |
Щас новую версию подготовим, и обновим сразу и сайт (т.е. переместим) и игру
P.S.: Думаю - завтра
#12
Отправлено 13 April 2004 - 18:36
#13
Отправлено 14 April 2004 - 16:45
http://jansoft.aquasoft.cz/ ?
#14
Отправлено 14 April 2004 - 19:42
Кстати, произошло, наконец, обновление
#15
Отправлено 12 July 2004 - 17:11
#16
Отправлено 12 July 2004 - 17:42
#17
Отправлено 13 July 2004 - 06:30
В данном примере GUI отображается во время работы программы. У меня была задумка сделать GUI отображаемый в режиме разработки т.е. в виде компонентов. Для работой с графикой я использую пока PowerDraw. Или лучше так не делать?
#18
Отправлено 13 July 2004 - 08:51
#19
Отправлено 13 July 2004 - 14:41
Вроде я тестил на скорость PD2 и PD3, так у меня (GeForce3) первый был шустрее. А вот Terminus вроде писал что с переходом на PD3 прибавилось скорости...
Так скорость прибавится только если DX9 карта держит или что?
Я на 2ой версии сижу так-как она быстрее. А новые фичи из 3 можно переписать.
#20
Отправлено 13 July 2004 - 15:05