Jak mogę modelować gwiazdę?

22

Próbuję wymodelować gwiazdę w Unity i to działa, ale to nie jest idealne. Obecnie używam dużej kuli z samoświecącym się materiałem zawierającym teksturę gwiazdy nałożoną na jej powierzchnię i reflektor, aby stworzyć efekt światła gwiazd, taki jak ten:

wprowadź opis zdjęcia tutaj

Chociaż działa, nie wygląda najlepiej. Szukam efektu bardziej podobnego do tego, w jaki sposób program kosmiczny Kerbal modeluje gwiazdę:

wprowadź opis zdjęcia tutaj

Jak mogę osiągnąć ten efekt?

Ethan Bierlein
źródło
1
Nie wiem o Unity, ale wygląda na to, że musisz rysować w trybie „addytywnego” mieszania.
Thane Brimhall
1
Zawsze możesz pójść w tym kierunku: shadertoy.com/view/XdBSDh
Alan Wolfe
4
Musisz być bardziej szczegółowy i wykazać, że przeprowadziłeś swoje badania. Istnieje mnóstwo informacji na temat renderowania gwiazd. Zazwyczaj używasz billboardu 2d skierowanego w stronę kamery, aby wyrenderować koronę nad gwiazdą ogólną. Nikt nie nauczy Cię wszystkiego, co jest potrzebne, aby stworzyć realistycznie wyglądającą gwiazdę na podstawie odpowiedzi SE. Oto dobry samouczek z gry Seed of Andromeda. seedofandromeda.com/blogs/51-procedural-star-rendering . Kolejny, trudniejszy samouczek na temat reddit, ale dobre informacje, mimo wszystko seedofandromeda.com/blogs/51-procedural-star-rendering
Fuzzy Logic
W Unity zmień Shader materiału na Additive (myślę, że podmenu Particle, ponieważ tryb mieszania dodatku jest najbardziej użyteczny w przypadku cząstek).
jhocking
1
@Shane Dwa lata później, ale lepiej późno niż wcale. Pozdrawiam .. reddit.com/r/gamedev/comments/33xuyj/procedural_star_rendering
Fuzzy Logic

Odpowiedzi:

25
  • Użyj animowanej tekstury. * W sklepie jest kilka dobrych za <10 USD.
  • Dodaj aureolę. Możesz użyć układu cząstek lub po prostu przezroczystej tekstury blasku na billboardzie przed słońcem ze skryptem do zmiany położenia tekstury podczas ruchu kamery. Ukrywa to wygładzone krawędzie modelu kuli, umożliwiając użycie niższego modelu poli i wygląda ładnie.
  • Powoli obracaj słońce.
  • Do erupcji używaj układu cząstek.
  • Użyj niestandardowego modułu cieniującego, aby dobrze dopasować krawędzie do halo (pomnóż normalny przez wektor kamery, aby znaleźć krawędzie).

Animowany gif pokazuje najpierw statyczną teksturę, a następnie szereg dodatków, w kolejności:

  1. Animowana tekstura
  2. Rozjaśnij krawędzie kuli w oparciu o normalne
  3. Dodaj przezroczysty billboard skierowany w stronę kamery z biało-żółtym aureolą
  4. Cząsteczki przemieszczają się od środka na zewnątrz, a następnie blakną
  5. Dodaj 2 przezroczyste billboardy „ray” skierowane w stronę kamery i obracające się wzdłuż osi kamery w przeciwnych kierunkach.

Budowanie słońca

W przypadku animowanej tekstury użyj mipmap, w przeciwnym razie będzie wyglądać okropnie na niektórych odległościach. Powolne wyświetlanie klatek na sekundę (10 kl./s) jest dobre, gdy patrzysz na słońce z daleka, ale gdy się do niego zbliżysz, możesz również chcieć użyć wyższej prędkości klatek. Jeśli nie masz wysokiej tekstury klatek lub nie możesz zmarnować pamięci wideo, możesz użyć niestandardowego modułu cieniującego do interpolacji każdego innego piksela w oparciu o poprzedni i następny obraz.

Zmieniając użycie Barwy / Nasycenia / Wartości wewnątrz modułu cieniującego, możesz uzyskać takie wyniki, bez konieczności modyfikowania tekstury:

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj [wprowadź opis obrazu tutaj wprowadź opis zdjęcia tutaj

Zacząłem od taniego modelu ze sklepu, więc nie musiałem tworzyć animowanej tekstury. Z drugiej strony oznacza to, że nie mogę udostępnić bieżącego prefabrykatu, ponieważ tekstura została zakupiona.


* Alternatywnie możesz zajrzeć do mapowania szumu 2D na kuli i użyć szumu 3D jako wymiaru czasu lub użyć szumu 4D, jeśli nie chcesz wykonywać mapowania i możesz oszczędzić wydajność.

Peter - Unban Robert Harvey
źródło
3
Jeśli chcesz, aby była realistyczna: krawędzie gwiazdy nie są tak naprawdę jaśniejsze, ale mniej jasne niż środek dysku.
planetmaker,
1
@planetmaker Absolutnie. Ale fajnie wyglądający efekt jest łatwiejszy do osiągnięcia dzięki białej lub białej aureoli i detalom pośrodku. Można to zrobić w drugą stronę, ale myślę, że jest to trochę trudniejsze W każdym razie patrzenie w realistyczne słońce permanentnie nas oślepia, więc nie chcemy realistycznego słońca :)
Peter - Unban Robert Harvey
10

Oprócz systemu szczegółowego i efektów halo Vadim wspomniał, że możesz stworzyć swój własny efekt cieniowania. Jest trochę wstępu do shaderów do Unity, a możliwości są nieograniczone .

Madmenyo
źródło
Nie wiem, czy znalazłeś lub stworzyłeś ten moduł cieniujący, ale jest absolutnie wspaniały.
Draco18s,
Nie, nie utworzyłem modułu cieniującego, niestety moja wiedza o modułach cieniujących jest dość podstawowa. Ale zgadzam się, jest cudowny;).
Madmenyo
2

Spróbuj użyć układu cząstek i efektu halo. Możesz także dodać światło do gwiazdy i uzyskać efekt rozkwitu w aparacie.

Wadim Tatarnikow
źródło