Новая версия 0.96 вышла!
|
|
maxmiztejm | Дата: Вторник, 10.07.2012, 10:59 | Сообщение # 31 |
Космический турист
Группа: Пользователи
Словакия
Сообщений: 33
Награды: 1
Статус: Offline
| Владимир, спасибо за труд!
|
|
| |
Умотурман | Дата: Вторник, 10.07.2012, 21:45 | Сообщение # 32 |
Исследователь
Группа: Пользователи
Дем. республика Конго
Сообщений: 245
Награды: 0
Статус: Offline
| Уже в Москве. щас скачаю...
|
|
| |
ghostuser | Дата: Вторник, 10.07.2012, 23:34 | Сообщение # 33 |
Космический турист
Группа: Пользователи
Российская Федерация
Сообщений: 20
Награды: 0
Статус: Offline
| Огромное спасибо за ваш проект, Владимир.) Внимательно слежу с версии 0.95 и регулярно получаю тонны удовольствия.) Добавление, хоть и в порядке теста, кораблей, меня, как симуляторщика, привело в транс и вовсе... Сейчас я допишу эту благодарность и пойду дальше развлекаться с этим счастьем.) Спасибо!)
P.S. У меня один вопрос. Управление кораблями, я надеюсь, будет претерпевать изменения? Поскольку сейчас не особо удобно управлять вектором тяги. В идеале, было бы круто привязать оный к центру экрана и автоматизировать работу маневровых двигателей. Т.е. куда смотришь, туда и летишь.
|
|
| |
Умотурман | Дата: Вторник, 10.07.2012, 23:35 | Сообщение # 34 |
Исследователь
Группа: Пользователи
Дем. республика Конго
Сообщений: 245
Награды: 0
Статус: Offline
| Круто!!!
|
|
| |
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
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: 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
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Quote (Balog) Кеш это хорошо но нельзя его раздувать до бесконечности. У меня например памяти много, 16 гигабайт и видеопамяти тоже в общем немало - гигабайт, но приложение падает когда SE начинает занимать несколько более гигабайта а память заполняется где-то на 3-4 гигабайта от начального уровня. А перед тем замечаются подтормаживания и вовсе глюки. В 0.95 всё прекрасно работало, в 0.96 просто закрался какой-то баг, не отловил его пока.
Quote (Balog) Чистить кеш необходимо. Нет
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
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Quote (Aerospacefag) http://www.youtube.com/watch?f....#t=136s Ну, скажем, для открытого космоса это не так актуально, а для планетарных пейзажей? Они постоянно пролетают и из-за них постоянно проблемы. Это occlusion query, его халявно реализовать для обычных движков, где мапмейкер сам вручную расставляет окклюдеры. Для процедурной планеты придётся придумать какой-то алгоритм, динамически генерирующий окклюдеры внутри ближайших гор (значит нужно динамически находить эти самые горы). Это ещё вопрос, что будет быстрее. Ландшафт и так очень быстро рендерится, самые большие тормоза даёт шейдер атмосферы.
|
|
| |