ENG Новый сайт

Расширенный поиск
[ Новые сообщения · Пользователи · Правила ]
SpaceEngine TODO - обновлено 11 июля 2016
SpaceEngineerДата: Суббота, 05.11.2011, 19:22 | Сообщение # 166
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Да не, проблема не в фильтрации - у меня же разрешение грани скайбокса 1024*1024, это будет не заметно.

DukeДата: Понедельник, 07.11.2011, 01:27 | Сообщение # 167
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Тут одна мысль возникла. Нельзя ли соединить несколько близко расположенных точек из разбиения вороного прямыми, из каждой точки пустить еще нескольколько лучей, а затем добавить например fbm шуму, что бы получить фигуры похожие на те что здесь http://jwhigham.wordpress.com/2010/05/20/mountains-and-ridges/ ?
SpaceEngineerДата: Понедельник, 07.11.2011, 02:20 | Сообщение # 168
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Как? Есть только координаты текущей точки, и координаты ближайшей точки диаграммы Вороного. Что значит в этом случае "провести линию"?

DukeДата: Понедельник, 07.11.2011, 14:26 | Сообщение # 169
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Quote (SpaceEngineer)
Как? Есть только координаты текущей точки, и координаты ближайшей точки диаграммы Вороного. Что значит в этом случае "провести линию"?

Рязве у тебя нет координат двух сосених точек из разбиения вороного?
SpaceEngineerДата: Понедельник, 07.11.2011, 15:07 | Сообщение # 170
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Соседних нет, только двух ближайших к данной. Можно и трёх, и четырёх.

DukeДата: Понедельник, 07.11.2011, 16:31 | Сообщение # 171
Нет аватара
Первооткрыватель
Группа: Команда SE
Антарктика
Сообщений: 419
Награды: 2
Статус: Offline
Quote (SpaceEngineer)
Соседних нет, только двух ближайших к данной. Можно и трёх, и четырёх.

Рязве ты не можешь от этой точки до трех-четырех ближайших точек провести прямые так же как ты делаешь лучи для кратеров, а из этих точек пустить 2-3 луча?
SpaceEngineerДата: Понедельник, 07.11.2011, 17:22 | Сообщение # 172
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Лучи кратеров я делаю не так. Я вычисляю азимут точки по отноцению к центру кратера и подставляю его в fBm, получая подуляцию яркости по углу.
Как нарисовать прямую между двумя точками, зная только координаты этих точек и текущей точки? Наверное можно, я пока не думал. А как перпендикуляры сделать? Тоже не знаю.


GV_FiQstДата: Суббота, 12.11.2011, 22:28 | Сообщение # 173
Строитель Миров
Группа: Команда SE
Украина
Сообщений: 1062
Награды: 3
Статус: Offline
Quote (SpaceEngineer)
Пылевые и астероидные кольца


можно зделать так:
движок процедурно генерирует тисячи маленьких астероидов с массою от 1 до 200 кг и размерами от 500 м до 20 км. орбиты будут такие:
Code
Orbit
  {
   Period  =  RotationPeriod   // Rings rotation period in hours
   SemiMajorAxis  =  К
   Eccentricity  =  0
   Inclination  =  0
   AscendingNode  =  0
   ArgOfPericen  =  0
   MeanAnomaly  =  М
  }
}

Где  
К:=0;
while K<InnerRadius do
K:=Random(OuterRaduis);

M:=Random(360)  


Но нужно еще зделать проверку чтобы не попались 2 астероида на одной орбите или очень близко друг к другу.


AMD Phenom II X2 555 3200 MHz;
RAM 4GB 1333 Hz;
ATI Radeon HD 5670 1024 Mb;
ОС Win 7 tabulorasa edition 32 bit
SpaceEngineerДата: Суббота, 12.11.2011, 22:35 | Сообщение # 174
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
И что это даст? Тысячи астероидов это очень мало. Их нужны миллиарды, как звёзд в галактике.

GV_FiQstДата: Суббота, 12.11.2011, 23:54 | Сообщение # 175
Строитель Миров
Группа: Команда SE
Украина
Сообщений: 1062
Награды: 3
Статус: Offline
Милиарды это как-то очень много. да и в одной точке кольца их будет видно меньше чем 6000 звезд (которые мы можем наблюдать невооруженным глазом) . пэтому не нужно чтобы они рендерились все за один раз. как в инфинити далеко от колец - видно текстура ближе - видно маленькие астероиды и немного пыли. пыль можно рендерить как туманность

AMD Phenom II X2 555 3200 MHz;
RAM 4GB 1333 Hz;
ATI Radeon HD 5670 1024 Mb;
ОС Win 7 tabulorasa edition 32 bit
SpaceEngineerДата: Воскресенье, 13.11.2011, 01:24 | Сообщение # 176
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Звёзды тоже не рендерятся все сразу (и не генерируются), а только те, что можно увидеть при данной настройке предельной звёздной величины. С камнями в кольцах не было бы проблем и я бы давно их сделал, если бы они стояли на месте как звёзды. Но они ведь движутся, и самое неприятное - с разными скоростями. Про камни в кольцах уже неоднократно разговаривали на форуме.

GV_FiQstДата: Воскресенье, 13.11.2011, 01:32 | Сообщение # 177
Строитель Миров
Группа: Команда SE
Украина
Сообщений: 1062
Награды: 3
Статус: Offline
Quote (SpaceEngineer)
и самое неприятное - с разными скоростями

Это не должно быть сложно, рандомно подобрать период и вуаля.

Quote (SpaceEngineer)
С камнями в кольцах не было бы проблем и я бы давно их сделал, если бы они стояли на месте как звёзды

Ну пусть движутся себе. те которые удаляются от нас на такое растояние при котором мы их перемтаем видеть будут удалятся из памяти. сохрнанятся будут только параметры рандомно сгенерированые движком(размер масса орбита и тд). А те камни которые приближаются на такое растояние при котором стают видимы будут генерироватся (или загружатся из кеша)

ЗЫ Таким же способом можно делать протопланетарные диски


AMD Phenom II X2 555 3200 MHz;
RAM 4GB 1333 Hz;
ATI Radeon HD 5670 1024 Mb;
ОС Win 7 tabulorasa edition 32 bit


Сообщение отредактировал GV_FiQst - Воскресенье, 13.11.2011, 03:08
SpaceEngineerДата: Воскресенье, 13.11.2011, 03:44 | Сообщение # 178
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
GV_FiQst, ты не понимаешь проблемы. Задача - сгенерировать и хранить информацию например о миллиарде объектов. В память они все не влезут, поэтому надо генерировать только те, что видны. Видно в каждый момент не более 100 тысяч объектов например. Для этого используется восьмеричное дерево (oct-tree). Для звёзд всё замечательно, но для астероидов - облом. В каждый момент времени видны разные астероиды, т.к. они движутся. Поэтому грубо говоря каждый кадр надо перестраивать дерево, а это убьёт фпс просто в ноль (ведь дерево для того и делалось, чтобы быстро определять, что видно, а что нет). Если отказаться от дерева вообще - придётся каждый кадр генерировать все тысячи астероидов, вижные в данный момент, это также уьтёт фпс.

AerospacefagДата: Воскресенье, 13.11.2011, 05:33 | Сообщение # 179
Строитель Миров
Группа: Пользователи
Российская Федерация
Сообщений: 1019
Награды: 3
Статус: Offline
SpaceEngineer, просто забудь об octree для всякой мелочи и найди способ сгенерить эти тысячи-миллионы астероидов лобовым методом, т.е. только на время, которое они будут находиться в поле зрения. Например, через векторное поле. На самом деле это просто камешки и пыль, и если их не рассматривать под микроскопом, всем будет по барабану, из чего они состоят и как генерируются. Для крупных объектов уже все есть, а для средних - можно придумать какой-нибудь костыль.

Win7
Intel Core i5-2310 2.9 Ghz
4 Gb DIMM DDR3
Asus GeForce GTX760, 2 Gb GDDR-5
SpaceEngineerДата: Воскресенье, 13.11.2011, 16:34 | Сообщение # 180
Автор Space Engine
Группа: Администраторы
Российская Федерация
Сообщений: 5547
Награды: 55
Статус: Offline
Ага, легко сказать "найди способ".

Поиск:

>