Ага, про меня. К инфинити - нет.
http://www.decarpentier.nl/scape-procedural-extensions - продвинутые процедурные ландшафты. сильно не вникал, но заголовки и картинки заманчивые...
может пригодиться?
процедурная эрозия,
джорданова турбуленция и пр.
Вот это изображение впечатлило:
А квазары тут есть?
Neptune, что-то у меня планеты какие-то вытянутые по горизонтали, похожие на дыню-торпеду. Похоже, что что-то не так с соотношением сторон. У меня разрешение экрана 1366x768.
Neptune
так а что , какие планы на эту технологию?
dub
Уже все есть:
http://spaceengine.org/forum/14-167-1#7336
gammaker
> А квазары тут есть?
Квазар это та же сверхмассивная ЧД, но обильно поглощающая межзвездный газ. Этого пока нету.
gammaker
> Neptune, что-то у меня планеты какие-то вытянутые по горизонтали, похожие на
> дыню-торпеду. Похоже, что что-то не так с соотношением сторон. У меня
> разрешение экрана 1366x768.
А все прочие игры и видео типа нормально? В конфиге есть параметр AspectRatio.
Barbar1an
> так а что , какие планы на эту технологию?
На какую?
Neptune, если все так реалистично, то после создании игрока проходит какоето время, и он какбы и развивается, чтото строит, чтото покупает, продает, будет ли както реализовано старение, всетаки вещи изнашиваются и игроку тоже не может быть например 1000 лет... а ктото может например зайти в игру в 2025-м году (игрового времени), а ктото в 3025...
кОрОванщик в треде
artmax
> Neptune, если все так реалистично, то после создании игрока проходит какоето
> время, и он какбы и развивается, чтото строит, чтото покупает, продает, будет
> ли както реализовано старение, всетаки вещи изнашиваются и игроку тоже не может
> быть например 1000 лет... а ктото может например зайти в игру в 2025-м году
> (игрового времени), а ктото в 3025...
Ну если в SE будут играть через 1000 лет, тогда да, надо будет реализовать старение. Ибо игра реального времени, год в игре = год в реальности.
Очень классная программа. Я вижу используется glew - возможен ли нативный порт на мак и линукс?
По поводу процедурных планет - идея интересная, только похоже всё генерируется на CPU, из-за чего идут жестокие лаги. Возможно, сильно упростит жизнь использование техники тесселяции и генерация процедурных текстур прямо в шейдре? Это позволит разгрузить процессор и использовать анимированные 3D текстуры, например, для поверхности солнца. Voronoi сейчас на GPU на раз рисуется.
Баги
1. Если уткнуться в звезду - скорость падает до нуля и невозможно увеличить ускорение. Баг переменый.
2. В энный момент у меня при "попадании" на поверхность планеты так проглюкивало, что отбрасывало на десяток световых лет в сторону. Я нашёл червоточину?:) Баг также переменный.
3. Не чистится текстурный кэш, возможно, поэтому я словил "битые" текстуры на марсе.
4. Память течёт как сито. При старте было 460 мб, чуть прошло времени - уже 2 гигабайта. Под конец сегфолтнулась...
5. Появляются какие-то фантомные полигоны под поверхностью планет.
>А все прочие игры и видео типа нормально?
Естественно. Если бы с другими играми была бы такая проблема, я бы сюда не писал.
>В конфиге есть параметр AspectRatio.
Стоит 1.7, то есть вроде всё правильно. Но всё равно почему-то растянуто.
RPG
> По поводу процедурных планет - идея интересная, только похоже всё генерируется на CPU
Нет, как раз-таки все генерируется на GPU. На CPU такие сложные фрактальные функции работали бы часами. Лаги в основном из-за передачи сгенерированных карт высот на CPU для построения мешей и проверки столкновений, а с последними дровами эти лаги стали совершенно чудовищными.
RPG
> Если уткнуться в звезду - скорость падает до нуля и невозможно увеличить
> ускорение. Баг переменый.
Это не баг, а фича. Если врезаться в поверхность, скорость сбрасывается до 100 м/с. Почти все новые игроки не умеют приземляться на поверхность планеты (инструкцию не читают что ли) и пытаются делать это просто подлетая к ней на огромной скорости. Без этой фичи они просто пролетали бы мимо планеты.
RPG
> В энный момент у меня при "попадании" на поверхность планеты так проглюкивало,
> что отбрасывало на десяток световых лет в сторону. Я нашёл червоточину?:) Баг
> также переменный.
Это да, возможно быг, несколько раз уже упоминали, только я не могу его воспроизвести у себя.
RPG
> Не чистится текстурный кэш, возможно, поэтому я словил "битые" текстуры на марсе.
Глюки могут быть из-за старых доров, неправильных настроек в конфиге, малого количества видеопамяти или не совместимой видеокарты. Какая видеокарта?
RPG
> Память течёт как сито. При старте было 460 мб, чуть прошло времени - уже 2
> гигабайта. Под конец сегфолтнулась...
Утечек памяти нет, проверено десятком разных способов. Опять же, что-то не то с настройками, дровами или железом. Прога отъедает столько памяти, сколько может, но не больше объёма физической памяти (RAM и VRAM), менеджер памяти за этим следит. Если дрова или видеокарта старая, недоступно определение расхода видеопамяти, поэтому могут полезть глюки.
RPG
> Появляются какие-то фантомные полигоны под поверхностью планет.
Юбки на границах патчей? Глюки? Вообще-то проверка столкновений не должна пускать под поверхность :) Версия программы точно 0.9.6.2?
gammaker
> Стоит 1.7, то есть вроде всё правильно. Но всё равно почему-то растянуто.
У вас пиксели неквадратные что ли? Эта настройка только для дисплеев с неквадратными пикселями, если у вас дисплей нормальный, должно стоять 1.0.
Neptune
> Нет, как раз-таки все генерируется на GPU. На CPU такие сложные фрактальные
> функции работали бы часами. Лаги в основном из-за передачи сгенерированных карт
> высот на CPU для построения мешей и проверки столкновений, а с последними
> дровами эти лаги стали совершенно чудовищными.
Да потом я уже заметил что лагает именно при генерации звёзд и мешей, текстуры грузятся практически мгновенно. Хотя если ещё и карту столкновений и тесселяцию делать на gpu - лоды будут грузиться моментально, но со старыми картами несовместимо.
Neptune
> Это не баг, а фича. Если врезаться в поверхность, скорость сбрасывается до 100
> м/с. Почти все новые игроки не умеют приземляться на поверхность планеты
> (инструкцию не читают что ли) и пытаются делать это просто подлетая к ней на
> огромной скорости. Без этой фичи они просто пролетали бы мимо планеты.
Вот проблема в том, что алгоритм сбоит и с поверхности планеты "улететь" уже нельзя - скорость постоянно сбрасывается. Приходится нажимать g, и тогда он нормально "взлетает".
Neptune
> Глюки могут быть из-за старых доров, неправильных настроек в конфиге, малого
> количества видеопамяти или не совместимой видеокарты. Какая видеокарта?
Карта GT 430, памяти 1 гб... Дрова 295, самые свежие стабильные.
Neptune
> Утечек памяти нет, проверено десятком разных способов. Опять же, что-то не то с
> настройками, дровами или железом. Прога отъедает столько памяти, сколько может,
> но не больше объёма физической памяти (RAM и VRAM), менеджер памяти за этим
> следит. Если дрова или видеокарта старая, недоступно определение расхода
> видеопамяти, поэтому могут полезть глюки.
У меня 8 гигабайт, а прога думает что 2. Возможно, поэтому, доезжая до 2 Гб она сегфолтится. Память карты вроде определяется верно. Память судя по всему под текстуры выделяется.
>Прога отъедает столько памяти, сколько может
Практически memory leak по определению:) Когда память освобождается с текстурами? А с мешами? Или это добрый драйвер "оставляет" текстуры на всякий случай, но при этом программа о них не знает?
Вот скрин со всей информацией, возможно, поможет понять что тут не так:
Глюки вот такие:
>У вас пиксели неквадратные что ли? Эта настройка только для дисплеев с неквадратными пикселями, если у вас дисплей нормальный, должно стоять 1.0.
Квадратные. Соотношение экрана совпадает с соотношением разрешения. Только aspect ratio всегда равен разрешению по ширине, делённому на разрешению по высоте, то есть 1.7 (так и стояло по умолчанию). В SpaceEngine это разве имеет какое-то другое значение? Попробую у себя сейчас поставить 1.0.
Кстати, при расчёте детальной карты планеты, может быть полезным забабахивание всех параметров планеты в один мега-glsl-скрипт - положительно сказывается на скорости работы шейдров на стареньких карточках, тем более что он будет постоянно дергаться только с параметрами позиции. Компилятор повыкидывает все циклы, условия и понаподставляет все константы, в зависимости от сложности шейдра прирост в 200% гарантирован. Если этого конечно ещё не сделано:)
Ибо если старичку вроде 6800 подать на вход
uniform vec3 Randomize; // Randomize
uniform vec4 faceParams; // (x0, y0, size, face)
uniform vec4 scaleParams; // (offsU, offsV, scale, tidalLock)
uniform vec4 mainParams; // (mainFreq, terraceProb, terranType, snowLevel)
uniform vec4 colorParams; // (colorDistMagn, colorDistFreq, latIceCaps, latTropic)
uniform vec4 climateParams; // (climatePole, climateTropic, climateEquator, tropicWidth)
uniform vec4 mareParams; // (seaLevel, mareFreq, sqrt(mareDensity), icecapHeight)
uniform vec4 montesParams; // (montesMagn, montesFreq, montesFraction, montesSpiky)
uniform vec4 dunesParams; // (dunesMagn, dunesFreq, dunesDensity, drivenDarkening)
uniform vec4 hillsParams; // (hillsMagn, hillsFreq, hillsDensity, hills2Density)
uniform vec4 canyonsParams; // (canyonsMagn, canyonsFreq, canyonsFraction, erosion)
uniform vec4 cracksParams; // (cracksMagn, cracksFreq, cracksOctaves, craterRayedFactor)
uniform vec4 craterParams; // (craterMagn, craterFreq, sqrt(craterDensity), craterOctaves)
uniform vec4 textureParams; // (texScale, texColorConv, venusMagn, venusFreq)
uniform vec4 cloudsParams1; // (cloudsFreq, cloudsOctaves, twistZones, twistMagn)
uniform vec4 cloudsParams2; // (cloudsLayer, cloudsNLayers, cloudsStyle, cloudsCoverage)
uniform vec4 cycloneParams; // (cycloneMagn, cycloneFreq, sqrt(cycloneDensity), cycloneOctaves)
он скорее подавится:)
Тема в архиве.