English Новый сайт

Расширенный поиск

[ Новые сообщения · Пользователи · Правила ]
Страница 3 из 6«123456»
Форум » SpaceEngine » Архив » Новая версия 0.96 вышла!
Новая версия 0.96 вышла!
maxmiztejmДата: Вторник, 10.07.2012, 10:59 | Сообщение # 31
Космический турист
Группа: Пользователи
Словакия
Сообщений: 33
Награды: 1
Статус: Offline
Владимир, спасибо за труд!
УмотурманДата: Вторник, 10.07.2012, 21:45 | Сообщение # 32
Исследователь
Группа: Пользователи
Дем. республика Конго
Сообщений: 245
Награды: 0
Статус: Offline
Уже в Москве. щас скачаю... biggrin
ghostuserДата: Вторник, 10.07.2012, 23:34 | Сообщение # 33
Космический турист
Группа: Пользователи
Российская Федерация
Сообщений: 20
Награды: 0
Статус: Offline
Огромное спасибо за ваш проект, Владимир.) Внимательно слежу с версии 0.95 и регулярно получаю тонны удовольствия.) Добавление, хоть и в порядке теста, кораблей, меня, как симуляторщика, привело в транс и вовсе... Сейчас я допишу эту благодарность и пойду дальше развлекаться с этим счастьем.) Спасибо!)

P.S. У меня один вопрос. Управление кораблями, я надеюсь, будет претерпевать изменения? Поскольку сейчас не особо удобно управлять вектором тяги. В идеале, было бы круто привязать оный к центру экрана и автоматизировать работу маневровых двигателей. Т.е. куда смотришь, туда и летишь.
УмотурманДата: Вторник, 10.07.2012, 23:35 | Сообщение # 34
Исследователь
Группа: Пользователи
Дем. республика Конго
Сообщений: 245
Награды: 0
Статус: Offline
Круто!!! surprised biggrin smile
sayirsДата: Среда, 11.07.2012, 09:35 | Сообщение # 35
Космический турист
Группа: Пользователи
Российская Федерация
Сообщений: 36
Награды: 0
Статус: Offline
Все понравилось! Вселенная стала более живая яркая и сочная. Шатл шикарен! Только размеры смущают (25метров) с учетом того что в будущем на нем можно будет транспортировать вездеходы и прочие оборудование. И да модель полета (шатла) УЖАСНА! Да и вообще управление убогое, но все еще впереди.
WT_admДата: Четверг, 19.07.2012, 11:40 | Сообщение # 36
Нет аватара
Космонавт
Группа: Пользователи
Пират
Сообщений: 64
Награды: 0
Статус: Offline
Ура!Только у меня частенько падать стал SE...
CrabДата: Четверг, 19.07.2012, 18:58 | Сообщение # 37
Первооткрыватель
Группа: Модераторы
Российская Федерация
Сообщений: 444
Награды: 1
Статус: Offline
Quote (WT_adm)
Ура!Только у меня частенько падать стал SE...

http://spaceengine.org/forum/5-219-1


Windows 8 x64
Intel Core2 Duo CPU E7500 2.93GHz.
4 GB RAM.
Nvidia GeForce 550Ti 1024mb.
BalogДата: Вторник, 24.07.2012, 02:11 | Сообщение # 38
Исследователь
Группа: Пользователи
Украина
Сообщений: 211
Награды: 0
Статус: Offline
Новая версия понравилась, все выглядит более живо и красиво, это касается и пейзажей, поверхность не выглядит лоскутным одеялом. Но программа продолжает регулярно падать.
Я вот начал следить за расходом программой памяти и понял что тут не все гладко. Во время работы программы занимаемая приложением память только растет и никогда не падает. То есть летаю я где-то в горах, занимаемая память нарастает, если улетаю к другой планете она не очищается а продолжает нарастать, лечу к другой звезде - все растет, пока не достигает какого-то предела и тогда приложение падает. Этот предел можно сделать большим или меньшим но он всегда достигается рано или поздно.
То есть это просто какая-то утечка памяти. Зачем помнить рельеф планеты которую я покинул и сам даже ее уже не найду? А если и вернусь то не лучше ли заново пересчитать рельеф, тем более что в ту же точку еще попасть надо. Также и во время бреющих полетов в горах, где память утекает очень быстро, где-то 10 мегабайт в секунду или около того, нужно убирать из памяти тот пейзаж над которым я пролетел. Так как во время полетов в горах память расходуется быстрее то программа падает чаще чем во время межпланетных перелетов.
Надо как-то удалять из памяти то что уже не нужно иначе падения приложения неизбежны.
Может оно так же было и в 0.95 версии, не проверял...

P.S. Я конечно далек от мысли что уважаемый SpaceEngineer мог забыть об очистке памяти но похоже утечка памяти есть и немалая.


Сообщение отредактировал Balog - Вторник, 24.07.2012, 03:04
SpaceEngineerДата: Вторник, 24.07.2012, 03:10 | Сообщение # 39
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Это не утечка памяти, а кэш. Естесвенно он не убывает, удаление старых данных происходит только когда достигнут лимит памяти и нужна память под новые данные. Я где-то уже писал как работает SE. Он кеширует всё что видно - можно покрутиться на месте, чтобы всё вокруг загрузилось, а потом летать медленно и ничего не будет подгружаться. В игре корабли над горами будут летать именно медленно - не быстрее нескольких скоростей звука. На орбите быстрее, но с орбиты и детализация меньше.

Чаще всего краш происходит, когда SE не может освободить память - т.е. когда в кэше нет старых данных. Например, если мало видепамяти или стоит большой LOD, когда все текстуры планеты, нужные для отрисовки кадра, не вмещаются в видеопамять.

Удалить то что не нужно нельзя - как узнать что имено не нужно? Вернуться кстати легко - есть же лог полёта.

Возможна другая модель. При приближении к планете создаются новые узлы quadtree и генерируются текстуры для них, а при удалении от узла он немедленно уничтожается и его текстуры удаляются. Тогда SE будет всегда занимать минимум памяти. Я планирую попробовать использовать такую модель.


BalogДата: Вторник, 24.07.2012, 10:22 | Сообщение # 40
Исследователь
Группа: Пользователи
Украина
Сообщений: 211
Награды: 0
Статус: Offline
Кеш это хорошо но нельзя его раздувать до бесконечности. У меня например памяти много, 16 гигабайт и видеопамяти тоже в общем немало - гигабайт, но приложение падает когда SE начинает занимать несколько более гигабайта а память заполняется где-то на 3-4 гигабайта от начального уровня. А перед тем замечаются подтормаживания и вовсе глюки.
Чистить кеш необходимо. Я хоть тоже программист но слабо представляю что именно хранит каждый элемент кеша и как он связан с остальными. А потому не могу сказать какую информацию можно быстро извлечь о каждом его элементе.
Прямую видимость из камеры? Если элемент пейзажа нельзя увидеть, он чем-то загорожен то его и удалить можно.
Расстояние до камеры ? Может можно узнать не ушел ли элемент пейзажа за горизонт? К чему помнить о том что осталось за горизонтом?
Если и это нельзя то просто после определенного предела удалять наиболее старые данные надеясь что они не нужны?
Ну и в любом случае надо сбрасывать данные пейзажа если я улетел с планеты и она сжалась в точку. Если я вернусь то легче снова посчитать.
Я вижу решение проблемы примерно так со своей дилетантской точки зрения. Сбрасывать кеш при уходе от планеты надо но недостаточно, надо его подчищать и в процессе бреющего полета не надеясь на то что он не успеет переполниться.

И вообще, кеш я так понимаю служит для вторичного использования уже рассчитанных данных пейзажа. Уже если его использовать то рассчитывать пейзаж хорошо бы до того как я его увижу, что бы не видеть усложнения пейзажа под самым носом как оно сейчас происходит. А занимать гигабайты памяти в расчете что я развернусь и снова пролечу над тем же местом это как-то недостаточно продуктивно.


Сообщение отредактировал Balog - Вторник, 24.07.2012, 10:35
WT_admДата: Вторник, 24.07.2012, 13:36 | Сообщение # 41
Нет аватара
Космонавт
Группа: Пользователи
Пират
Сообщений: 64
Награды: 0
Статус: Offline


Благодарю
SpaceEngineerДата: Вторник, 24.07.2012, 17:56 | Сообщение # 42
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Quote (Balog)
Кеш это хорошо но нельзя его раздувать до бесконечности. У меня например памяти много, 16 гигабайт и видеопамяти тоже в общем немало - гигабайт, но приложение падает когда SE начинает занимать несколько более гигабайта а память заполняется где-то на 3-4 гигабайта от начального уровня. А перед тем замечаются подтормаживания и вовсе глюки.

В 0.95 всё прекрасно работало, в 0.96 просто закрался какой-то баг, не отловил его пока.

Quote (Balog)
Чистить кеш необходимо.

Нет smile

Quote (Balog)
Прямую видимость из камеры? Если элемент пейзажа нельзя увидеть, он чем-то загорожен то его и удалить можно. Расстояние до камеры ? Может можно узнать не ушел ли элемент пейзажа за горизонт? К чему помнить о том что осталось за горизонтом?

Проблема в том, что получается нужно постоянно проверять эти условия для всех элементов, даже невидимых - это будет съедать время процессора, т.е. приведёт к снижению fps. В нынешней же модели кэш работает именно так:

Quote (Balog)
Если и это нельзя то просто после определенного предела удалять наиболее старые данные надеясь что они не нужны?

...и этим пределом является достижение лимита памяти - 85% от VRAM или сколько там в конфиге стоит. Удаление данных не мгновенная операция, но происходит она только когда генерируются новые данные. Иначе если постоянно искать каке данные можно удалить и удалять их, это привдёт к постоянным подлагиваниям.

Quote (Balog)
Ну и в любом случае надо сбрасывать данные пейзажа если я улетел с планеты и она сжалась в точку. Если я вернусь то легче снова посчитать.

Можно, но это даст заметный лаг.

Quote (Balog)
Уже если его использовать то рассчитывать пейзаж хорошо бы до того как я его увижу, что бы не видеть усложнения пейзажа под самым носом как оно сейчас происходит.

А как SE узнает в какую именно точку ты захочешь приземлиться?

Quote (Balog)
А занимать гигабайты памяти в расчете что я развернусь и снова пролечу над тем же местом это как-то недостаточно продуктивно.

Это совсем не проблема. Гигабайты, мегабайты - какая разница? Кэш в SE автоматически распределяет память между ресурсами - текстуры, ландшафт, звёзды, галактики, и вот сейчас надо сделать ещё кэш для моделей кораблей. Проблема в том, что для планеты нужно минимум 300 Мб, ещё 100-200 уходит на статичные вещи (текстуры интерфейса, текстурные атласы планет, 3D текстуры моделей атмомсфер, vbo каталожных звёзд и галактик), и ещё хотя бы 10 Мб на vbo процедурных звёзд и галактик, и теперь ещё пара десятков Мб на модели и текстуры кораблей. Так что если у игрока 512 Мб и меньше видеопамяти, кэш будет захлёбываться, постоянно удалять и заново генерировать ландшафт и т.д. Переход на модель "удалять сразу как только перестаёт быть нужно" не улучшит эту ситуацию. Нужно сильно уменьшать потребление памяти планетами (ценой качества), я начал это делать (опция быстрая загрузка ландшафта), но не доделал - какие-то глюки непонятные вылезли. В общем, я всё равно планирую переписать ландшафтный движок, уже с учётом минимизации расхода памяти и времени генерации, морфингом вершин для плавного переключения лодов, возможности пост-обработки сгенерированного рельефа для склаживания и симуляции эрозии и т.д.


BalogДата: Вторник, 24.07.2012, 19:54 | Сообщение # 43
Исследователь
Группа: Пользователи
Украина
Сообщений: 211
Награды: 0
Статус: Offline
SpaceEngineer
Вы конечно разбираетесь в технологии больше чем все остальные вместе взятые, если вы считаете что что-то невозможно значит так оно и есть. Главное что была замечена ошибка, значит ошибка будет найдена.
AerospacefagДата: Вторник, 24.07.2012, 20:29 | Сообщение # 44
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
SpaceEngineer,
Quote (SpaceEngineer)
Проблема в том, что получается нужно постоянно проверять эти условия для всех элементов, даже невидимых - это будет съедать время процессора, т.е. приведёт к снижению fps.

Вообще это правильно замечание - спрашивается, что проще сделать - просчитать порядок расположения или сразу напропалую рисовать все без вопросов? Второй вариант, конечно, проще по исполнению, он не требует столько времени для реализации, но в результате он затратнее для конечного пользователя.

http://www.youtube.com/watch?f....#t=136s
Ну, скажем, для открытого космоса это не так актуально, а для планетарных пейзажей? Они постоянно пролетают и из-за них постоянно проблемы.

С другой стороны, лучше бы программа для начала просто не падала.


Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5


Сообщение отредактировал Aerospacefag - Вторник, 24.07.2012, 20:30
SpaceEngineerДата: Среда, 25.07.2012, 02:19 | Сообщение # 45
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5544
Награды: 54
Статус: Offline
Quote (Aerospacefag)
http://www.youtube.com/watch?f....#t=136s Ну, скажем, для открытого космоса это не так актуально, а для планетарных пейзажей? Они постоянно пролетают и из-за них постоянно проблемы.

Это occlusion query, его халявно реализовать для обычных движков, где мапмейкер сам вручную расставляет окклюдеры. Для процедурной планеты придётся придумать какой-то алгоритм, динамически генерирующий окклюдеры внутри ближайших гор (значит нужно динамически находить эти самые горы). Это ещё вопрос, что будет быстрее. Ландшафт и так очень быстро рендерится, самые большие тормоза даёт шейдер атмосферы.


Форум » SpaceEngine » Архив » Новая версия 0.96 вышла!
Страница 3 из 6«123456»
Поиск:

>