Очень хорошо, что реки и каньоны вернулись. Горные хребты стали выглядеть по-реалистичнее, также красиво выглядят крутые склоны гор с текстурой осадочных слоёв. В общем отличное нововведение, спасибо. Ландшафт на планетах в Space Engine становится всё более красивым и реалистичным .
По-мне так первоочередное это не тени и столкновения галактик, а возможность сесть на планету на корабле, выйти из него и побегать ногами или покататься на ровере. Особенно круто это в Окулус Рифт будет. Но я так понял что мы не скоро это увидим из-за особенностей движка( Инопланетяне почитали земные форумы и поняли, что с людьми на связь лучше не выходить.
Это ещё один "святой грааль" процедурной генерации, наравне с реками. В кратце: ещё никому это не удалось (я о чисто фрактальных шумах).
Значит в будущем будут трудности с созданием растений, молний, облаков. Ведь кроны деревьев, береговые линии, реки, облака, молнии, горные хребты (уже выше говорилось), обладают в природе фрактальными свойствами?
А собственно что тут сложного? Ведь существуют же генераторы фракталов. Почему бы не прикрутить его к ландшафту?
Фракталы разные бывают. В SE невозможно использовать рекурсивные, т.е. те, для вычисления которых надо использоать рекурсию. Т.е. почти и никакие. Рисование молнии например - типичный рекурсивный алгоритм. На GPU его не запустить (ну нет, запустить конечно, но это будет крайне неэффективно - как из пушки по воробьям).
А в чём проблема то? Просто на CPU перенести это дело нельзя?
Скорее в том, что пока невозможно, или ещё не придумали как процедурно генерировать фракталы. Пока, конечно, невозможно береговые линии, горные хребты, турбулентность, вихри, облака на газовых гигантах, реки, лавовые потоки и многое другое генерировать процедурно фракталами. Но ничего страшного в этом сейчас нет. Компьютерные технологии не стоят на месте. Сейчас это может быть и невозможно, но рано или поздно и до этого, так сказать, техника дойдёт.
А в чём проблема то? Просто на CPU перенести это дело нельзя?
Как ни странно, но определенные расчеты связанные с обработкой больших массивов данных быстрее делать на GPU - они под это заточены. Предположу, что на CPU текущие расчеты генерации рельефа будут на порядок дольше.
А в чём проблема то? Просто на CPU перенести это дело нельзя?
Можно, но рельеф будет генерироваться раз в 100 медленее, чем сейчас. Даже 10 ядер не спасут - будет в 10 раз медленнее. GPU хоть имеет более простые и медленные ядра, чем CPU, но их там сотни, а в топовых видюхах - тысячи. Чувствуете разницу?
Можно, но рельеф будет генерироваться раз в 100 медленее, чем сейчас. Даже 10 ядер не спасут - будет в 10 раз медленнее.
грех спросить, канешна, хотя я попытаюсь:
это ж насколько плохо обстоят дела с оптимизацией, раз все генерится на одно ядро....
Добавлено (03.02.2015, 18:51) --------------------------------------------- SpaceEngineer, и все остальные: кстати говоря, GPU с генерацией справляются намного быстре, чем камни саааавсем не потому, что в них куча ядер. не, ну как бы из-за этого тоже, но смысл не в этом.
я как-то смотрел конференцию intelпо поводу их графического ускорителя, и понял, что камни в GPUшках в корне отличаются от стандартных центральных процессоров. там от ядер цп остается только ALU (это сам вычислительный модуль) теперь рассказываю почему:
во-первых, изначально, видеокарты заточены ТОЛЬКО под графику (про ускорители пока молчу) то есть всякие там OpenGL и DirectX сначала выстраивают у себя в памяти, будем называть это, сцену, а потом уже дают видеокарте указания какой пиксель каким цветом засветить. но. что отличает этот подход от процессорной графики. дело в том, что эти вычисленя почти что однотипны. и это дело доходит да такой похожести, что карте надо, наприер, всего лишь увеличить 30,000 разных чисел на 1. (это я очень грубо и образно сказал, но в принципе сложность у этих вычислений примерно такая же. вычислять там какието гига-формулы не нужно, но вот данных дофигашечки). ПОЭТОМУ-ТО в видеокартах. настолько много ядер. он выполняют однотипныю информацию с простыми числами. окей, к чему я это говорю: дело в том, что нынешние видеокарты очень тесно связаны с ПО (просто потому что их очень мало,и они используются повсеместно. да их очень мало. назовите мне хоть 10 часто используемых, и я заберу слова обратно) и как раз эти ваши OpenGL отдают сложные команды видеокарте, а в видеокарте есть препроцессор, который разбивает эти сложные команды на кучу простых (как правило, препроцессоры разделяют команды на количество ядер в камне.)
"эй, парень!многабукаф!" скажешь ты, мой дорогой читатель этого поста. но подожди. теперь я перехожупрямк вообще самой-самой сути:
изначально препроцессор имеет собственную программу для распаралелливания процессов. то есть, в принципе, ничего заумного в графических программах писать не надо, все уже за вас сделали. а вот центральные процессоры-то ничегошки и не распаралелливают на свои ядра. мда. беда. но вот вам, SpaceEngineer, мое, хоть и идиотское, но отнюдь не бесполезное предложение: допишите скрипт распарралеливанмя процессоров. в принципе, это не особо сложно сделать. не, серьезно. у меня знакомый ТыжПрограммизд, и с легкостью параллелит сложные задачи. то есть берется куча комманд, резервируются два/три/пять/десять/сто/тысяча/да_сколько_же_их_мать_вашу ядер, и каждому отдаются "простые" комманды. Все! и это решается ДАЖЕ на высоких программных языках. тем более, в С++. я просто даже не знаю, что может быть проще.
Сообщение отредактировал mr-coloboc - Среда, 04.02.2015, 20:14