RPG
> У меня 8 гигабайт, а прога думает что 2. Возможно, поэтому, доезжая до 2 Гб она
> сегфолтится. Память карты вроде определяется верно. Память судя по всему под
> текстуры выделяется.
RPG
> Вот скрин со всей информацией, возможно, поможет понять что тут не так:
У вас версия SE старая! Качайте новую, а потом патч.
RPG
> Практически memory leak по определению:) Когда память освобождается с
> текстурами? А с мешами? Или это добрый драйвер "оставляет" текстуры на всякий
> случай, но при этом программа о них не знает?
Движок удаляет текстуры и меши только когда нужна память под новые. Что в этом не правильного? Если приземлиться на планету и покрутиться, все вокруг закешируется. То же самое звёзды и т.д.
gammaker
> Квадратные. Соотношение экрана совпадает с соотношением разрешения. Только
> aspect ratio всегда равен разрешению по ширине, делённому на разрешению по
> высоте, то есть 1.7 (так и стояло по умолчанию).
Этот параметр обозначает иеммно соотношение сторон пикселя. По умолчанию стоит 1.0, это вы что-то подправили или скачали что-то не то.
RPG
> Кстати, при расчёте детальной карты планеты, может быть полезным забабахивание
> всех параметров планеты в один мега-glsl-скрипт - положительно сказывается на
> скорости работы шейдров на стареньких карточках
Старые карты и так не поддерживаются. Правда при таком методе перед генерацией каждой новой планеты будет длинющий лаг - шейдеры очень большие и компилятся 2-5 секунды, а каждая планета/луна имеет свой набор параметров.
Neptune
> У вас версия SE старая! Качайте новую, а потом патч.
о как, а я то надеялся что на офф сайте предложат новейшую версию с уже наложенным патчем.
Neptune
> Движок удаляет текстуры и меши только когда нужна память под новые. Что в этом
> не правильного? Если приземлиться на планету и покрутиться, все вокруг
> закешируется. То же самое звёзды и т.д.
В этом то и проблема. Памяти много, но после 2 Гб он всё равно не удаляет старые объекты, и при этом не может выделить память под новые. Может после достижения порога в 1.5 Гб потихоньку чистить старьё?
Neptune
> Старые карты и так не поддерживаются. Правда при таком методе перед генерацией
> каждой новой планеты будет длинющий лаг - шейдеры очень большие и компилятся
> 2-5 секунды, а каждая планета/луна имеет свой набор параметров.
А при тесселяции - тот же длиннющий лаг в 2-3 секунды. Можно многопоточность сделать, но конечно проблем будет вагон. А не пробовали POM вместо этой дурацкой тесселяции?
Кстати, чем объясняются дикие тормоза (1.5-2 фпс) при приближении к планетам, у которых непроцедурный ландшафт?
RPG
> о как, а я то надеялся что на офф сайте предложат новейшую версию с уже
> наложенным патчем.
Да просто там народ все время возмущается что прога много весит - аж 400 Мб, лень качать каждый раз всё.
RPG
> В этом то и проблема. Памяти много, но после 2 Гб он всё равно не удаляет
> старые объекты, и при этом не может выделить память под новые. Может после
> достижения порога в 1.5 Гб потихоньку чистить старьё?
Конечно не удаляет, откуда движок знает, что юзер не вернётся назад? Да и какая разница сколько памяти отъедать, вам жалко что ли? Или вы параллельно игре много всякого запускаете?
RPG
> А при тесселяции - тот же длиннющий лаг в 2-3 секунды. Можно многопоточность
> сделать, но конечно проблем будет вагон. А не пробовали POM вместо этой
> дурацкой тесселяции?
Я не использую теселляцию. Как я уже говорил, тормоза из-за передачи текстур на CPU. Я уже знаю как это обойти.
Многопоточность не поможет - это же GPU.
RPG
> Кстати, чем объясняются дикие тормоза (1.5-2 фпс) при приближении к планетам, у
> которых непроцедурный ландшафт?
Это чтение текстур с диска, и декодирование из jpg/png. Надо переделать все текстуры на более мелкие, 256*256 уже почти без тормозов грузятся.
Neptune
> Я не использую теселляцию. Как я уже говорил, тормоза из-за передачи текстур на
> CPU.
А зачем их туда передавать? Делаете тесселяцию на CPU (а ещё лучше на GPU), смещение высот через вертекс-шейдр.
Neptune
> Многопоточность не поможет - это же GPU.
Так вроде сборка шейдра не на GPU идёт.
Neptune
> Конечно не удаляет, откуда движок знает, что юзер не вернётся назад? Да и какая
> разница сколько памяти отъедать, вам жалко что ли? Или вы параллельно игре
> много всякого запускаете?
Ну хром обычно 2-3 гб занимает. Но я не о том, баг собственно в том что при 2 Гб - сегфолт. Ага, вот патч эту проблему решает.
Neptune
> Это чтение текстур с диска, и декодирование из jpg/png. Надо переделать все
> текстуры на более мелкие, 256*256 уже почти без тормозов грузятся.
Нет, это когда уже всё загрузилось. Когда текстуры грузит вообще ступор. Кстати после патча ускорился рендер "солнечных" планет, но сильно упал общий показатель фпс. Если раньше было 50-70, стало 20-30.
P.S. Ну вот, с патчем теперь вылетает на 4 Гб. Совсем другое дело
RPG
> А зачем их туда передавать? Делаете тесселяцию на CPU (а ещё лучше на GPU),
> смещение высот через вертекс-шейдр.
Чтобы строить меши и для физики. Смещение высот чере вертекс шейдер пробовал, но вылезла другая проблема: http://www.gamedev.ru/projects/forum/?id=122716&page=166#m2481
RPG
> Так вроде сборка шейдра не на GPU идёт.
При чём тут сборка шейдера. Да и разве можно её распараллелить?
RPG
> Ну хром обычно 2-3 гб занимает. Но я не о том, баг собственно в том что при 2
> Гб - сегфолт. Ага, вот патч эту проблему решает.
> P.S. Ну вот, с патчем теперь вылетает на 4 Гб. Совсем другое дело
SE - 32-битная прога, она не может использовать больше 4 гигов. И вообще-то падать не должна, мендежер памяти следит и за VRAM и за RAM. При одном гиге VRAM оператива не должна даже до 1.5 гигов выростать, что-то не то происходит.
RPG
> Нет, это когда уже всё загрузилось. Когда текстуры грузит вообще ступор.
Ааа, это какой-то новый нездоровый баг, то ли чистка от старых текстур и мешей адский тормозит, то ли что, не разобрался ещё.
RPG
> Кстати после патча ускорился рендер "солнечных" планет, но сильно упал общий
> показатель фпс. Если раньше было 50-70, стало 20-30.
Хм, странно...
Neptune
> SE - 32-битная прога, она не может использовать больше 4 гигов. И вообще-то
> падать не должна, мендежер памяти следит и за VRAM и за RAM. При одном гиге
> VRAM оператива не должна даже до 1.5 гигов выростать, что-то не то происходит.
У него 8 гигов памяти, получается что твой менеджер видит что ещё есть и продолжает, хавать, и нарывается на свою 32-битность. Я так понял
Zizilk
> У него 8 гигов памяти, получается что твой менеджер видит что ещё есть и
> продолжает, хавать, и нарывается на свою 32-битность. Я так понял
Нет, GlobalMemoryStatusEx возвращает объем физическй памяти, но не более 4 Гб, если ехе скомпилен с ключом /LARGEADDRESSAWARE, и не более 2 Гб, если без. Пока ещё не было случая, чтобы движок уперся в 4 Гб потолок, это возможно только если видеопамяти гигов 8 (тогда кэш в видео становится настолько большим, что сопутствующие данные в ОЗУ не помещются). Но даже если потолок и достигается, движок не должен падать.
Neptune
> Чтобы строить меши и для физики. Смещение высот чере вертекс шейдер пробовал,
> но вылезла другая проблема:
> http://www.gamedev.ru/projects/forum/?id=122716&page=166#m2481
Так там же в теме и правильно порекомендовали: карту высот строить в шейдере, а вычислять дистанцию до камеры по другой, менее точной карты высот, два предыдущих лода будет вполне достаточно, а шину разгрузит аж в 16 раз! И на CPU для грубой быстрой оценки передавать не float текстуру а просто rgb.
Neptune
> RPG
> > Нет, это когда уже всё загрузилось. Когда текстуры грузит вообще ступор.
> Ааа, это какой-то новый нездоровый баг, то ли чистка от старых текстур и мешей
> адский тормозит, то ли что, не разобрался ещё.
>
> RPG
> > Кстати после патча ускорился рендер "солнечных" планет, но сильно упал общий
> > показатель фпс. Если раньше было 50-70, стало 20-30.
> Хм, странно...
Я понял причину диких тормозов - туманности и атмосфера. Если их выключить - фпс не опускается ниже 100. В зависимости от атмосферы, не знаю как она рендерится, но на разных планетах может колебаться от 5 до 40 фпс.
Neptune
> SE - 32-битная прога, она не может использовать больше 4 гигов. И вообще-то
> падать не должна, мендежер памяти следит и за VRAM и за RAM. При одном гиге
> VRAM оператива не должна даже до 1.5 гигов выростать, что-то не то происходит.
Neptune
> Но даже если потолок и достигается, движок не должен падать.
Движок таки падает... Я к сожалению не могу никак физически протестировать его на винде, возможно, спишем это на глюки вайна. Но при достижении 2 Гб я бы всё-таки чистил совсем старый мусор. Генерация контента идёт очень быстро, я так понял тормозят только меши, так что не жалко его снова перегенерировать.
>Нет, GlobalMemoryStatusEx возвращает объем физическй памяти, но не более 4 Гб, если ехе скомпилен с ключом /LARGEADDRESSAWARE, и не более 2 Гб, если без.
>Пока ещё не было случая, чтобы движок уперся в 4 Гб потолок, это возможно только если видеопамяти гигов 8 (тогда кэш в видео становится настолько большим, что сопутствующие данные в ОЗУ не помещются).
>Но даже если потолок и достигается, движок не должен падать.
У меня вообще на нетбуке работает и не падает (хоть и тормозит). Правда я недолго летал.
RPG
> Я понял причину диких тормозов - туманности и атмосфера. Если их выключить -
> фпс не опускается ниже 100. В зависимости от атмосферы, не знаю как она
> рендерится, но на разных планетах может колебаться от 5 до 40 фпс.
Ага, атмосфера очень прожорлива. Но разных планетах разное количество лайтов (солнца и луны), но не более 4. В самом жестком случае - 4 лайта, облака и вода, даже у меня тормозит, 15-20 фпс (GF 9800). С туманностями тоже есть проблема - там пара моделе с очень большим числом спрайтов, надо их упростить.
RPG
> Генерация контента идёт очень быстро, я так понял тормозят только меши, так что
> не жалко его снова перегенерировать.
Да я сам не в восторге от нынешней системы, надо что-то кардинально менять.
Кстати не баг но неприятность - если подлететь к планете и сразу от неё отдалиться - движок не чистить очередь генерации текстур, а продолжает создавать поверхность.
Neptune
> Ага, атмосфера очень прожорлива. Но разных планетах разное количество лайтов
> (солнца и луны), но не более 4. В самом жестком случае - 4 лайта, облака и
> вода, даже у меня тормозит, 15-20 фпс (GF 9800). С туманностями тоже есть
> проблема - там пара моделе с очень большим числом спрайтов, надо их упростить.
4 источника света на объект - фигня. Филлрейт проседает - помножьте 100500 спрайтов на FullHD разрешение. Число блоков растеризации растёт не так стремительно, как число универсальных процессоров.
Баг - похоже, блики считаются не в screen-space. Occlusion query должен спасти.
Вот снова упала когда увеличивал дальность прорисовки звезд. Второй раз падение было когда часто нажимал "g".
Интересный эффект: в покое 300-400 фпс, вращаю камеру (правой кнопкой) - 50 фпс, останавливаю вращение - снова 300-400 фпс. При вращении левой кнопкой мыши такого не происходит.
Земля почему-то полностью затоплена водой, континенты видно тольео если отключить воду. Скриншоты приложены, сфотографировано одно и то же место.
А вообще проект очень понравился.
RPG
> 4 источника света на объект - фигня.
Для Брунетоновский атмосферы - не фигня. Спарйты это в туманностях, а там освещения вообще нет.
RPG
> Баг - похоже, блики считаются не в screen-space. Occlusion query должен спасти.
Какие настройки Diffraction Spikes? Если норм или супер - должно нормально отсекаться. А Occlusion query кстати не будет работать с прозрачностью - атмосфера, облака, кольца.
RPG
> Вот снова упала когда увеличивал дальность прорисовки звезд.
Что за дальность прорисовки звёзд? Там нет такого. Есть предельная звёздная величина.
Видимо падает всё-таки из-за wine, в винде таких проблем не наблюдается.
Maks123
> Земля почему-то полностью затоплена водой, континенты видно тольео если
> отключить воду. Скриншоты приложены, сфотографировано одно и то же место.
Да, был такой баг, уже исправлен.
Maks123
> Земля почему-то полностью затоплена водой, континенты видно тольео если
> отключить воду.
о у меня было такое, а я не мог понять почему вся земля синяя:)
Neptune
> Для Брунетоновский атмосферы - не фигня. Спарйты это в туманностях, а там
> освещения вообще нет.
Слишком смещённый рендер (95% производительности оттягивает атмосфера) получается.
Neptune
> Что за дальность прорисовки звёзд? Там нет такого. Есть предельная звёздная
> величина.
Ну звёздный масштаб значит, в оригинале называется magnitude
Neptune
> Какие настройки Diffraction Spikes?
вроде норм, попробую воспроизвести
Кстати возможно поможет вычисление уровня LOD по z-буферу. Он будет достаточно точно давать вам карту высот, причем полноэкранный z можно не делать. чем ближе z - тем сильнее нужно делить ноды.
RPG
> Слишком смещённый рендер (95% производительности оттягивает атмосфера)
> получается.
Да, к сожалению. Но оно того стоит!
RPG
> Ну звёздный масштаб значит, в оригинале называется magnitude
Magnitude это и есть звёздная величина.Предельная чувствительность телескопа как бы. Чем больше - там больше звёзд видно.
RPG
> Кстати возможно поможет вычисление уровня LOD по z-буферу. Он будет достаточно
> точно давать вам карту высот, причем полноэкранный z можно не делать. чем ближе
> z - тем сильнее нужно делить ноды.
Т.е. как? Рендерить планету с текущим уровнем детализации в маленький z-буффер, а потом что? Не совсем понял идею.
Тема в архиве.