Вообще говоря, в жизни я интересуюсь астронавтикой и астродинамикой гораздо в большей степени чем разработкой игр. Иногда в душе возникает порыв «а не сделать ли мне мой ответ Kerbal Space Program»? Но памятуя о моём опыте после порыва «а почему бы нам не сделать 3D-шутер», я старательно задавливаю в себе это поползновение как неразумное.
Тем не менее, иногда поиграться с небесной механикой в Unity хочется. Но если астродинамика это в первую очередь про физику и вычисления, то Unity — это про визуал. Планеты, вокруг которых летать, должны выглядеть притягательно и привлекательно, в том
А как это сделать?
Ну вот так как-то:
Unity предоставляет замечательный функционал для создания своих собственных шейдеров, позволяющих дёшево с т.з. вычислительных ресурсов создавать шейдеры любых конструкций, в том числе и анимированные.
Довольно просто можно сделать генератор поверхностей планет, включающий в себя атмосферу, текстуру рельефа, текстуру отражения, текстуру облаков, облака сделать подвижными а рельеф генерируемым по seed-у в виде большого integer.
Результат будет выглядеть примерно так:
Если не поленюсь, напишу более подробный мануал по созданию таких анимированных шейдеров в отдельной статье.