Inglês

Using ray marching for the rings produces a very heavy load for the GPU (and doesn't load the CPU at all), so we introduced various settings to trade quality for performance. In reality, rings are a giant flat cluster of small solid bodies rotating around a planet in its equatorial plane. By "flat" I mean really flat - Saturn's rings have a diameter of 280,000 km (174,000 miles) and a thickness of just 10 to 30 meters (30 to 100 feet)! Since SpaceEngine is a realistic space simulator, we had to reproduce this graphically. This immediately lead to many problems, the most serious of which is precision. For example, the rings of Saturn with their huge size have a typical particle size of about 10 cm, i.e. about 3·10⁻¹⁰ of the rings size. This is below the precision limit of 32-bit floating point numbers FP32 (IEEE 754 float) that graphics cards operate on. In practice this leads to a noticeable jitter and splitting of the rock image. This is because in ray marching you don't place a rock model at certain coordinates, you "place" every pixel of its image with limited precision. So if you have a 1080p display and want to see artifact-free rocks, you must place every pixel of the rock with enough precision, which is at least 10,000 times better than FP32 can afford. There are only two solutions for this problem. The first one is making rocks 1,000-10,000 times larger. But this is not a choice for SE as a scientifically accurate sim. Saturn's rings doe not have 100 meter size rocks (well, it has some, but they are rare; most rocks are smaller than 10 meters). Another solution is updating some parts of the shader code to 64-bit floating point numbers (IEEE 754 double). And it works, the precision is now enough for rocks as small as 10 cm. But FP64 is extremely slow on Nvidia and AMD GPU, thanks to market segmentation: full performance with FP64 is enabled only on "professional" cards like Quadro. So for consumer hardware, we implemented FP64 emulation using two FP32 numbers. Performance is still not great, but it's much better than using hardware FP64. To solve this problem with performance, we are forced to reduce image resolution (the "Rings resolution" slider in the graphics settings menu). This is a common approach in many games. SpaceEngine supports rings rendering at a certain percentage of a screen resolution (from 10 to 100%) and various methods to up-scale it back. On a 4k display, even 50% looks "okay", but at smaller display resolutions the quality must be higher. But the performance problem is still not solved: even on an Nvidia RTX 2080, 4k display at 50% scale engine gives only 30 fps. Our goal is to have 60 fps on any hardware, optimistically :) So another hack is used: temporal rendering (the "Fast temporal rendering" checkbox in the graphics settings). During each frame the engine updates only one pixel in a 2x2 block, alternating which pixel to update every frame. In a static scene this works amazingly well, giving a 4x speedup in rendering speed, which enables increasing the quality or resolution while keeping 60 fps. But nobody needs a static picture at 60 fps:) When moving, this temporal rendering leads to "ghosting" - trails or motion-blur-like artifacts. Some games reduce this effect using various techniques, like re-projection, but in SE those are not implemented yet. Speaking for my own taste, a small amount of ghosting is not a problem, if you move slowly relative to the rocks and have a solid 60 fps (which is the point of temporal rendering). Moving at high speeds will break immersion anyway, because nearby rocks will appear and disappear randomly. At high speeds rocks look "transparent" with temporal rendering. Unfortunately, in VR temporal rendering can't be used, because it breaks immersion completely. So in VR we are forced to use only resolution scaling, with a more severe resolution drop than when using temporal rendering.

Português

Usar o ray marching para os anéis produz uma carga muito pesada para a GPU (e não carrega a CPU de forma alguma), então introduzimos várias configurações para trocar qualidade por desempenho. Na realidade, os anéis são um aglomerado plano gigante de pequenos corpos sólidos girando em torno de um planeta em seu plano equatorial. Por "plano" quero dizer realmente plano - os anéis de Saturno têm um diâmetro de 280.000 km (174.000 milhas) e uma espessura de apenas 10 a 30 metros (30 a 100 pés)! Como o SpaceEngine é um simulador espacial realista, tivemos que reproduzi-lo graficamente. Isso imediatamente leva a muitos problemas, o mais sério dos quais é a precisão. Por exemplo, os anéis de Saturno com seu tamanho enorme têm um tamanho de partícula típico de cerca de 10 cm, ou seja, cerca de 3 · 10⁻¹⁰ do tamanho dos anéis. Isso está abaixo do limite de precisão de números de ponto flutuante de 32 bits FP32 (flutuante IEEE 754) em que as placas gráficas operam. Na prática, isso leva a um tremor e divisão perceptíveis da imagem da rocha. Isso ocorre porque na marcha de raios você não posiciona um modelo de rocha em certas coordenadas, você "posiciona" cada pixel de sua imagem com precisão limitada. Portanto, se você tiver uma tela 1080p e quiser ver rochas sem artefatos, deve colocar cada pixel da rocha com precisão suficiente, que é pelo menos 10.000 vezes melhor do que o FP32 pode pagar. Existem apenas duas soluções para este problema. O primeiro é fazer rochas de 1.000 a 10.000 vezes maiores.Mas esta não é uma escolha do SE como um sim cientificamente preciso. Os anéis de Saturno não têm rochas de 100 metros (bem, tem algumas, mas são raras; a maioria das rochas tem menos de 10 metros). Outra solução é atualizar algumas partes do código de sombreador para números de ponto flutuante de 64 bits (IEEE 754 duplo). E funciona, a precisão agora é suficiente para rochas de até 10 cm. Mas FP64 é extremamente lento em GPU Nvidia e AMD, graças à segmentação de mercado: o desempenho total com FP64 é habilitado apenas em placas "profissionais" como Quadro. Portanto, para o hardware do consumidor, implementamos a emulação FP64 usando dois números FP32. O desempenho ainda não é ótimo, mas é muito melhor do que usar hardware FP64. Para resolver este problema de desempenho, somos forçados a reduzir a resolução da imagem (o controle deslizante "Resolução dos anéis" no menu de configurações gráficas). Esta é uma abordagem comum em muitos jogos. O SpaceEngine oferece suporte à renderização de anéis em uma determinada porcentagem de uma resolução de tela (de 10 a 100%) e vários métodos para redimensioná-la de volta. Em uma tela 4k, até 50% parece "bom", mas em resoluções de tela menores a qualidade deve ser maior. Mas o problema de desempenho ainda não foi resolvido: mesmo em uma Nvidia RTX 2080, a tela 4k em escala de 50% do motor fornece apenas 30 fps.Nosso objetivo é ter 60 fps em qualquer hardware, de forma otimista :) Então, outro hack é usado: a renderização temporal (a caixa de seleção "Renderização temporal rápida" nas configurações gráficas). Durante cada quadro, o mecanismo atualiza apenas um pixel em um bloco 2x2, alternando qual pixel atualizar a cada quadro. Em uma cena estática, isso funciona incrivelmente bem, dando um aumento de 4x na velocidade de renderização, o que permite aumentar a qualidade ou resolução mantendo 60 fps. Mas ninguém precisa de uma imagem estática a 60 fps :) Quando em movimento, essa renderização temporal leva a "fantasmas" - trilhas ou artefatos semelhantes a borrões de movimento. Alguns jogos reduzem esse efeito usando várias técnicas, como a re-projeção, mas no SE ainda não foram implementadas. Falando no meu próprio gosto, uma pequena quantidade de fantasmas não é um problema, se você se mover lentamente em relação às rochas e tiver 60 fps sólidos (que é o ponto de renderização temporal). Mover-se em altas velocidades interromperá a imersão de qualquer maneira, porque as rochas próximas aparecerão e desaparecerão aleatoriamente. Em altas velocidades, as rochas parecem "transparentes" com renderização temporal. Infelizmente, a renderização temporal em VR não pode ser usada, porque quebra completamente a imersão. Portanto, em VR, somos forçados a usar apenas a escala de resolução, com uma queda de resolução mais severa do que ao usar a renderização temporal.

Tradutoringles.com.br | Dicas sobre como usar a tradução de texto Inglês-Português?

Certifique-se de cumprir as regras de escrita e o idioma dos textos que você irá traduzir. Uma das coisas importantes que os usuários devem ter em mente ao usar o sistema de dicionário inglesportugues.pt é que as palavras e textos usados durante a tradução são armazenados no banco de dados e compartilhados com outros usuários no conteúdo do site. Por esta razão, pedimos que você preste atenção a este tópico no processo de tradução. Se você não quiser que suas traduções sejam publicadas no conteúdo do site, entre em contato com →"Contato" por e-mail. Assim que os textos relevantes forem removidos do conteúdo do site.


Política de Privacidade

Terceiros, incluindo o Google, usam cookies para veicular anúncios com base em visitas anteriores do usuário ao seu website ou a outros websites. Com o uso de cookies de publicidade, o Google e os parceiros dele podem veicular anúncios para os usuários com base nas visitas feitas aos seus sites e/ou a outros sites na Internet. Os usuários podem desativar a publicidade personalizada acessando as Configurações de anúncios. Como alternativa, você pode orientar os usuários a acessar o site www.aboutads.info para desativar o uso de cookies de publicidade personalizada de terceiros.