SpaceEngine TODO - обновлено 11 июля 2016
|
|
Aerospacefag | Дата: Четверг, 25.08.2011, 20:37 | Сообщение # 91 |
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
| А я ведь говорил, что придется копаться в генераторе поверхности.
Очень бы хотелось увидеть что-то вроде этого. Я бы даже сказал - ну их, эти межзвездные перелеты, если в планетарии будет такая функциональность.
Win7 Intel Core i5-2310 2.9 Ghz 4 Gb DIMM DDR3 Asus GeForce GTX760, 2 Gb GDDR-5
Сообщение отредактировал Aerospacefag - Четверг, 25.08.2011, 23:37 |
|
| |
SpaceEngineer | Дата: Пятница, 26.08.2011, 01:42 | Сообщение # 92 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Quote (Duke) Возможно я не совсем правильно понимаю алгоритм генерации ландшафта. Есть ли где нибудь полное описание алгоритма (видел только пост по LOD на gamedev)? Нету. Алгоритм состоит ил ЛОД дерева, что описано на геймдеве, и генератора текстур. Генератор просто берёт 3D координаты точки сферы и передаёт её во фрактальную функцию. Всё на GPU.
Quote (Duke) Ландшафт генерируется по сгенерированной карте высот? Нет. Ландшафт это и есть карта высот. Никаких низкодетальных шаблонов не используется. Хотя я планирую это ввести, для Земли, Марса и т.п. получится процедурная генерация мелких деталей.
Quote (Duke) Есть возможность использовать еще какие нибудь текстуры для наложения на этом этапе? Нет. Каких например? Их же тоже надо как-то сгенерировать.
Quote (Duke) Когда генерируется текстура для всей планеты (предпологаю что генерируется при выборе планеты и начале движения к ней или при входе в звездную систему)? При первой необходимости. Т.е. когда планета видна на экране и она больше пикселя. Следующие лоды точно так же генерируются: когда они видны на экране, не загорожены самой планетой, и детализация предка уже недостаточна (приближение или зум).
Quote (Duke) Когда определяется на каком уровне начинается вода? Не когда, а как. Элементарно: Если высота меньше заданного одинакового для всей планеты уровня океана, это вода. Высота рельефа обрезается уровнем океана, а цвет задаётся синий с бликом. Когда сделаю нормальную воду, высота не будет обрезаться, а цвет будет цветом дна.
Тот алгоритм, что ты описал, годится для CPU. Направление рек можно определить градиентом высоты (уклоном поверхности). Это как минимум требует построения карты нормалей или градиентов (второй проход). Но как строить древовидную саму фигуру реки на GPU, я не представляю. Алгоритм типа следующая_точка_по_течению = f(предыдущая_точка) не годится - на GPU это означает, что надо сделать столько проходов (рендеров текстуры в буффер с вызовом нужного шейдера), сколько точек в длину хотим получить реку. Если текстура 256*256, надо как минимум 256 проходов, а на самом деле больше, т.к. река извилистая. Лучше уж тогда настоящую эрозию рассчитать, она тоже требует много проходов.
Интересно было бы посмотреть на такую "волшебную" функцию
Спасибо, гляну.
Quote (Aerospacefag) Очень бы хотелось увидеть что-то вроде этого. Редактор поверхности? А зачем? Куда сохранять все редактирования? С процедурными планетами проблема в том, что совместить заданные в файлах куски и процедурно сгенерированные очень сложно.
|
|
| |
GV_FiQst | Дата: Пятница, 26.08.2011, 02:46 | Сообщение # 93 |
Строитель Миров
Группа: Команда SE
Украина
Сообщений: 1062
Награды: 3
Статус: Offline
| Quote (SpaceEngineer) С процедурными планетами проблема в том, что совместить заданные в файлах куски и процедурно сгенерированные очень сложно.
Можно просто скласть сгенерированые генератором и заданные в файлах куски вместе и написать подпрограму которая б переход од одного куска к другому делала плавным. Например если пиксель одного куска синий а другого красный то можно зделать дорожку с пикселей где с начала идет пиксель цвета в смешении синего (90%) цвета и красного (10%) потом пиксель цвета в смешении синего (80%) цвета и красного (20%) ... и последний пиксель цвета в смешении синего (10%) цвета и красного (90%) цвета. доработать немного и получится что програма склала два куска: заданого и процедурного. Правда этим способом никак нельзя совместить кусок воды и рельефа. Только два рельефа или две воды.
AMD Phenom II X2 555 3200 MHz; RAM 4GB 1333 Hz; ATI Radeon HD 5670 1024 Mb; ОС Win 7 tabulorasa edition 32 bit
|
|
| |
Duke | Дата: Пятница, 26.08.2011, 03:44 | Сообщение # 94 |
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
| Quote (SpaceEngineer) Нет. Каких например? Их же тоже надо как-то сгенерировать. На некоторых форумах предлагали начинать генерацию рельефа с предварительной генерации текстуры сети рек. Дальше уже плясать от нее.
Quote (SpaceEngineer) Но как строить древовидную саму фигуру реки на GPU, я не представляю. Алгоритм типа следующая_точка_по_течению = f(предыдущая_точка) не годится - на GPU это означает, что надо сделать столько проходов (рендеров текстуры в буффер с вызовом нужного шейдера), сколько точек в длину хотим получить реку. Если текстура 256*256, надо как минимум 256 проходов, а на самом деле больше, т.к. река извилистая. Лучше уж тогда настоящую эрозию рассчитать, она тоже требует много проходов. На первое время можно использовать несколько предрассчитанных вариантов, пока не найдется эффективный алгоритм. Хранить их можно к примеру в многомерном массиве, координаты точек лучей будут задаваться смещением относительно первого элемента. Ну или в виде заранее подготовленных текстур. Можно подготовить несколько вариантов с разлиным углом отклонения лучей от точки впадения в океан и потом использовать более подходящий.
|
|
| |
Aerospacefag | Дата: Пятница, 26.08.2011, 17:51 | Сообщение # 95 |
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
| Quote (SpaceEngineer) Редактор поверхности? Нет, генератор рельефа из http://liris.cnrs.fr/~egalin/Pdf/2010-terrain.pdf
Win7 Intel Core i5-2310 2.9 Ghz 4 Gb DIMM DDR3 Asus GeForce GTX760, 2 Gb GDDR-5
|
|
| |
Molodoy | Дата: Суббота, 27.08.2011, 17:07 | Сообщение # 96 |
Наблюдатель
Группа: Новички
Российская Федерация
Сообщений: 6
Награды: 0
Статус: Offline
| Народ, вы не задумывались о системных требованиях, у вас же генерация вселенной и генерация ландшафта, будет ложиться на GPU + еще тени, облака и т.п. не стоит ли процессор и оперативку тоже подключить? Все таки память видеокарты имеет предел...Или как либо оптимизировать до частоты хотя бы 36fps для сгдаживания
http://speedtest.net/result/1460369219.png
|
|
| |
SpaceEngineer | Дата: Воскресенье, 28.08.2011, 02:14 | Сообщение # 97 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Процессор проигрывает видеокарте в задачах параллельных вычислений (к которым относится рендер 3D сцен и генерация текстур) раз эдак в 100. А оперативную память просто невозможно использовать для рендера из неё видеокартой - данные постоянно по шине гоняться будут, а это раз в 10-100 замедлит рендер. Так что нет, у CPU и RAM нет шансов. Этим и отличается "игровой" комп от "офисного": нет видеокарты - нет быстрого и сложного рендера. А в движке у CPU найдутся другие задачи - физика, игровая логика, обмен данными с сервером, ...
|
|
| |
Duke | Дата: Понедельник, 29.08.2011, 20:54 | Сообщение # 98 |
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
| Просматривал блог outerra. Разработчики в нескольких блогпостах (в частности http://outerra.blogspot.com/2011/05/bumpy-grass-effect.html ) упоминали, что они используют модифицированный wavelet noise ( http://graphics.pixar.com/library/WaveletNoise/paper.pdf ) вместо perlin noise для многих эффектов. Хотелось бы узнать, используется ли этот тип шума в SpaceEngine?
******************************************************************************************************* Добавлено (29.08.2011, 20:54) --------------------------------------------- Просмотрел сайт Эрика Брунетона http://www-evasion.imag.fr/Membres/Eric.Bruneton/ Насколько я знаю вид атмосферы на планетах в SpaceEngine генерируется на основе модифицированного алгоритма Эрика? Сейчас он работает над проектом Proland. До 2006 года проект был с открытыми исходными кодами и его можно найти здесь http://ebruneton.free.fr/proland/index.html Проект старый, но возможно что-то будет интересно, в частности там есть простая система процедурной генерации городов, облаков и деревьев. Насколько я понимаю его проект Rama ( http://www.youtube.com/watch?v=zBIQCm54dfY ) построен с помощью этих модулей. После 2006 Эрик перешел на текущий сайт. В 2010 согласно этой ссылке http://raweb.inria.fr/rapportsactivite/RA2010/evasion/uid43.html часть Proland была выпущена под открытой лицензией в виде отдельного фреймворка Ork. Его можно найти здесь https://gforge.inria.fr/frs/?group_id=2938 , но помоему там нет ничего особенно полезного.
Сообщение отредактировал Duke - Вторник, 30.08.2011, 01:12 |
|
| |
SpaceEngineer | Дата: Вторник, 30.08.2011, 13:02 | Сообщение # 99 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Спасибо, посмотрю про шум. Насколько я знаю, Брунетон использует векторное задание дорог, полей и т.д. Мне же из этого можнт пригодиться разве что задание рек и горных хребтов, т.к. Земля одна, а другиз планет триллионы, думаю незачем пока так плотно заниматься Землёй.
|
|
| |
Molodoy | Дата: Вторник, 30.08.2011, 20:23 | Сообщение # 100 |
Наблюдатель
Группа: Новички
Российская Федерация
Сообщений: 6
Награды: 0
Статус: Offline
| Quote (SpaceEngineer) SpaceEngineer Если интересует рендеринг воды, посмотрите тут: http://www.midnightbeach.com/jon/pubs/3D_Fractal_Landscapes.html http://www.gameprogrammer.com/fractal.html http://vterrain.org/Water/
http://speedtest.net/result/1460369219.png
|
|
| |
Duke | Дата: Среда, 31.08.2011, 03:08 | Сообщение # 101 |
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
| Просмотрел несколько страниц с gamedev-а по spaceengine. Там несколько раз упоминаются примеры из книги Texturing and Modeling A Procedural Approach и проблемы с их реализацией. Не знаю были ли тогда в наличии примеры с CD книги. На всякий случай примеры из той книги видел на сайте издателя здесь http://www.elsevierdirect.com/companion.jsp?ISBN=9781558608481 (правда в не совсем удобном виде).
|
|
| |
Molodoy | Дата: Среда, 31.08.2011, 20:16 | Сообщение # 102 |
Наблюдатель
Группа: Новички
Российская Федерация
Сообщений: 6
Награды: 0
Статус: Offline
| Как я понял в ближайшее время будет реализована возможность добавления своих 3d объектов, можно будет добавлять любые объекты(корабли, станции, города на планетах, другие 3d объекты на планетах и космосе) либо только корабли? Города будут генерироваться процедурно в самом коде двигателя, либо будут импортироваться из файла?
http://speedtest.net/result/1460369219.png
|
|
| |
Duke | Дата: Среда, 31.08.2011, 22:49 | Сообщение # 103 |
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
| Просматривая Texturing and Modeling A Procedural Approach возник вопрос, как генерируется текстура для слоя облаков? Она так же как и поверхность генерируется по частям и по мере необходимости или же создается общая текстура для планеты? В SpaceEngine на планетах с облаками мне ни разу не попадались циклоны. Поддерживаются ли они движком? В книге на 457 странице был приведен фрагмент кода для создания структуры циклона ( http://www.elsevierdirect.com/compani....LONE.SL ). Возможно ли его использовать для добавления циклонов на планеты в SpaceEngine?
P.S.: На всякий случай залил все примеры с http://www.elsevierdirect.com/companion.jsp?ISBN=9781558608481 в один архив и положил сюда http://narod.ru/disk/23607587001/CD.rar.html (Пароль: spaceengine).
Сообщение отредактировал Duke - Четверг, 01.09.2011, 01:25 |
|
| |
SpaceEngineer | Дата: Четверг, 01.09.2011, 12:15 | Сообщение # 104 |
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
| Города - конечно процедурно, но и загрузка из файла будет. Насчёт того, как скоро это всё будет сделано, ничего не могу сказать. Корабли по идее могут появиться в одной-двух ближайших версиях.
|
|
| |
GV_FiQst | Дата: Пятница, 02.09.2011, 00:10 | Сообщение # 105 |
Строитель Миров
Группа: Команда SE
Украина
Сообщений: 1062
Награды: 3
Статус: Offline
| А свои города у скрипт писать тоже можно будет???
AMD Phenom II X2 555 3200 MHz; RAM 4GB 1333 Hz; ATI Radeon HD 5670 1024 Mb; ОС Win 7 tabulorasa edition 32 bit
|
|
| |