Привет всем. Не удалось выкроить достаточно времени для текущего конкурса, хотя тема интересная для меня, и после крайне затяжного предыдущего проекта (8 месяцев) хочется уже сделать что-то по фану, однако времени на полноценный проект не хватает решил допилить что-то заброшенное. За пару вечеров собрал, причесал и выпустил в свет Solar - простенький симулятор нашей Солнечной системы, основная задача которого познакомить пользователя с самыми значимыми объектами нашей системы. Если вы увлекаетесь астрономией, наверняка будет интересно почитать различные характеристики планет и т.п.
P.S. Проект делался ради удовольствия, и не претендует на реалистичность и достоверность, особо крутой графикой он тоже не удивит, относитесь к нему как к поделке)
Весьма впечатляет.
У меня странное мелькание, заметно на темных сторонах планет и на солнце. По ощущениям - Z-fighting оболочки атмосферы.
Пробивает сквозь кольца Сатурна. Кстати, один из его спутников, бедняга, летит прямо через пыль.
Нужно что-то делать с названиями - они некрасиво попиксельно дрыгаются при движении планет. И перестаньте выводить фпс по умолчанию - у вас отличная производительность, зачем излишества?
Прости, Я как всегда начал со вкусненького - с критики. Я даже толком не посмотрел, а сразу вижу плохой кернинг:)
Могу порекомендовать вот этот интерактивный планетарий. Я надеюсь, тебя он мотивирует, а не наоборот, автор решил множество различных проблем, связанных с отображением астрообъектов и их свойств (туманностей, атмосферы, полупрозрачных штук и прочее), можно подсмотреть.
Mefistofel, как всегда спасибо за отзыв!
На счет мерцания - да есть такой артефакт, и в зависимости от видеокарты от проявляется на различных дистанциях, действительно из-за того что геометрия атмосферы слишком близка к геометрии поверхности.
Вообще под все это дело писался один убер-шейдер, и с свечением атмосферой, бампом, спекуляром и прочим, но не осилил и забил (мотивации не особо хватало, т.к. проект не основной и вообще не знаю зачем я его делал, просто фан) Таких недоделок много, например с ленз-флэерами, они элементарные программные.
Действительно пара спутников оказалось в кольцах (кстати один из них Мимас - рекомендую загуглить) т.к. расстояния в симуляции умножаются на какой-то коэффициент, который задается в файле настроек, уже не помню каким параметром, это было необходимо для больше наглядности, на точность я совсем не претендую.
На счет названий - дело в том, что смещение даже в 1 пиксель (понятное дело речь о спроецированной позиции объекта) вызывает это визуальное подергивание. Вот, пока писал это придумал как решить этот нюанс.
Кернинга как такого в движке нет (в дополнительной либе для работы с текстом и растровой графикой вроде был, на ключа для нее у меня нет) Разве что выводить текст побуквено.. для неторопливого бейсика это не оптимально
За критикой собственно я этот проект и выложил, ну и похвастаться, да)
За SpaceEngine я слежу очень давно, еще с gamedev, но в последние года 2 перестал следить. Спасибо за ссылку, а то сам совсем забыл про этот проект, ведь действительно есть что подглядеть, но мне крайне далеко до их масштабов и детализации.
Очень круто! Дочка как раз изучает во втором классе эту тему, продемонстрирую на этой штуковине! :)
Отношения скоростей, по-моему не соответствуют. Луна за 1 осевой оборот Земли делает примерно 1 оборот вокруг неё. А должна за 29 дней примерно...
ObelardO
Нене, про кернинг - это шутка:) "Хочешь другу зла - научи его видеть плохой кернинг"
Я к тому, что Я уже не могу смотреть просто на графику - сразу примечаю всякие артефакты, косячки, и т.д.
Текст - самая большая проблема, имхо. Я понимаю, что у обычного текста попиксельная коррекция, очевидно такое решение не подойдет для плавного текста. Можно рисовать текстурный прямо в 3д и сделать его побольше(чтобы не было видно артефактов).
Ну и мне не нравится, что текст прямо поверх больших планет - он должен быть выше или ниже, не загораживая.
JohnJ2, спасибо за отзыв! Продемонстрируй конечно, мне приятно что моя поделка послужит детям)
По скорости - вообще у меня были цифры орбитальных скоростей в виде км/ч, скорость Земли я взял за 1.0, тогда скорость луны соответствует 0.034348, и это действительно 29, а я и не догадался) Вообщем в файле со всеми параметрами данные луны правильные, возможно уже реализация подкачала, тоже посмотрю этот момент.
Погонял шарики :)
В целом понравилось, кроме того, что хотелось бы более красивого управления - а то часто приходится скролить (например переключился с планеты на спутник, он мелкий - премелкий, даже если планету макс призумил, приходится и его призумливать), и некоторые другие особенности управления, которые субъективные и трудноформализуемые. Возможно, была бы кстати фрилук камера.
Из косяков - в файлах данных встречаются символы вопроса в цифирях (например, видимая величина солнца), у Юпитера (емнип) есть пара лишних ссылок на спутники (вообще, приём со ссылками очень понравился, он даёт энциклопедичность +5). Немного досадно, что в статьях не все пункты есть у всех тел (у каких-то есть некий параметр, но нет другого), хотелось бы сравнивать, но понятно, что такие данные не всегда доставаемы.
У какой-то планеты (Плутон, емнип) дуга отрисовки орбиты была смещена (в соотв режиме) и планета едет по самому краю этой дуги. Некоторые другие графические глитчи (особенности) не очень понравились, например названия, но их уже упоминали, добавлю только, что хороша была бы опция сделать их всё время вкл (на любых расстояниях), ну и может полностью выкл тоже (плюс оригинальное поведение).
По сути - позанудствуем насчёт Харона - где он ? Хочется видеть не банальное движение планет и спутников, а также и довольно редкую систему движения планетоидов с общим центром масс (движение этого центра масс по орбите вокруг солнца и движение участников системы вокруг центра масс с отдалением пропорционально их массе). Также неплохо было бы, думаю, как-то реализовать пояс астероидов, ну и как пик этой идее - и пояс Койпера до кучи как-то обозначить.
Очень круто) когда пробовал делать нечто подобное в лоб, забросил на проблеме нехватки точности для космических расстояний :)
Порадовало наличие атмосферы на солнце, я знал, что там можно дышать) Не порадовало, что на солнце нет смены дня и ночи, как на всех остальных планетах, так как прилететь туда ночью, чтоб не обжечься уже не получится.
Шейдер атмосферы тоже нравится, было бы интересно понять как оно сделано. Только мне казалось, что если смотреть на планету из тени в сторону солнца, то атмосфера как раз светится должна, а она наоборот светится только если со стороны солнца смотреть.
Понравилось, что оно все двигается, спутники вокруг планет пока рассматриваешь. Не нашел функции отключения освещения, чтобы посмотреть на ночные стороны объектов, было бы хорошо добавить.
В целом, все отлично, мне понравилось, хорошая работа)
phomm, MysticCoder, спасибо за отзывы! Сколько полезного посоветовали)
На счет зума - сделаю чтобы при переключении планет зум пропорционально изменялся. На всякий случай напомню что левый шифт позволяет быстрее скролить.
По данным в файлах - есть такой косяк, т.к. все данные собирались и обрабатывались в сжатые сроки, по невнимательности забыл о символах для старой разметки.
Лишние ссылки - задел на будущее. Вообще у некоторых планет спутников огромное множество, и не у всех есть текстура в открытом доступе, заниматься генерированием я не стал, ограничился наиболее важными объектами.
Кстати на счет сравнивания двух тел - отличная идея, выбираешь 2 объекта и одновременно смотришь их характеристики, возьму в план.
По названиям - можно выключить весь интерфейс, но сделать отдельную опцию не сложно.
Смещение от орбиты - тут уже трудности с точностью, чем дальше, тем хуже. И на всех компах главное по-разному.
Пояса астероидов - вещь конечно неотъемлемая для симуляции солнечной системы, но за них даже браться страшно.
По точности для космических расстояний - тут в лоб не сразу разберешься)
Тут вообще не использовано ни одного шейдера, я от них отказался когда запнулся на написании своего собственного, уже писал Мефу на эту тему.
на счет светимости атмосферы - действительно есть косяк, поправлю.
Отключение освещения тоже сделаю, и может даже совсем его перепишу, чтобы и тени были.
_____________________________
Вообще все можно до бесконечности улучшать и предела не будет, но на это нужно время.. а оно вроде как у меня есть, потихоньку подготовлю новую версию
Наверное, в первый раз в жизни вижу, чтобы после слов "но на это нужно время" стояла фраза "а оно ... есть", всю жизнь видел что временем говорящий обделён ))
Про всё ответил, ОбелардО, но про самое главное забыл ) что насчёт Харона и системы Плутон-Харон ?
KEFIR, если не ошибаюсь, у тебя всегда что-то не то с кодировками.шрифтами, по крайней мере в моих играх :D
Не знаю.. придется наверное на растровые шрифты переводить
Потратил немного времени на доработку, глобальных изменений нет, только небольшие исправления и нововведения:
-Исправлено "подергивание" названий планет. Теперь названия плавно перемещаются вместе с планетой.
-Названия планет закрепляются под планетой, а не поверх нее.
-Доработано переключение между планет, сохраняется относительное увеличение, теперь нет необходимости каждый раз выбирать удобное увеличение.
-Исправлены файлы данных, убраны лишние символы разметки.
-Атмосфера и затемнение планет не рисуются поверх орбит.
-Добавлена возможность отключать отображение названий планет (F7)
-Добавлена возможность отключать глобальное освещение (F10)
-Исправлен баг с затухающей атмосферой, теперь она видна со всех сторон.
-Убрана вся лишняя отладочная информация.
-Вшит удобный лаунчер со всеми основными настройками, теперь нет необходимости редактировать конфигурационный файл вручную.
Реквестирую 3 доработки:
1) автоапдейт в лаунчере :)
2) орбита у тебя явно рисуется до планеты и планета поверх. А орбита неплохо бы чтобы именно втыкалась в планету и выходила из планеты.
3) Солнцу заслуженную корону и протурберанцы.
Орбита как раз раньше втыкалась в планету, это вызывало неприятные эффекты, убрал их на второй план, с блендом в движке явно какой-то баг
На шейдеры меня не хватило. Подготовил один с бампом, спекуляром и атмосферой, но не получается никак нормально посчитать освещение, при разных вариантах наблюдаются артефакты в полярностях планет (где много полигонов сходятся в одну точку) как вариант заменить планеты геосферой, но сейчас все процедурно и лоды генерируются, как не хочется париться..
Ну и автоапдейт как следствие не нужен, уже не хочу возвращаться к этому проекту, если в дальнейшем скучно станет.. то может быть
Давненько писал шейдер для солнца, но он утерялся в куче всякого незаконченного хлама