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
| Хотел кое-что заметить насчет астероидов.
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% этого "материала" было вытолкнуто планетами-гигантами за пределы астероидного кольца, то это распределение все равно сохраняется. Но, при том, что в среднем диаметр орбит на этом расстоянии в десятки раз больше, то и встречаются они там значительно реже. Так же меня смущают странные планетарные системы, где планеты-гиганты чередуются с землеподобными планетами, я могу почитать где-нибудь о таком методе формирования планетарных систем?
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 |
|
| |