камера для космосима
|
|
ninth | Дата: Вторник, 04.12.2012, 11:04 | Сообщение # 31 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Ну в общем случае оптимизация на том и строится - отключение ненужных расчётов, того что не влияет на геймплей, скрытие того, чего всё равно не видно или почти не видно. Т.е. опять возвращаясь к тому варианту, который я предлагал - делим поле на сектора. Активный сектор только тот, в котором находится игрок, все остальные сектора заморожены и статичны. Все движущиеся астероиды по достижении определённой дистанции с игроком либо замораживаются, либо вообще удаляются - при таком кол-ве это всё равно не будет заметно.
Будет время - попробую накидать общую механику такого поля
|
|
| |
k0t | Дата: Вторник, 04.12.2012, 13:53 | Сообщение # 32 |
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
| Кстати, а какой ценой будет обходиться переключение мешей во flatten и обратно? Добавлено (04.12.2012, 13:53) --------------------------------------------- Так, отчет: результаты интересные. ФПС внутри поля упал (был 40-60, стал 20 (мелкие тормоза) на входе в поле, до 30 внутри) Зато ФПС за пределами поля шикарно вырос (было 10-20 максимум, стало 30 стабильно)
|
|
| |
ninth | Дата: Вторник, 04.12.2012, 14:45 | Сообщение # 33 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Обратно их уже не разберёшь. Надо хранить оригинал чтобы вернуть. Скорость подготовки флаттена можешь замерить тупо таймером - там одна строчка всего. Есть плюс - флаттен можно выполнять в параллельном потоке, даже специальная функция есть. 1.8.0 панда по дефолту поддерживает работу с потоками (раньше надо было отдельно компилить).
Объяснение такого поведения простое - флаттен стронг загоняет всё в один меш, а рендерить отдельные куски меша карточки не умеют - т.е. у тебя даже внутри поля рендерится сразу всё. В общем, надо соблюсти баланс между кол-вом мешей и их размером. Попробуй flattenStrong заменить на flattenMedium - он вроде оставлял несколько кусков.
|
|
| |
k0t | Дата: Вторник, 04.12.2012, 14:58 | Сообщение # 34 |
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
| Панда 1.8, потоки не запустились - вылетает что-то. Надо шейдеры учить, походу... перекидывать большую часть пересчетов на видюхуДобавлено (04.12.2012, 14:58) --------------------------------------------- Сейчас еще эксперимент поставил Без шейдеров и без лодов отличный результат - фпс не падает ниже 30 Включить флаттен - и начинается ололо. Качество становится страшное, куда-то девается попиксельное освещение и затухание света о_о Зато фпс на уровне. Но вообще страшная картинка сразу.
|
|
| |
ninth | Дата: Вторник, 04.12.2012, 15:14 | Сообщение # 35 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| С шейдерами всё ещё сложнее ) Там геморрой из-за того, что каждый производитель что-то своё пытается в карточку ввернуть и то, что работает на одной, может заглючить или не запуститься на другой.
С освещением что-то странное, у меня вроде не падало. Потом гляну ещё раз.
Проверить поддержку потоков можно так Code from panda3d.core import Thread print Thread.isThreadingSupported()
|
|
| |
k0t | Дата: Вторник, 04.12.2012, 15:19 | Сообщение # 36 |
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
| Не, все это интересно, но судя по всему я таки забью - для интересной таки игры нужно не 1000 астероидов, а куда больше, не в моих силах реализовать плавные подгрузки всего этого =) Но опыт получен небольшой в оптимизиации пригодится
ЗЫ, жалко, что сейчас мало игр на космотематику.
|
|
| |
ninth | Дата: Вторник, 04.12.2012, 15:25 | Сообщение # 37 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Подожди. Я ещё не пробовал реализовать это дело - мне самому любопытно стало, а то все "майнкрафты" оптимизируют, а за такую задачу вроде ещё не брались. )
|
|
| |
k0t | Дата: Среда, 05.12.2012, 10:49 | Сообщение # 38 |
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
| НУ, если будет получатся - скажешь ) Вообще да, я не видел еще игры с большим астероидным полем. Еще и в хорошем какчестве.
|
|
| |
ninth | Дата: Воскресенье, 09.12.2012, 03:46 | Сообщение # 39 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Что-то мне картинка не нравится когда поле относительно равномерно заполнено астероидами. Может надо их группами как-то кидать? Результаты пока тоже не сильно впечатляющие. На HD 4850 - 45-60 фпсов. Поле примерно 300-400 тыс. астероидов в объёме 4000х4000х4000
Плотность поля видна на скрине.
|
|
| |
k0t | Дата: Воскресенье, 09.12.2012, 14:28 | Сообщение # 40 |
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
| Ну, над неравномерностью я еще не работал ) Как добился таких результатов? 400 тыс. астероидов - на самом деле не так мало )
По неравномерности - согласен, хотя у меня вроде получались поля красивые, но гораздо меньше.
|
|
| |
ninth | Дата: Воскресенье, 09.12.2012, 19:49 | Сообщение # 41 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Достаточно жёстко обрезаются удалённые астероиды. Выглядит не слишком, если честно. Посмотри, кстати, какой результат выдаст на твоём железе?
Ресурсы "неба" - твои, так что докидывай содержимое архива в свою папку.
|
|
| |
k0t | Дата: Понедельник, 10.12.2012, 10:41 | Сообщение # 42 |
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
| Так, потестил. Результат - 55-60 фпс при 1280х720, не фуллскрин.
|
|
| |
ninth | Дата: Понедельник, 10.12.2012, 13:33 | Сообщение # 43 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Очень любопытно. В прошлый раз твои фпс в два раза отличались от моих результатов, а сейчас - практически те-же.
|
|
| |
ninth | Дата: Вторник, 11.12.2012, 13:04 | Сообщение # 44 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Солнца для космосима ) За два дня моск напрочь сломал. Шейдерный постпроцессинг, так что основным бонусом эффекта является то, что бликовать будут любые яркие объекты - любое количество без особой настройки сцены. Как приведу немного в порядок код - тоже выложу.
|
|
| |
k0t | Дата: Вторник, 11.12.2012, 13:15 | Сообщение # 45 |
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
| Классно смотрится! Даже очень. Кстати, что астероиды такие угловатые мелкие? )
|
|
| |