Como posso modelar uma estrela?

22

Estou tentando modelar uma estrela no Unity, e isso meio que funciona, mas não é o ideal. Atualmente, estou usando uma esfera grande com um material auto-iluminado contendo uma textura de estrela aplicada à sua superfície e um holofote para criar o efeito da luz das estrelas, assim:

insira a descrição da imagem aqui

Enquanto funciona, não parece o melhor. Estou procurando um efeito mais parecido com o modo como o Kerbal Space Program modela uma estrela:

insira a descrição da imagem aqui

Como posso conseguir esse efeito?

Ethan Bierlein
fonte
1
Eu não sei sobre o Unity, mas parece que você precisa desenhar em um modo de mistura "aditivo".
precisa
1
Você sempre pode ir nessa direção: shadertoy.com/view/XdBSDh #
Alan Wolfe
4
Você precisa ser muito mais específico e mostrar que fez sua pesquisa. Existe uma infinidade de informações por aí para renderização em estrela. Normalmente, você usará um outdoor em frente à câmera em 2d para renderizar a coroa sobre sua estrela genérica. Ninguém pode ensinar tudo o que você faz para formar uma estrela realista em uma resposta SE. Aqui está um bom tutorial do jogo Seed of Andromeda. seedofandromeda.com/blogs/51-procedural-star-rendering . Outra, tutorial mais áspera no reddit, mas boa informação nada-a-menos seedofandromeda.com/blogs/51-procedural-star-rendering
Lógica Fuzzy
No Unity, altere o Shader of the Material para Additive (acho que está no submenu Particle, porque o modo de mistura Additive é principalmente útil em partículas).
Jhocking
1
@ Shane Dois anos depois, mas antes tarde do que nunca, eu acho. Cheers .. reddit.com/r/gamedev/comments/33xuyj/procedural_star_rendering
Fuzzy Logic

Respostas:

25
  • Use uma textura animada. * Existem algumas boas na loja por <$ 10.
  • Adicione um Halo. Você pode usar o sistema de partículas ou apenas uma textura de brilho transparente em um outdoor em frente ao sol com um script para reposicionar a textura quando a câmera se mover. Isso oculta as arestas com alias do modelo de esfera, permitindo que você use um modelo de baixo poli e fica bonito.
  • Gire o sol lentamente.
  • Use sistema de partículas para erupções.
  • Use um sombreador personalizado para fazer com que as bordas correspondam bem ao halo (multiplique o normal com o vetor da câmera para encontrar as bordas).

O gif animado mostra uma textura estática primeiro, seguida de várias adições, em ordem:

  1. Textura Animada
  2. Ilumine as bordas da esfera com base em normais
  3. Adicionar outdoor transparente voltado para a câmera com halo branco / amarelo
  4. Partículas, movendo-se do centro para o exterior e desbotando
  5. Adicione 2 outdoors "ray" transparentes, de frente para a câmera e girando ao longo do eixo da câmera em direções opostas.

Construindo um Sol

Com a textura animada, use mipmaps, ou ela ficará horrível a algumas distâncias. As taxas de quadros lentas na textura (10 fps) são boas quando se olha para um sol de longe, mas quando você se aproxima, você também pode usar uma taxa de quadros mais alta. Se você não tiver uma textura de alta taxa de quadros ou não puder desperdiçar a memória de vídeo, poderá usar um sombreador personalizado para interpolar todos os outros pixels com base na imagem anterior e na próxima.

Alterando o uso de Matiz / Saturação / Valor dentro do sombreador, você pode obter resultados como estes, sem precisar modificar a textura:

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui [insira a descrição da imagem aqui insira a descrição da imagem aqui

Comecei com um modelo barato da loja para não precisar fazer a textura animada. Por outro lado, significa que não posso compartilhar a pré-fabricada atual, porque a textura é comprada.


* Como alternativa, você pode examinar o mapeamento de ruído 2D em uma esfera e usar o ruído 3D para a dimensão do tempo, ou usar o ruído 4D se não quiser fazer o mapeamento e poupar o desempenho.

Peter - Unban Robert Harvey
fonte
3
Se você deseja que seja realista: as bordas de uma estrela na verdade não são mais brilhantes, mas menos brilhantes que o centro do disco.
planetmaker
1
@ planetmaker Absolutamente. Mas um efeito de aparência legal é mais fácil de obter com um halo branco ou branco-ish e detalhes no centro. Isso pode ser feito de outra maneira, mas eu acho que é muito mais complicado bit De qualquer forma, olhando para um sol realista permanentemente nos cega, então nós não queremos um sol realista :)
Peter - Unban Robert Harvey
10

Além do sistema de partículas e efeitos de halo que Vadim mencionou, você pode criar seu próprio efeito de sombreador. Há alguma introdução aos shaders para Unity e as possibilidades são infinitas .

Madmenyo
fonte
Não sei se você encontrou ou criou esse shader, mas é absolutamente maravilhoso.
Draco18s
Não, eu não criei o shader, infelizmente meu conhecimento sobre shaders é bastante básico. Mas eu concordo, é lindo;).
Madmenyo
2

Tente usar um sistema de partículas e um efeito de halo. Você também pode adicionar uma luz à estrela e ter um efeito de flor na sua câmera.

Vadim Tatarnikov
fonte