[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Форум Panda3D - по русски » Panda3D » Для начинающих » камера для космосима
камера для космосима
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

Плотность поля видна на скрине.
Прикрепления: 6033410.jpg (24.5 Kb)
 
k0tДата: Воскресенье, 09.12.2012, 14:28 | Сообщение # 40
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
Ну, над неравномерностью я еще не работал ) Как добился таких результатов? 400 тыс. астероидов - на самом деле не так мало )

По неравномерности - согласен, хотя у меня вроде получались поля красивые, но гораздо меньше.
 
ninthДата: Воскресенье, 09.12.2012, 19:49 | Сообщение # 41
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
Достаточно жёстко обрезаются удалённые астероиды. Выглядит не слишком, если честно. Посмотри, кстати, какой результат выдаст на твоём железе?

Ресурсы "неба" - твои, так что докидывай содержимое архива в свою папку.
Прикрепления: ast.zip (731.6 Kb)
 
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
Солнца для космосима ) За два дня моск напрочь сломал. Шейдерный постпроцессинг, так что основным бонусом эффекта является то, что бликовать будут любые яркие объекты - любое количество без особой настройки сцены. Как приведу немного в порядок код - тоже выложу.

Прикрепления: 1339672.jpg (17.5 Kb) · 6723429.jpg (31.0 Kb) · 5024287.jpg (21.9 Kb)
 
k0tДата: Вторник, 11.12.2012, 13:15 | Сообщение # 45
Подполковник
Группа: Пользователи
Сообщений: 104
Награды: 0
Репутация: 4
Статус: Offline
Классно смотрится! Даже очень.
Кстати, что астероиды такие угловатые мелкие? )
 
Форум Panda3D - по русски » Panda3D » Для начинающих » камера для космосима
  • Страница 3 из 4
  • «
  • 1
  • 2
  • 3
  • 4
  • »
Поиск: