Вложений: 2
Доброе время суток всем желающим написать на Блице Варкрафт-4!
So, не растекаясь мыслию по древу, сразу к примеру. :) В прикрепленном архиве два .ББ файла: "1" и "2" соответственно, запустив которые можно посмотреть демку террана с лесом и летающей сверху камерой. Всё почти как в стратегиях, только нет орков и камера управляется клавишами управления курсора. Файл "1" демонстрирует "принципиально простой", иначе- "классический"- метод реализации этого-самого леса. Файл "2" демонстрирует "принципиально правильный" метод. Понять чем они отличаются просто: первый у меня выдает 70ФПС когда в кадре нет вообще ничего и 40- когда в кадре много деревьев. Кроме того, он может просто заглючить на некоторых машинах (глюк Блица с террайнами) и исправить это будет невозможно. Никак. Второй выдает соответсвенно 3000 и 150 ФПС, никогда не заглючит и если убрать деревья, станет видно, что террайн освещается заметно красивее. Недостатка два: тоннельный эффект на деревьях и долгая генерация террайна. P.S. 2Новички: Комментов в примерах необходимый минимум. Однако, не смотря на внешнюю навороченность, даже во втором примере код предельно прост и требует лишь внимательного прочтения. Обратите внимание на алгоритмы соединения мешей, рендер-твининга и генерации террайна. Удачи! :ok: |
Что, так плохо, что ни у кого даже ругательных комментариев не возникло?
Как демка-то? Показатели ФПС как, меняются от способа оптимизации? Шо ж вы так пассивно? :) |
в первом примере все работает довольно нормально ФПС у меня 40 даже если ничего в экране нет, а если на гору заберешься, чтоб много деревьев в экране было, то до 20 опускается...
второй пример работает принципиально быстрей, только глючит неимоверно, типа кадры прокрутятся быстро, а потом машина ждет до конца секунды... и так каждую секунду... и ФПС прыгает с 50 до 30 (причем прыгает по 5 раз в секунду). :) |
чет терейн тормозной... :))
МА-ЛА-ДЕЦ ;) вообщем а чембы ненаписать функцию гемора... ой... generate :) типа ланджафта ? ну чтобы типа... типа генерить типа ланджафт из типа типа... короче картинки типа под типа названием в типа карта типа высот... :lol: ps. злостный пост но БЕЗ ОФФТОПА Я НАПИСАЛ! :rolleyes: |
Во втором исходнике при медленном поворачивании камеры деревья, которые находятся рядом, "мелькают": как будто верхушка одного дерева вдруг оказывается скрыта другим деревом, хотя последнее находится дальше.
Но я не исключаю, что это все из-за моих тупых дров для видяхи. |
Цитата:
Знаешь, попробуй может вот какие варианты: 1. уменьшить количество деревьев в два раза (в обоих примерах для чистоты эксперимента): Если компьютер не очень крутой, то при ФПС<10-20 твиннинг и таймер обновления камеры будут глючить; 2. убрать вообще задержку "Delay 20" в модуле обновления камеры (тоже в обоих примерах); 3. снести к чертям рендер-твининг во втором примере (убрать CaptureWorld() и поставить просто "RenderWorld()" вместо RenderWorld(Twining/100)) Если всё это не поможет- значит или код косой, или железо... :SOS: Цитата:
Цитата:
|
ОГО!!! :blink: ПРИКОЛЬНО!!! ОСОБЕНО ТУМАН МЕЖДУ ДЕРЕВЬЯМИ ПОНРАВИЛСЯ!!
Жалько только что у меня комп тупой, подвисает всё |
а у меня скорость держится такая как указал дипломат
хотя процесор в несколько раз тормознее :lol: глюков ненайдено - видяха XFX 6600GT , дрова 77.72 |
Интересный примерчик.
Дома у меня оба примера работали одинаково медленно - около 20 кадров. Это на Celeron 433, 224 Mb ОЗУ, GF2MX200 64 Mb На более крутом компе -AMD Sempron 2600+, 512 Mb ОЗУ, RADEON9550 128 Mb- 2 пример быстрее: в 1ом примере: 40 кадров ВСЕГДА - странно... так не должно быть по-мойму... во 2ом: 80-110 кадров, если камера смотрит только на поле, и больше 1000, если в пустоту. Во втором примере при движении или повороте текстура земли размазывается (рябь какая-то), после остановки нормальной становится. Деревья тоже "мелькают"... ПС: я не понял, зачем нужен флаг 256 для текстуры детализации. Пробовал убрать флаг вообще - рябь исчезает, но и вид немного другой... |
Ну, на слабых компах 20ФПС выводится по той простой, что счетчик ФПС возвращает данные 10 раз в секунду, округляя точность 10 да еще и завышает на 10ФПС... Зачем? Раньше юзал для техданных- потом забыл исправить. :)
Корректно получать данные о ФПС можно заменив его код на следующий: Код:
;FPS counter Эта фича по определению- "складирует текстуру в видеопамять". А по сути- она выключает мипмаппинг (размытие) текстур, что очень важно при изображении детайлмаппов на террайнах итп... Ну, 20% ФПС жреть... :) |
На моей машине (Celeron D 2400 / GF MX400 64MB / 512MB Dual) FPS примерно 20(на горе)-40(просто на карте) во втором примере.
Если установить режим цвета в 16 бит то FPS вырастает до 35-55 соответственно. Без твининга FPS вырастает на 5-10 к/с, но зато дергается камера (надо написать функцию обработки камеры) А в общем примерчик неплохой :) |
Кстати при флаге 256 (Store texture in vram) выключается мипмеппинг текстур, а следовательно и их сглаживание. В этом режиме (256) у меня пример 2 работает чуть медленнее.
|
Вложений: 2
Цитата:
Код:
Function GenerateTerrain%(SizeX#,SizeZ#,MaxHeight#,HeightMapFile$,Detail,VertexColorsMap$="") А это измененный код примера... |
Цитата:
Не забываем писать закрывающие теги ;) |
Просто соединение с инетом через мабильник и часто глючит, по этому сообщение не полностью дошло!:'((
|
2 РАХ:
Очень симпатичный пример. :super: И если о пользе введения повртексной генерации ландшафта можно было бы еще в принципе спорить, то вертексколоры вместо текстуры рулят очевидно и без вопросов. Респект адназначна. :bravo: Заметка: стиль проганья классный, академичен до предела. Например, используешь "Local"(!) при обьявлении переменных в теле ф-и(!!), пишешь идентификаторы типа переменной "%"(!!), да еще и используешь их повторно... Где учился? /не покажусь нахальным?/ :ok: |
Я самоучка :), просто много примеров переглядел за долгое время пока пишу игру:)
Правда незнаю когда допишу (Bombers3D). Да и спасибо за приятный ответ. :@ |
diplomat
у нас всех такой код может новички пишут по другому но тот кто прогает больше года приходит к такому стилю примерно только не говори что ты скромный и пушистый :)) |
Я игрой (Bombers3D) занялся серьезно только этим летом, хотя задумал написать ее еще полтора года назад когда у меня Blitz появился :)
А пока вот усовершенствованная функция-генератор террейна: Код:
Function GenerateTerrain%(SizeX#,SizeZ#,MaxHeight#,HeightMapFile$,DetailX%=0,DetailZ%=0,VertexColorsMap$="") |
Re: Веселые секреты
А если вот уж прям приспичило делать с альфлй - как от туннельного эффекта избавиться?
|
Re: Веселые секреты
сортировать сюрфейс, немало либ для етих целей сделано.
|
Re: Веселые секреты
Люди, у меня первый прпимер выдаёт 70-80,а второй.... 450-500. Так что огромное пасибо дипломату.
|
Re: Веселые секреты
я вот думаю каким макаром он может выдавать больше 50 фпс, если там стоит иммитация игровой логики в 20 мс?
Дипломату огромный респект за красиво отрендеренные местности, надо ету технику прихватизировать. |
Ответ: Веселые секреты
Ух ты ж, сколько лет прошло!
Я эту тему за неделю второй раз ищу, а она, оказывается "Весёлые секреты" называется! Случайно забрёл сегодня. Люди! Называйте темы так, чтоб название отражало её суть! И, кстати, пример из первого поста актуален по сей день. Кто из блицеров не видел - советую ознакомиться. |
Ответ: Веселые секреты
А как так "симпатично" раскрашивать ландшафт? Наложением текстуры у меня так не получалось..
|
Ответ: Веселые секреты
Вероятно автор клал на нолевой слой карту цвета(растянутую на весь терайн), а на первый слой детайл текстуру с Мультиплай 2)
|
Ответ: Веселые секреты
Если у кого-то остался аттач из первого поста, выложите, пожалуйста.
|
Ответ: Веселые секреты
Вложений: 1
Вот.
|
Ответ: Веселые секреты
Кратко, в чём суть (способ эффекта)?
AddMesh? А ну да, имеются поклетчатые mesh-и (сетки 8х8 ), к которым addmesh близкие деревья. Пробовал как то ещё с >1000 текстурированными ящиками.b3d позиции x=0 to 100 а y=rand(-3,3) Так вот при AddMesh хоть ты видишь один уголочек меша - он программно весь рисуется. А если отдельными все Entity - то они авто-Hide-тся. Так что по разному случаи бывают... |
Ответ: Веселые секреты
Вложений: 1
Вот делал что-то подобное. Тут локация разбивается по сетке на сектора куда уже добавляется меш. Также есть возможность в дальнейшем обращаться к этому мешу(который уже добавился в сектор), позиционировать его, поворачивать, с текстурами на моделях проблем вроде не должно быть. Забирайте кому нужно.
|
Часовой пояс GMT +4, время: 22:56. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot