Как я могу моделировать звезду?

22

Я пытаюсь смоделировать звезду в Unity, и это вроде как работает, но это не идеально. В настоящее время я использую большую сферу с самосветящимся материалом, на поверхность которого нанесена текстура звезды, и прожектор для создания эффекта звездного света, например:

введите описание изображения здесь

Хотя это работает, это не выглядит лучшим. Я ищу эффект, более похожий на то, как космическая программа Кербала моделирует звезду:

введите описание изображения здесь

Как я могу добиться этого эффекта?

Этан Бирляйн
источник
1
Я не знаю о Unity, но похоже, что вам нужно рисовать в «аддитивном» режиме смешивания.
Тейн Бримхолл
1
Вы всегда можете пойти в этом направлении: shadertoy.com/view/XdBSDh
Алан Вулф
4
Вы должны быть гораздо более конкретным и показать, что вы сделали свое исследование. Существует множество информации для визуализации звезд. Как правило, вы будете использовать 2-мерный рекламный щит, обращенный к камере, чтобы визуализировать корону поверх вашей общей звезды. Никто не может научить вас всему, что нужно, чтобы сделать реалистично выглядящую звезду на SE. Вот хороший учебник из игры «Семя Андромеды». seedofandromeda.com/blogs/51-procedural-star-rendering . Еще один, более грубый учебник по Reddit, но хорошая информация тем не менее seedofandromeda.com/blogs/51-procedural-star-rendering
Fuzzy Logic
В Unity измените Shader of Material на Additive (я думаю, это находится в подменю Particle, потому что режим Additive blend наиболее полезен для частиц).
Джокинг
1
@ Шейн Два года спустя, но лучше поздно, чем никогда, я думаю. Приветствия .. reddit.com/r/gamedev/comments/33xuyj/procedural_star_rendering
Нечеткая логика

Ответы:

25
  • Используйте анимированные текстуры. * В магазине есть несколько хороших за $ 10.
  • Добавьте Halo. Вы можете использовать систему частиц или просто прозрачную текстуру свечения на рекламном щите перед солнцем со сценарием для изменения положения текстуры при перемещении камеры. Это скрывает сглаженные края модели сферы, позволяя вам использовать более низкую модель поли, и выглядит красиво.
  • Вращайте солнце, медленно.
  • Используйте систему частиц для извержений.
  • Используйте собственный шейдер, чтобы края хорошо совпали с ореолом (умножьте нормаль на вектор камеры, чтобы найти края).

На анимированном gif сначала отображается статическая текстура, а затем ряд дополнений в следующем порядке:

  1. Анимированная текстура
  2. Осветлить края сферы на основе нормалей
  3. Добавьте ориентированный на камеру прозрачный рекламный щит с белым / желтым ореолом
  4. Частицы, движущиеся из центра наружу, затем исчезающие
  5. Добавьте 2 прозрачных «лучевых» рекламных щита, обращенных к камере и вращающихся вдоль оси камеры в противоположных направлениях.

Строить Солнце

С анимированной текстурой обязательно используйте mipmaps, иначе на некоторых расстояниях она будет выглядеть ужасно. Медленные частоты кадров в текстуре (10 кадров в секунду) хороши при взгляде на солнце издалека, но когда вы приближаетесь, вы также можете использовать более высокую частоту кадров. Если у вас нет текстуры с высокой частотой кадров или вы не можете тратить видеопамять на нее, вы можете использовать пользовательский шейдер для интерполяции всех остальных пикселей на основе предыдущего и следующего изображения.

Изменяя использование Hue / Saturation / Value внутри шейдера, вы можете получить такие результаты без необходимости изменять текстуру:

введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь введите описание изображения здесь [введите описание изображения здесь введите описание изображения здесь

Я начал с дешевой модели из магазина, поэтому мне не нужно было делать анимированные текстуры. С другой стороны, это означает, что я не могу поделиться текущим префабом, потому что текстура куплена.


* В качестве альтернативы, вы можете посмотреть на отображение 2D-шума на сфере и использовать 3D-шум для измерения времени, или использовать 4D-шум, если вы не хотите делать отображение и можете сэкономить производительность.

Питер - Унбан Роберт Харви
источник
3
Если вы стремитесь к тому, чтобы это было реалистично: края звезды на самом деле не более яркие, но менее яркие, чем центр диска.
изготовитель планет
1
@planetmaker Абсолютно. Но эффект с эффектом внешнего вида легче достичь с белым или белым ореолом и деталями в центре. Это можно сделать по-другому, но я думаю, что это все же немного сложнее. В любом случае, смотреть на реалистичное солнце постоянно ослепляет нас, поэтому мы не хотим реалистичного солнца :)
Питер - Unban Роберт Харви
10

Вдобавок к системе частиц и эффектам гало Вадим упомянул, что вы можете создать свой собственный эффект шейдера. Существует некоторое введение в шейдеры для Unity, и возможности безграничны .

Madmenyo
источник
Я не знаю, нашли ли вы этот шейдер или создали его, но он просто великолепен.
Draco18s
Нет, я не создал шейдер, к сожалению, мои знания о шейдерах довольно просты. Но я согласен, это великолепно;).
Madmenyo
2

Попробуйте использовать систему частиц и эффект ореола. Вы также можете добавить свет к звезде и создать эффект цветения на вашей камере.

Вадим Татарников
источник