ENG Новый сайт

Расширенный поиск
[ Новые сообщения · Пользователи · Правила ]
SpaceEngine TODO - обновлено 11 июля 2016
DukeДата: Пятница, 05.08.2011, 18:48 | Сообщение # 46
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
А если сделать так:
1) астероиды генерируются и распологаются на местах по octree
2) далее они загоняются скажем в массив и движутся по своим орбитальным траекториям при этом изменений в дереве не производится, оно используется только для генерации
3) по мере движения по octree генерируются новые астероиды которые при генерации проверяются на взаимопересечение с уже движущимися

Есть еще подход совершенно с другой стороны. Я давал ссылку на True Imposters. С помощью нее создается циклическая текстура например из 100 астероидов и натягивается на бублик который уже сам вращается вокруг планеты. Правда тогда все астероиды будут в одной плоскости.

P.S. Наткнулся на реализацию астероидного кольца на Blitz3D здесь http://www.blitzbasic.com/Community/posts.php?topic=91575 ( исходники http://www.christianhart.de/bb/saturn.zip )


Сообщение отредактировал Duke - Пятница, 05.08.2011, 18:49
SpaceEngineerДата: Пятница, 05.08.2011, 23:45 | Сообщение # 47
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Quote (Duke)
А если сделать так:

Так не получится тоже. Допустим мы смотрим на кольцо вдоль его радиуса, камни выплывают слева и исчезают за правой границей экрана. Как движок узнает, что слева камни закончились? Ведь новые не сгенерируются, пока в поле зрения не попадут те узлы дерева слева, что отсечены краницей экрана.

Quote (Duke)
Я давал ссылку на True Imposters.

True Impostors не так работают. Это просто что-то вроде рейтрейсинга. Каждый астероид представляется двумя картами высот - спереди и сзади, и рисуется в виде спрайта (импостера), но хитрый шейдером, который производит трассировку луча в этих двух картах высот и строит так изображение (это развитие displasement mapping). Один фиг миллиарды камней так не сделать.

Quote (Duke)
.S. Наткнулся на реализацию астероидного кольца на Blitz3D

Спасибо, поизучаю.


AerospacefagДата: Суббота, 06.08.2011, 04:18 | Сообщение # 48
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
Хотел кое-что заметить насчет астероидов.
Прикрепления: 2999315.jpg (200.7 Kb)


Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5
SpaceEngineerДата: Суббота, 06.08.2011, 09:02 | Сообщение # 49
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Правильно, в движке в нашей Солнечной системе вообще говоря нет пояса астероидов. Нужно составить каталог из 1-2 тысячи самых крупных и включить их в новую версию.

AerospacefagДата: Суббота, 06.08.2011, 17:14 | Сообщение # 50
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
Я имел в виду, как насчет того, чтобы в процедурных системах распределить их более равномерно, чтобы они лучше отражали реальную картину?
В реальности эти орбиты изначально начали деформироваться приливными силами, и в процессе эволюции системы они были вытолкнуты из этого пояса и разлетелись по всему околосолнечному пространству, что я и хотел показать более наглядно. Большая часть вылетела бы в пояс Койпера, который на порядок массивнее основного кольца, и в области около звезды осталось бы не несколько десятков малых планет, а всего несколько штук. Остальные относятся к "транснептуновым объектам".

И да, вопрос со статистикой астероидных поясов, как у солнечной системы, так и в кольцах планет-гигантов, действительно, придется как-то решать.


Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5
SpaceEngineerДата: Суббота, 06.08.2011, 18:44 | Сообщение # 51
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Quote (Aerospacefag)
Я имел в виду, как насчет того, чтобы в процедурных системах распределить их более равномерно, чтобы они лучше отражали реальную картину?

Как это более равномерно? Ты же сам показал видео, где виден довольно чёткий пояс (или скорее тор). "Транснептуновые" объекты у меня вообще не моделируются, только если случайно сгенерируется внешний астероидный пояс. Также не моделируются астероды, "свободно" летающие по системе.


AerospacefagДата: Суббота, 06.08.2011, 20:32 | Сообщение # 52
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
Quote (SpaceEngineer)
"Транснептуновые" объекты у меня вообще не моделируются, только если случайно сгенерируется внешний астероидный пояс. Также не моделируются астероды, "свободно" летающие по системе.

Но это же не соответствует реальности. Данный "тор" в основном составляют небольшие астероиды, а не крупные объекты и малые планеты диаметром около 100 км. Основная часть объектов расположена за пределами орбиты Нептуна.
Понимаешь, существует же определенное статистическое распределения размера объектов в "остаточном материале" после формирования планет, и при том оно примерно одинаково для всех таких объектов, не относящихся к полноправным планетам(по самой последней классификации). И если 95% этого "материала" было вытолкнуто планетами-гигантами за пределы астероидного кольца, то это распределение все равно сохраняется. Но, при том, что в среднем диаметр орбит на этом расстоянии в десятки раз больше, то и встречаются они там значительно реже.
Так же меня смущают странные планетарные системы, где планеты-гиганты чередуются с землеподобными планетами, я могу почитать где-нибудь о таком методе формирования планетарных систем?
Прикрепления: 1481524.jpg (26.9 Kb)


Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5
DukeДата: Суббота, 06.08.2011, 21:36 | Сообщение # 53
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
На одном из форумов писали что со сходной проблемой движения объектов в octree работали при создании RocketCommander. Там для ее решения использовали модифицированный octree. Возможно стоит просмотреть их исходники http://exdream.com/Games....0Source

Еще видоизмененный octree для движущихся объектов описывали здесь http://tulrich.com/geekstuff/partitioning.html

P.S.: Наткнулся на тему в gamedev, там в конце был вопрос про мипмапинг. Возможно это будет полезным:
http://www.nvidia.com/object/mipmapping_normal_maps.html
http://divergentcoder.com/rendering/filtering-normal-maps/


Сообщение отредактировал Duke - Суббота, 06.08.2011, 21:57
SpaceEngineerДата: Воскресенье, 07.08.2011, 04:24 | Сообщение # 54
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Quote (Aerospacefag)
Но это же не соответствует реальности. Данный "тор" в основном составляют небольшие астероиды, а не крупные объекты и малые планеты диаметром около 100 км.


Нет. Если говорить только про пояс астероидов между Марсм и Юпитером, то он состоит из тел всех размеров - от 1000-километровой Цереры до песчинок. Объекты пояса Койпера имеют другое происхождение и природу - они в основном ледяные и являются остатками протопланетного диска. Это как бы стройматериал для ещё одной-двух планет, которые спустя 5 миллиардов лет всё ещё формируются. Ну и конечно там же летает небольшое количество каменных планетазималей, выброшенных из внутренних частей системы при формировании больших планет.

По поводу планет - так они у меня просто рандомно распределены. Я пока не задавался более точным моделированием в соответствии с теорией. Для примера, есть вот такая статья про моделирование образования планетной системы и несколько сопровождающих видеороиков:
http://www.sciencemag.org/content....C1.full
Из неё следуют такие факты:

- в процессе роста планет в диске они медленно смещаются ближе к звезде (мигрируют)
- газовые гиганты возникают просто мгновенно, за какие-то сотни тысяч лет, экспоненциально увеличивая массу и выедая в диске щель
- как только возникают газовые гиганты, они выбрасывают из системы почти все мелкие протопланеты рядом с собой
- возможны небольшие планеты с орбитами дальше газовых гигантов (холодные ледяные миры в моём движке)
- очень редки небольшие планеты между солнцем и газовыми гигантами (наша Солнечная система - редкость)
- возможны небольшие каменистые планеты типа Земли на далёких орбитах (сфрмировались близко к солнцу и были выброшены на переферию мигрирующими гигантами)
- невозможны небольшие планеты между газовыми гигантами (вот их надо пофиксить в движке)
- много карликовых планет на переферии системы (аналог пояса Койпера)
- велика вероятность суперземель (2-10 масс Земли) и нептунов (10-50 масс Земли) - фактически это самые распространённые планеты
- велика вероятность горячих газовых гигантов
- велика вероятность тёплых газовых гигантов (из-за миграции к звезде)
- велика вероятность хаотической нестабильной системы с вытянутыми и сильно наклоненными орбитами
- если масса диска большая, много планет, даже газовых гигантов, уапдут на звезду, или сформируют очень компактную резонансную систему наподобие Kepler-11
- очень много протопланет, даже газовых гигантов, выкидывается из системы с гиперболическими скоростями - блуждающих планет должно быть чрезвычайно много, в несколько раз больше, чем звёзд


DukeДата: Вторник, 09.08.2011, 19:36 | Сообщение # 55
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Было бы неплохо сделать поверхность звезд более активной наподобии той что в этом ролике

Моделирование некоторых эффектов с исходниками (правда не для realtime) видел здесь https://graphics.stanford.edu/wikis/cs348b-09/mingj/writeup

******************************************************************************************************
Добавлено (09.08.2011, 19:36)
---------------------------------------------
Насколько я понимаю облачный покров на данный момент представляет собой сферу с процедурно сгенерированной текстурой? Предпологается ли в последующем при достижении зоны облаков генерировать более продвинутые облака?

Неплохую подборку методов генерации облаков видел здесь http://vterrain.org/Atmosphere/Clouds/

Здесь http://wiki.patapom.com/index.php/Clouds видел неплохое описание одного из методов.
Здесь http://www.patapom.com/Temp/Clouds.rar его реализация (можно посмотреть шейдеры).

Несколько методов реализации объемных облаков для xna видел здесь
http://xna-uk.net/blogs....ce.aspx
http://xnacommunity.codeplex.com/wikipag....mmunity

Здесь http://www.ogre3d.org/forums/viewtopic.php?f=11&t=48414 есть плагин SkyX с исходниками для Ogre3d от Хавьера Гонзалеса. Здесь http://www.sargodarya.de/fileadmin/media/SkyX_2.zip версия этого плагина для OpenGL

P.S.: От того же Хавьера Гонзалеса есть еще плагин Hydrax для создания реалистичных водных поверхностей.
Ознакомится с ним можно по этим ссылкам
http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Hydrax
http://www.ogre3d.org/addonforums/viewtopic.php?f=20&t=12668
http://www.ogre3d.org/addonforums/viewtopic.php?f=20&t=14221


Сообщение отредактировал Duke - Вторник, 09.08.2011, 19:43
SpaceEngineerДата: Вторник, 09.08.2011, 21:18 | Сообщение # 56
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Duke, спасибо за ссылки. Солнце действительно не реал-тайм, и без анимации. Обоака у меня без анимации тоже, но в будущем планируется анимация текстуры сферы облаков и генерация 3D облаков при подлёте на близкое расстояние.

DukeДата: Вторник, 09.08.2011, 23:00 | Сообщение # 57
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
При разработке больших проектов обычно создается база знаний по проекту, в которую заносится различная информация о каких нибудь технических проблемах, используемых технологиях и т.д. Это помогает структурировать проект и облегчает его последующую разработку. Думаю простейшую базу знаний можно сделать на основе wiki движка.
Я иногда сталкиваюсь с различными статьями о программировании компьютерной графики, возможно интересуют какие-либо конкретные темы?
Digit1990Дата: Среда, 10.08.2011, 00:49 | Сообщение # 58
Исследователь
Группа: Администраторы
Российская Федерация
Сообщений: 260
Награды: 0
Статус: Offline
Duke
проблема в том, что для любой работы нужны:
- желание
- время
- квалификация

Любая помощь проекту будет с радостью принята.


Per aspera ad Astra
SpaceEngineerДата: Среда, 10.08.2011, 04:03 | Сообщение # 59
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Когда мне нужны какие-то алгоритмы, я как правило сам нахожу или спрашиваю на геймдеве. Но бывает и не нахожу, например недавно искал как генерировать мипмапы вручную на шейдерах (на GPU), так и не нашёл ничего.

DukeДата: Среда, 10.08.2011, 18:35 | Сообщение # 60
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
По мипмапингу я давал 2 ссылки в одном из предыдущих постов.
Еще неплохой материал видел здесь http://www.g-truc.net/post-0256.html
Есть еще интересная статья в GPUGems
http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter28.html (исходники http://rghost.ru/17490851 )


Сообщение отредактировал Duke - Среда, 10.08.2011, 18:36
Поиск:

>