O ator de Sequenciador do Dia de Lua/Sol fornecido no plugin Sequenciador do Dia é ideal para céus artísticos, mas não tem as posições exatas dos corpos celestes, necessárias para simulações ou projetos arquitetônicos mais precisos.
Esse plugin é uma implementação de um Sequenciador do Dia com considerações mais científicas. Familiarize-se com o Sequenciador do Dia antes de usar o plugin Celestial Vault.
O plugin Celestial Vault oferece as seguintes considerações adicionais para representações mais precisas do céu:
Um plano de fundo do Celestial Vault considerando a rotação da Terra.
Um campo estelar em que as posições e a magnitude das estrelas são baseadas em dados de catálogos oficiais ou de posições fictícias arbitrárias.
Planetas do sistema solar, colocados com precisão usando as equações VSOP87.
A Lua, com seu faseamento apropriado baseado nas efemérides. (O controle manual ainda é possível.)
Todas as unidades de iluminação são definidas de acordo com as unidades físicas da vida real, com uma grande diferença de luminância entre dia e noite.
O foco foi definido no sistema solar visto da Terra, usando a mesma abordagem geocêntrica de Platão. Uma abordagem heliocêntrica que permita viagens entre planetas ainda não foi considerada.
Como habilitar o Sequenciador do Dia do Celestial Vault em um projeto
Para começar a usar o ator de Sequenciador do Dia do Celestial Vault na sua cena, primeiro você deve habilitar o plugin Celestial Vault no seu projeto. Você pode encontrá-lo no navegador Plugins localizado no menu Editar.
Não é necessário adicionar o plugin Sequenciador do Dia, uma dependência automática é definida.
Este plugin não depende do plugin Georreferenciamento, mas ambos podem ser usados juntos. Defina a mesma posição de georreferenciamento nos atores GeoReferencing e CelestialVaultDaySequence.
Como trabalhar com o ator de Sequenciador do Dia do Celestial Vault
Embora o ator de Sequenciador do Dia do Celestial Vault se baseie no mesmo conceito de um ativo de coleta do Sequenciador do Dia, essa sequência tem opções limitadas para garantir que o comportamento do céu permanecerá consistente com a realidade.
Os diferentes objetos relacionados ao céu serão acionados por uma sequência procedural do Celestial Vault que fará a leitura das propriedades compartilhadas no ator de Sequenciador do Dia do Celestial Vault.
Portanto, certifique-se de que essa sequência do Cofre Celestial não estará atribuída a outro tipo de ator de Sequenciador do Dia.
Essa sequência procedural considera as seguintes considerações:
O Celestial Vault gira em torno do eixo de rotação da Terra em 24 horas.
As estrelas têm uma posição fixa em relação à abóboda.
Os planetas estão na posição à direita. (Devido à câmera lenta, presumimos que eles não estarão se movendo durante o Sequenciador do Dia.)
A Lua está seguindo seu movimento sideral. (Move-se cerca de 13 graus para o leste em relação às estrelas de fundo e tem o seu advento cerca de 50 minutos depois todos os dias.)
A fase da Lua é representada. (Para simplificar, supõe-se que seja constante durante um dia, o que não é o caso na realidade.)
O Sol está seguindo sua trajetória no céu.
Observações sobre as limitações atuais
Algumas equações celestes foram simplificadas para desempenho e, mesmo que a precisão seja bastante boa (frações de grau), o sistema não garante posições exatas ou ultraprecisas.
O efeito de precessão/nutação do eixo da Terra não é simulado
As coordenadas RA e DEC são as da época J2000, não as da data.
O sistema DaySequence faz o loop de um único dia.
Por causa do movimento sideral, a Lua saltará sobre sua posição anterior ao passar da meia-noite.
As equações do VSOP87 usam apenas um número limitado de coeficientes, exceto para a Terra e a Lua. As posições dos planetas são aproximadas.
Os casos de uso do Eclipse (Solar/Lunar) não foram considerados.
O componente SkyAtmosphere considera a Terra como um objeto esférico com um raio fixo. Ao trabalhar com dados geoespaciais precisos usando o elipsoide WGS84 como referência, não é possível realizar a correspondência de raios. A solução recomendada é definir o raio de SkyAtmosphere para ter a direita em torno da origem do mundo da UE e, quando a câmera estiver longe da origem, alterar dinamicamente esse raio.
Ainda não é possível ter um quadro ECEF (origem no centro da Terra) geocêntrico.
Essas limitações podem melhorar em futuras iterações do plugin.
Ator de Sequenciador do Dia do Celestial Vault
Como adicionar o ator ao mundo
O ator de Sequenciador do Dia do Celestial Vault é um ciclo diurno e noturno completo pré-configurado que você pode arrastar e soltar no nível. Não requer nenhuma configuração adicional para funcionar por completo.
Siga estas etapas para começar:
Crie um novo nível em branco ou abra um nível existente. Se o nível já tiver componentes de iluminação de ambiente — luzes direcionais, luz do céu, atmosfera de céu, nuvens volumétricas e volume de pós-processamento global —, estes deverão ser removidos.
Na barra de ferramentas principal do editor de níveis, clique em Criar e arraste um ator de Sequenciador do Dia para a cena do menu Tudo da categoria.
Esse sistema usa unidades com precisão física para as intensidades das luzes e luminâncias dos corpos. Há uma enorme intervalo dinâmico entre a noite e o dia (EV100 variando de -7 a 14).
Para acomodar isso, são necessários valores especiais das configurações de adaptação ocular HDR e exposição local. O ator já inclui um componente de volume de pós-processamento pré-configurado de extensão infinita.
Você pode usá-la para o seu projeto, mas, se quiser ter o seu próprio, desabilite essa opção. O ator ou os vários materiais permitem que você trabalhe com outras unidades falsas.
E, como a adaptação ocular levará um tempo para se ajustar, considere aumentar os valores de aceleração e desaceleração durante o trabalho.
Como trabalhar com as propriedades do ator
Depois que o ator de Sequenciador do Dia do Celestial Vault for adicionado ao nível, você poderá alterar qualquer valor de seus componentes. Como alguns deles serão orientados pela sequência procedural, é normal que a edição de alguns deles esteja bloqueada.
Da mesma forma, o ator de Sequenciador do Dia do Celestial Vault sempre precisa estar localizado na origem do mundo. Você não deve alterar a posição.
Todas as propriedades que você precisa controlar fazem parte do próprio ator:
Data e localização
| Propriedade | Descrição |
|---|---|
Usar data atual | Quando essa opção estiver marcada, o sistema será inicializado com o ano, mês e dia do seu computador. Mas o fuso horário e o horário de verão não serão considerados. |
Ano | Um ano para exibir o céu |
Mês | Um mês para exibir o céu |
Dia | Um dia para exibir o céu Observe que não é necessário ter um Tempo, pois é definido pela barra Tempo TOD. Deve ser a hora local no lugar. |
Fuso horário (GMT) | Insira manualmente seu fuso horário aqui, ele não é preenchido automaticamente a partir da posição. |
É horário de verão | Verifique manualmente se você está no horário de verão (verão). Não é calculado automaticamente a partir da data local. |
Latitude | A latitude na Terra do ponto correspondente à origem do mundo. |
Longitude | A longitude na Terra do ponto correspondente à origem do mundo. |
GMST no ToD 0 [somente leitura] | Fornece a Hora Sideral Média de Greenwich correspondente a t=0 (início do dia) para a data atual. |
Transformação do centro do planeta [somente leitura] | Para simplificar as animações, todos os componentes são filhos de um SceneComponent com uma transformação devidamente configurada, localizada no centro do planeta e orientada em direção ao seu eixo de rotação. A rotação desse componente simulará a rotação do planeta. |
Estrelas
| Propriedade | Descrição |
|---|---|
Catálogo de estrelas celestes | A tabela de dados de entrada a ser usada para estrelas reais com propriedades celestes. |
Catálogo de estrelas fictícias | A tabela de dados de entrada a ser usada para estrelas fictícias com propriedades básicas. |
Magnitude visível máxima | Todas as estrelas com magnitude maior que esse limite serão ignoradas no momento em que forem geradas. Baixas magnitudes significam estrelas brilhantes. A olho nu normalmente só é possível ver até a magnitude 6. Um limite maior gerará mais estrelas, mas elas poderão não ficar visíveis, a menos que você aumente artificialmente a visibilidade delas com as estrelas de material. |
Manter informações sobre estrelas | Quando marcada, uma tabela será gerada e mantida na memória para permitir a consulta dos dados das estrelas. Se estiver interessado apenas no elemento visual, mantenha-a desmarcada. |
No momento da geração, os dois catálogos são mesclados em um único componente ISM para renderização. No entanto, como as estrelas fictícias não têm os mesmos detalhes, cada uma tem um formato de tabela de dados diferente:
As tabelas de dados para estrelas celestes devem ser do tipo CelestialStarInputData
As tabelas de dados para estrelas fictícias devem ser do tipo StarInputData
Se usar o formato errado, aparecerá um aviso no log de mensagens, e as estrelas correspondentes não serão geradas.
Algumas tabelas de dados base são fornecidas na pasta Engine/Plugins/CelestialVault/Data.
Estrelas celestes
As estrelas celestes são estrelas provenientes de catálogos oficiais. Elas contêm muitas informações que podem ser consultadas posteriormente. O catálogo de estrelas celestes pode ser importado de arquivos CSV, desde que contenha os campos do tipo CelestialStarInputData:
ID: ID exclusivo [1 a n]
Name: nome da estrela - Pode ficar vazio
RA: Ascensão reta - Expressada em horas (1 hora = 15°)
DEC: Declinação - Expressada em graus
DistanceInPC: Distância - Expressada, em parsec
Magnitude: geralmente [-2 a 13]
ColorIndex: também conhecido como B-V, representa a cor da estrela [-0,33 a 2,0]
HipparcosID: ID da estrela no catálogo do Hipparcos - Pode ficar vazio
HenryDraperID: ID da estrela no catálogo do Henry Draper - Pode ficar vazio
YaleBrightStarID: ID da estrela no catálogo de estrelas brilhantes de Yale - Pode ficar vazio
Duas tabelas de dados são fornecidas com o plugin
DT_HYGCatalog_Full - O catálogo HYG completo da página Astronomia do Nexus. Contém registros de 120.000 estrelas.
DT_HYGCatalog_10K: mesmo catálogo de HYG, mas limitado às 10.000 estrelas mais brilhantes (até a magnitude 6). Suficiente para a maioria dos casos de uso.
Estrelas fictícias
Estrelas fictícias são feitas para serem mais simples e criadas pelo usuário. Eles usam o mesmo conceito de um catálogo, mas, como apenas o elemento visual é necessário, a tabela de dados precisa conter apenas um conjunto simplificado de campos do tipo StarInputData:
ID: ID exclusivo [1 a n]
Name: nome da estrela - Pode ficar vazio
RA: Ascensão reta - Expressada em horas (1 hora = 15°)
DEC: Declinação - Expressada em graus
Magnitude: geralmente [-2 a 13]
Color: string linear de cores RGB formatada como (R=0.924,G=0.114,B=1.)
Duas tabelas de dados são fornecidas com o plugin
DT_FictionalStars - Um exemplo simples para estrelas colocadas aleatoriamente
DT_FictionalEasterEgg - Um exemplo mais avançado de uma constelação com formato de ovo de Páscoa.
A criação do seu próprio catálogo de estrelas fictícias está fora do escopo deste documento, mas alguns software de visão computacional de código aberto podem extrair facilmente coordenadas de pixel de um conjunto de pontos e, com alguns truques de planilhas, os arquivos CSV podem ser criados, permitindo fazer experimentos sofisticados.
Importar seu próprio arquivo CSV
É possível importar catálogos da estrelas com arquivos CSV como estes:
Você também pode exportar uma das tabelas de dados fornecidas como CSV para ter um modelo inicial.
Arraste e solte o arquivo CSV no navegador de conteúdo.
Selecione o tipo de linha CelestialStarInputData/StarInputData apropriado correspondente ao conteúdo que está sendo importado.
Confira as várias opções de entrada se houver outros campos no conjunto de dados.
Nomeie o campo adequado que será usado como a chave primária. (ID aqui)
Planetas
| Propriedade | Descrição |
|---|---|
Catálogo de planetas | A tabela de dados de entrada contém as propriedades dos planetas. |
Escala do planeta | Um fator de escala artificial a ser aplicado aos planetas |
Manter informações sobre planetas | Quando marcada, uma tabela será gerada e mantida na memória para permitir a consulta dos dados dos planetas. Se estiver interessado apenas no elemento visual, mantenha-a desmarcada. |
No momento, o foco está nos planetas do sistema solar. As efemérides da VSOP87 simulam as trajetórias exatas. O sistema também permite planetas arbitrários usando trajetórias elípticas, mas ainda não foi implementado.
Uma tabela de dados para planetas precisa conter os seguintes campos:
ID: ID exclusivo [1 a n]
Name: o nome do planeta - Pode ficar vazio
OrbitType: a enum para órbitas de planetas solares. Elíptica ainda não foi usado.
Radius: raio do planeta (em km)
TextureColumnIndex: o índice da textura do planeta no atlas global de planetas.
Os planetas são renderizados usando impostores de plano, com um shader que os dimensiona para que sempre tenham um tamanho mínimo em pixels na tela. O efeito da propriedade Escala do Planeta só é visível se o tamanho real do planeta estiver acima desse tamanho de pixel, dependendo do raio, distância e CDV da câmera.
Lua
No momento, o sistema está limitado apenas à lua da Terra, então as opções são limitadas.
| Propriedade | Descrição |
|---|---|
Escala da Lua | Um fator de escala artificial a ser aplicado à Lua |
Controle manual | Por padrão, a posição e a fase da lua são calculadas com base nos valores de data e posição. Ao marcar esta caixa, você pode habilitar opções adicionais (veja a observação abaixo) |
Idade da Lua | Corresponde à idade lunar da Lua: 0 = Lua Nova, 0,25 = Quarto Crescente, 0,5 = Lua Cheia, 1,0 = Próxima Lua Nova. |
Deslocamento da Lua para ascensão reta do Sol | O deslocamento horizontal da posição da Lua em relação ao sol, em horas. (1 hora = 15°). Se o deslocamento for 3 horas, a Lua seguirá o Sol com um deslocamento de 45°, passando pelo horizonte 3 horas depois do sol. |
Deslocamento da Lua para a declinação do Sol | O deslocamento vertical da posição da lua em relação ao sol, em graus. |
Por padrão, a posição e a fase da Lua são computadas automaticamente, e nada precisa ser feito. No entanto, em alguns casos de uso de treinamento e simulação, é importante controlar o brilho à noite, pois a visibilidade em uma noite escura ou em uma noite clara é muito diferente.
Encontrar o dia exato em um calendário que colocaria a lua na fase e na posição corretas costuma ser complicado, por isso a opção Controle Manual ajuda a tratar desse caso de uso.
Ter um deslocamento em relação ao sol é a maneira mais fácil de fazer isso da perspectiva do usuário. É intuitivo: qualquer que seja o hemisfério, a latitude, a duração do dia atual…
Observação: pode haver efeitos visuais descontrolados dos quais você deve estar ciente: digamos que você definiu um deslocamento de 3 h. A Lua estará no "lado esquerdo" do Sol. Nesse caso, a luz do Sol deve produzir uma meia-lua crescente. Portanto, evite definir um valor para a idade da Lua acima de 0,75. Em casos extremos, a Lua cheia pode ficar próxima ao Sol, o que nunca acontece. Cuide desse detalhe se quiser um mínimo de realismo.
Devido ao requisito do Controle Manual, a Lua é renderizada usando um plano com um material personalizado em vez de uma esfera 3D.
"Advanced"
O céu é renderizado como uma esfera, com um conjunto de diferentes camadas de raios menores para os diferentes corpos celestes, com intervalo decrescente: o fundo da abóboda, as estrelas, os planetas e a lua.
Eles precisam estar longe do planeta para evitar efeitos de paralaxe, mas longe o suficiente um do outro para evitar conflitos em profundidade. As propriedades avançadas permitem ajustar os vários intervalos de objetos.
Ele também permite definir os valores base para as luzes direcionais do Sol e da Lua.
| Propriedade | Descrição |
|---|---|
Distância da Abóboda Celeste | O raio (km) da esfera que será mapeado com a textura de fundo (Via Láctea, constelações ou linhas de grade celestes) |
Porcentagem da abóboda celeste | Porcentagem do raio da esfera da abóboda celeste em que as estrelas serão geradas. |
Porcentagem da abóboda dos planetas | Porcentagem do raio da abóboda celeste onde os planetas serão gerados. |
Porcentagem da abóboda da Lua | Porcentagem do raio da esfera da abóboda celeste em que a Lua será gerada. |
Intensidade da luz solar | Intensidade da luz solar fisicamente correta (padrão: 120000 Lux) |
Intensidade do luar | Intensidade da luz da lua fisicamente correta (padrão: 0,1 Lux) |
Observação sobre luzes e adaptação ocular:
Este sistema foi projetado tendo em mente a precisão física, e os valores padrão foram definidos automaticamente.
As luzes do Sol e da Lua foram definidas como luzes atmosféricas, com índice 0 para o sol e índice 1 para a Lua.
A intensidade solar de 120.000 Lux indica uma luminância de superfície branca no solo de cerca de 8.000-12.000 cd/m² ao meio-dia
A intensidade base da Lua foi definida como 0,1 Lux, que é a média de uma lua cheia. A literatura fornece intervalos entre 0,05 e 0,1 Lux e até 0,32 Lux para uma Superlua, então fique à vontade para ajustar! Isso sugere uma luminância de superfície branca no solo em torno de 0,01-0,02 cd/m².
Reduzimos essa intensidade-base dependendo da fase, para que ela fique muito baixa quando não há luz artificial por perto.
A superfície da lua costuma ser muito brilhante! (~1000-2500 cd/m²), olhar para a Lua durante a lua cheia será deslumbrante.
Por causa desse enorme intervalo, os valores padrão da adaptação ocular também tiveram que ser ajustados.
O MinEV100 foi definido como -0,5, para que tenhamos uma noite limpa de lua cheia, mas um ambiente escuro de lua nova.
A adaptação ocular baseada em histograma não é suficiente para lidar com esse intervalo de brilho, especialmente se o tamanho da lua na tela for pequeno. Então configuramos uma curva de contraste de destaque de exposição local para acomodar o brilho da Lua.
Todas essas configurações específicas fazem parte de um volume de pós-processamento global associado ao ator.
O sistema também lida com a cobertura de nuvens objetos com iluminação, sombreamento e névoa. Tanto a luz do Sol quanto a luz da Lua estão definidas como "Projetar sombras" e "Sombras de nuvem", o que afeta o desempenho. Fique à vontade para desabilitar se não precisar.
Ajustar a aparência do céu
O sistema conta com instâncias de material para todos os componentes, que você pode substituir pelos seus próprios. Este parágrafo descreverá as propriedades das instâncias de material.
Observe que alterar os valores de brilho/intensidade dos materiais provavelmente alterará as configurações "Adaptação ocular" ou "Exposição".
Se planejar alterar esses materiais, use cópias no conteúdo do projeto em vez de mudar os originais.
Celestial Vault
O material MI_CelestialVault é um material de múltiplas texturas que também contém a auréola solar.
| Propriedade | Descrição |
|---|---|
Intensidade global | Fator de brilho de toda a abóboda celestial (fundo + constelações + grade) |
Intensidade do fundo | Fator de brilho da textura única do fundo (Via Láctea) |
Textura de fundo | Textura de substituição para o plano de fundo da abóboda celeste. Precisa estar em coordenadas celestiais. |
Mostrar constelações | Habilita uma camada de textura adicional com um mapa de constelação (branco) |
Cor de constelações | Cor do matiz da constelação |
Intensidade de constelações | Fator de brilho da textura única de constelações |
Textura de constelações | Textura de substituição para as constelações. Precisa estar em coordenadas celestiais. |
Mostrar grade celeste | Habilita uma camada de textura adicional com um mapa de grade celeste (branco) |
Cor da grade | Cor do matiz da grade celeste |
Intensidade da grade | Fator de brilho da única textura da abóboda celeste |
Textura de grade | Textura de substituição para a grade celeste. Precisa estar em coordenadas celestiais. |
Texturas médias são fornecidas com o sistema, mas você pode encontrar resoluções maiores aqui: https://svs.gsfc.nasa.gov/4851/
Estrelas
O material MI_Stars é usado para texturizar os planos individuais das estrelas, renderizando-os como um componente de malha estática instanciada. Ela contém opções para a aparência e o tamanho das estrelas.
Aparência
| Propriedade | Descrição |
|---|---|
Dessaturação | As estrelas são renderizadas usando uma cor por instância, definida manualmente para as estrelas fictícias e calculada a partir do valor B-V para as estrelas celestes. Essa configuração permite reduzir a saturação do valor da cor (0 = intocado, 1 = somente escala de cinza) |
Deslocamento de magnitude | O brilho da estrela é calculado a partir de sua magnitude. Esse parâmetro permite aumentar artificialmente o brilho da estrela alterando sua magnitude teorética. Valores negativos diminuem a magnitude e, portanto, aumentam o brilho. O brilho é um fator exponencial da magnitude. |
Máscara | Máscara de textura usada para as estrelas. Confira mais máscaras em T_StarMask_* |
Enfraquecimento da máscara | Valor exponencial aplicado à cor da máscara e alfa para aumentar/diminuir o contraste |
Tamanho-base
O brilho das estrelas não é suficiente para vê-las. elas precisam ter um tamanho mínimo na tela, possivelmente acima de 1 pixel, para evitar artefatos de aumento de escala.
Considerando que o brilho é um fator exponencial da magnitude, o tamanho da estrela na tela pode ser uma função linear, definida pelos pares magnitude/tamanho. (Fixação acima dos limites do intervalo)
| Propriedade | Descrição |
|---|---|
Magnitude da estrela mais brilhante | Magnitude de referência da estrela mais brilhante. Estrelas abaixo dessa magnitude ainda terão o tamanho máximo. |
Tamanho da estrela mais brilhante (pixels) | Tamanho do pixel de referência para estrelas com magnitude mais brilhante. Estrelas de menor magnitude terão um tamanho interpolado de acordo com as configurações de estrela mais fracas. |