3 pontos por GN⁺ 2024-03-05 | 1 comentários | Compartilhar no WhatsApp
  • Este experimento, que leva o motion blur ao seu “limite lógico”, redefine o desfoque reduzindo a diferença entre o motion smear da visão humana e a atualização da tela, e aplica isso a animações procedurais em tempo real
  • Em cenas naturais, os cones da retina integram estímulos luminosos ao longo do tempo, gerando desfoque no nível dos receptores; em telas com baixa taxa de quadros, porém, vídeos sem blur parecem quadros sobrepostos em vez de um smear natural
  • O motion blur tradicional aproxima a imagem de uma cena natural ao tirar a média do intervalo de tempo de um quadro, mas em objetos rápidos ainda podem restar descontinuidades; por isso, uma função de obturador (shutter function) que reduz o peso do início e do fim gera resultados mais naturais
  • A implementação em shader em tempo real evita multissampling e ray tracing analítico, representa objetos em movimento como uma função de densidade em coordenadas que incluem o tempo e renderiza a integral temporal via volume ray casting
  • O “Torusphere Accelerator” final aplica blur, na prática, até velocidade infinita a uma esfera em órbita e a um toro em rotação; como não existe “normal com motion blur”, as normais de superfície são tratadas por interpolação separada

Diferença entre movimento em cenas naturais e reprodução em tela

  • O motion blur surgiu originalmente como um artefato de filme causado pelo movimento do objeto enquanto o obturador da câmera estava aberto, mas tornou-se útil porque faz o vídeo se parecer perceptualmente mais com cenas naturais
  • Em 3D e animação, “simular uma câmera” e “parecer natural” nem sempre são o mesmo objetivo
  • Para entender um motion blur natural, é preciso responder a quatro perguntas
    • Como percebemos o movimento em cenas naturais
    • Como percebemos cenas reproduzidas em uma tela
    • Qual é a diferença perceptiva entre esses dois casos
    • Como o motion blur em vídeo pode reduzir essa diferença

Integração temporal dos cones e motion smear

  • Em ambientes iluminados, o processamento inicial da visão humana é realizado pelos cones, e a fototransdução (phototransduction) não ocorre instantaneamente
  • O atraso dos estímulos luminosos pode ser modelado como uma suavização do estímulo na direção temporal
  • O exemplo de cones de peixinho-dourado de Howlett et al. (2017) mostra o número de fótons que entram nos fotorreceptores, uma função de ponderação e o “effective stimulus” resultante
  • Ao combinar o formato dessa função de ponderação com tempos de resposta conhecidos dos cones humanos, é possível simular a imagem percebida a partir da cena de entrada
  • O resultado é que, mesmo em cenas naturais, já existe motion smear, um desfoque natural no nível dos fotorreceptores
  • A simulação de exemplo assume que o observador está olhando para um ponto fixo, sem acompanhar o objeto com os olhos

O que o motion blur tradicional faz em vídeos na tela

  • Ao assistir a uma tela com um número limitado de quadros por segundo, a imagem percebida de um vídeo sem motion blur não parece o motion smear esperado, mas sim quadros sobrepostos
  • Em um vídeo com motion blur, cada quadro não mostra um único instante; em vez disso, ele calcula a média de todos os instantes dentro do intervalo de tempo coberto pelo quadro
  • Isso é semelhante a uma imagem feita com uma câmera cujo obturador fica aberto durante o tempo de um quadro
  • A imagem percebida dessa abordagem fica muito mais parecida com a de uma cena natural

Redução de descontinuidades com uma função de obturador

  • Mesmo no motion blur tradicional, algumas velocidades de objetos ainda podem deixar artefatos de descontinuidade no motion smear
  • A função de obturador não tira uma média uniforme de todo o intervalo do quadro; ela atribui pesos menores aos instantes inicial e final do quadro e pesos maiores aos instantes centrais
  • O nome vem da analogia com a eficiência do obturador em câmeras de diafragma, mas aqui o objetivo não é simular uma câmera, e sim escolher uma função que reduza a diferença perceptiva entre a tela e uma cena natural
  • Esse problema é muito parecido com o de criar uma função de janela (window function) em processamento de sinais, e funções de janela populares produzem bons resultados
  • Em testes subjetivos, a função de obturador se torna útil quando a distância percorrida pelo objeto durante um quadro fica na mesma escala da largura do objeto
  • Em baixas velocidades, ela não é muito necessária; em objetos que se movem rapidamente, porém, o resultado fica mais natural e os quadros estáticos também parecem mais suaves
  • Essa abordagem não é uma simulação convencional de câmera, e os intervalos de tempo de quadros consecutivos podem se sobrepor
    • Uma simulação de câmera comum não tem sobreposição temporal entre quadros e, muitas vezes, descarta os instantes entre eles

Criando “motion blur infinito” com um shader em tempo real

  • A animação-alvo combina uma esfera em órbita e um toro em rotação, aplicando motion blur a ambos, na prática, até velocidade infinita
  • Para tornar o resultado final interativo, a implementação foi feita como um shader em tempo real
  • Multissampling é a abordagem de renderizar, a cada quadro, a cena em vários pontos no tempo
    • Quanto maior a velocidade do objeto, maior é, proporcionalmente, o número necessário de amostras
    • Não é adequado para uma animação de “velocidade infinita”
  • Motion blur por ray tracing analítico também poderia ser uma alternativa
    • Em meshes, há uma técnica que transforma triângulos em prismas
    • Uma abordagem puramente analítica também é possível, mas aqui poderia ser mais pesada
    • Ambas as abordagens ainda exigem multissampling para o tratamento dos materiais
  • A implementação escolhida é uma espécie de hack que poderia ser chamado de “integrated volume motion blur”
    • Um objeto em movimento é representado por uma função que recebe coordenadas incluindo o tempo e retorna uma densidade de 1 para o interior e 0 para o restante
    • Ao integrar essa função de densidade ao longo do tempo, obtém-se a densidade com motion blur de um intervalo temporal arbitrário
    • O resultado é renderizado com volume ray casting
    • Não é um método fotograficamente exato, mas consegue lidar com trajetórias muito longas em desempenho de tempo real

Densidade com motion blur de uma esfera em órbita

  • Uma esfera em órbita pode ser reduzida, em uma seção 2D, ao problema de um círculo em órbita
  • O centro do círculo está a uma distância R da origem, e o raio do círculo é a
  • Em coordenadas polares, ao encontrar o ângulo θ da superfície do objeto para um determinado raio r, é possível calcular os instantes em que um ponto entra e sai do objeto
  • Se o objeto orbita com velocidade v, isso é expresso nas coordenadas angulares como a subtração do termo temporal vt
  • Em um ponto do espaço, o comprimento da interseção entre o intervalo de tempo I em que o objeto existe ali e o intervalo de tempo F do quadro atual se torna a densidade com motion blur
  • Ao aplicar uma função de obturador s, integra-se o produto da densidade por s(t); se houver uma antiderivada S de s, o cálculo pode ser feito na forma S(max I) - S(min I)
  • A função de obturador baseada em seno usada na animação foi projetada para ter integral 1 e para que, mesmo com sobreposição no eixo do tempo, a soma em qualquer instante seja sempre 1

Toro em rotação e spiric section

  • Um toro em rotação também é tratado pelo mesmo procedimento usado para a esfera
  • A seção vertical 2D do toro é chamada de spiric section, ou Spiric of Perseus
  • Definindo o minor radius do toro como a e o major radius como b, e tomando uma seção em uma posição específica c, é possível expressar a região interna do toro em coordenadas polares
  • Ao resolver o ângulo de superfície θ, obtêm-se os dois casos, positivo e negativo, e a região entre as duas fronteiras é usada como densidade do solid torus
  • As etapas seguintes são iguais às da esfera em órbita: encontrar o intervalo de tempo e aplicar a integral da função de obturador

Torusphere Accelerator final

  • A cena final combina a esfera e o toro e é renderizada por volume ray casting padrão
  • Surface normals exigem processamento adicional
    • Como não existe o conceito de “normal de superfície com motion blur”, a implementação mistura as normais
  • A animação ao vivo oferece suporte a interações básicas com mouse e toque
  • Como pode não funcionar bem em todos os dispositivos, a página também fornece um vídeo pré-renderizado no topo
  • O shader final também pode ser visto no Shadertoy

Pontos levantados na discussão do HN

  • Na discussão do Hacker News, surgiu a visão de que a qualidade do motion blur é uma escolha artística
  • A importância da conversão de espaços de cor também foi discutida
  • Também se discutiu como o motion blur evoluiu historicamente nos VFX de cinema
    • O filme pioneiro em CG Jurassic Park foi citado como um caso que usou uma box shutter function fisicamente impossível
  • Motion blur em jogos continua sendo um tema controverso

1 comentários

 
GN⁺ 2024-03-05
Comentários do Hacker News
  • O compromisso ao renderizar ou filmar motion blur com uma taxa de atualização da tela finita é que o público pode acompanhar com os olhos objetos em movimento na tela.
    No mundo real, fazer isso deixa o objeto nítido. Por isso, seria preciso rastrear o movimento dos olhos e aplicar blur conforme o movimento relativo, ou eliminar totalmente o motion blur com uma taxa de atualização infinita. Como nenhuma das duas opções é prática com a tecnologia atual, sempre acaba havendo algo estranho em algum ponto. Um bom diretor ou game designer escolhe a velocidade do obturador ou o blur de renderização prevendo como os olhos do público vão se mover

    • Dito isso, o público já aceita o ângulo do obturador como parte da linguagem visual. Por exemplo, um ângulo de obturador estreito dá uma sensação de clipe de rap mais cortante, enquanto um ângulo de obturador longo dá uma sensação retrô e onírica.
      Se o conteúdo renderizado não puder falar a mesma linguagem visual, então falta uma ferramenta, independentemente da taxa de atualização. Claro que há certos limites; se a diferença for realmente perceptível a 400 Hz, isso seria bem surpreendente.
      O interessante no conteúdo renderizado é que dá para expandir ainda mais isso. Por exemplo, dá para brincar com conceitos que achávamos já entender, como um ângulo de obturador que ultrapassa a duração de um frame
    • Uma alternativa à taxa de atualização infinita é mostrar cada frame apenas durante uma parte do tempo normal de frame. Ou seja, exibir frames individuais rapidamente como um flash e deixar o restante em preto.
      Esse método reduz o brilho máximo da tela e exige uma taxa mínima de frames para evitar cintilação, mas reduz o blur de persistência, que é um blur de rastreamento dos olhos que não existe na realidade. Mais precisamente, para eliminar completamente o blur de rastreamento, cada frame teria de ser exibido por um tempo infinitamente curto, o que não é realista. Ainda assim, headsets de VR usam esse método de flashes/estroboscopia.
      Esse também é o motivo pelo qual telas CRT e de plasma tinham nitidez de movimento muito melhor que LCD ou OLED. As primeiras exibem cada frame como um breve lampejo, enquanto as últimas usam o método sample-and-hold, mantendo o mesmo frame durante todo o tempo do frame. Por exemplo, a 60 Hz, ele é mantido por 1/60 de segundo. 60 FPS em um CRT pode até parecer mais fluido que 120 FPS em um OLED.
      Em jogos, também há a opção de adicionar muitos frames por meio de reprojeção. É possível aproximar o movimento real da câmera sem o motor precisar renderizar grandes quantidades de frames caros. Isso já é usado em VR, mas ainda não em taxas de frames muito altas. Este artigo cobre bem os detalhes:
      https://blurbusters.com/frame-generation-essentials-interpol...
      Como dizem que algo em torno de 1000 FPS via reprojeção é bastante realista, parece possível resolver o problema do blur de rastreamento sem reduzir o brilho da tela
    • Objetos em movimento podem ficar mais nítidos se cada frame for exibido em uma posição fixa por um tempo mais curto. Ou seja, reduzindo o MPRT, evita-se que o frame exibido borre quando os olhos acompanham o movimento.
      Isso pode ser implementado pela emissão de varredura de CRT/OLED, geralmente de forma rolling, ou por strobing da luz de fundo em LCD, em geral no frame inteiro. Mas, a 24 Hz, exibir cada frame por pouco tempo causa uma cintilação quase insuportável, então projetores de cinema mostravam cada frame do filme 2 a 3 vezes. A 50 Hz, fica apenas no limite do tolerável, por isso algumas TVs CRT europeias faziam frame doubling de conteúdo a 50 Hz para 100 Hz, o que às vezes fazia objetos em movimento parecerem duplicados. Para movimento idealmente suave e fadiga ocular mínima, o ideal seria pelo menos 70–75 Hz, mas aí fica difícil exibir vídeo gravado a 60 FPS sem judder ou tearing
    • Exato. Ao pesquisar o contexto para escrever este texto, li um artigo acadêmico bem legal que explica isso que você acabou de dizer e propõe uma solução para prever o movimento dos olhos do espectador: Temporal Video Filtering and Exposure Control for Perceptual Motion Blur (Stengel et al., 2015)
    • Com uma taxa de atualização finita, não dá para tornar uma imagem em movimento realmente nítida. Com uma taxa de atualização suficientemente alta, dá para chegar perto, mas o objeto só pode se mover por um caminho temporalmente truncado aos saltos, que não coincide com o movimento dos olhos
  • Ao contrário da expectativa de que isso faria a mídia visual parecer mais realista, em jogos dá a sensação de fazer videogames parecerem uma aproximação barata de um filme excessivamente editado.
    Faz sentido em movimentos muito rápidos, em algo passando muito perto ou, especialmente, em movimentos que não são do seu próprio ponto de vista. Mas é usado demais em situações como “o personagem gira rapidamente”.
    Quando você vira a cabeça ou os olhos de repente, não vê uma imagem borrada; vê uma nova imagem, e o cérebro descarta os dados intermediários. Dá para perceber olhando para um olho no espelho e depois mudando o foco para o outro. Você vê seus olhos ou seu rosto ficarem borrados?
    Ao adicionar blur quando a câmera se move em um jogo, você só atrasa a exibição do novo campo de visão. É distrativo e irreal.

    • Esse teste não é o melhor. Isso porque o cérebro compensa os movimentos sacádicos e censura a entrada por um instante. Também há uma estabilização de movimento embutida que permite ler placas na rua enquanto você caminha.
      Um teste melhor é balançar um dedo ou a mão muito rapidamente enquanto olha para eles. Você verá motion blur quando o dedo se mover. Em alguns casos, também dá para ver “frames” individuais como imagens persistentes. Por exemplo, ao olhar para lanternas traseiras de carros modernos, os LEDs não ficam continuamente acesos; eles piscam muito rapidamente por PWM. Então, se você mexer os olhos olhando para as lanternas à noite, verá uma sequência de pontos, não uma imagem borrada. Depois que aprende esse truque, dá para distinguir iluminação analógica de PWM pelo fato de ela aparecer borrada ou como pontos interrompidos.
    • Acho que motion blur deveria ser usado como aceleração do mouse. Como foi dito, quando você vira a cabeça rapidamente, a imagem deve aparecer nítida e imediatamente.
      Mas, quando você está dentro de um carro ou voando pelo ar em um jogo, a imagem pode ficar distorcida durante uma olhada rápida. O esperado é um blur que pareça ser arrastado conforme se acelera, e esse efeito pode tornar cenas rápidas muito mais interessantes. O problema é que motion blur é implementado de forma péssima em quase todos os lugares.
    • O motivo de motion blur ser controverso em jogos geralmente é que a implementação é muito ruim.
      Os três maiores pecados são desfocar objetos longe demais, desfocar coisas que não deveriam ser desfocadas e desfocar a cena inteira. O terceiro no fim se reduz ao segundo, então talvez na prática sejam dois pecados. O mais importante é que motion blur precisa ser sutil. Um motion blur bem-feito não deixa o jogo embaçado; ele o faz parecer mais realista e suave.
      Se um objeto se move 50 pixels entre frames, a largura do blur não deve passar de 50 pixels. Na verdade, para ficar mais discreto, é provável que algo em torno de 25 pixels seja o correto. Mas, por algum motivo, jogos de corrida aplicam um monte de blur radial à cena inteira quando se está correndo rápido, e pessoalmente acho que isso estraga a cena.
      Da mesma forma, objetos que não se movem em relação à câmera não devem ter motion blur. Muitos jogos erram nisso. Ao girar, eles desfocam a cena no pós-processamento. Se a cena for completamente estática, faz sentido, e também é uma abordagem muito eficiente em custo computacional. Mas, se você está girando para acompanhar algum objeto, o objeto que está sendo acompanhado não deve ficar borrado. Em um jogo de corrida, se o carro ao lado está andando na mesma velocidade que eu, ele não deve receber blur.
      Uma forma garantida de obter motion blur correto é renderizar vários frames completos em sequência e depois misturá-los, mas são necessárias muitas amostras para ficar bonito. Caso contrário, quando algo como uma linha vertical atravessa a tela, em vez de um blur suave, parece uma sequência de faixas verticais.
      Talvez o melhor seja uma abordagem híbrida: renderizar cada objeto da cena separadamente e aplicar blur de pós-processamento por objeto conforme a direção do movimento relativo à câmera. Mas o tratamento da ordem em Z pode se tornar um grande desafio.
    • Em videogames, motion blur ajuda a compensar taxas de quadros baixas. Especialmente em 30FPS, ele é quase necessário, e em 60FPS também fica aceitável.
      Nas raras vezes em que pude jogar a 120FPS, embora o projetor infelizmente estivesse limitado a 60Hz, preferi jogar sem motion blur.
    • Na verdade, você não vê uma nova imagem; vê uma certa quantidade de detalhes, e o cérebro reescreve a história do que viu para fazer parecer que há continuidade.
  • Um bom panorama está em [1].
    Curiosamente, até a publicação, em 2005, do artigo clássico [2] sobre modelagem de eficiência do obturador, todos os renderizadores usados em produção de VFX utilizavam obturador em caixa. Ou seja, o obturador se abria instantaneamente, permanecia aberto pelo tempo especificado e depois fechava instantaneamente.
    Ao ver cenas de motion blur extremo em filmes como “Jurassic Park” ou “The Mask”, aquilo é o PhotoRealistic RenderMan usando obturador em caixa.
    A primeira implementação em produção da parametrização de [2] na proporção 1:1 ocorreu em [3] no mesmo ano em que o artigo saiu, e permanece inalterada até hoje. A primeira obra em que foi usada foi “Charlotte's Web”, aplicada apenas aos personagens de aranha criados pela Rising Sun Pictures usando [3].
    A Pixar também adicionou isso alguns anos depois, mas em [4] levou a ideia um pouco longe demais. Hoje, a maioria dos renderizadores offline tem esse recurso e o chama de curva do obturador.
    [1] O. Navarro et al.: Motion Blur Rendering: State of the Art (https://citeseerx.ist.psu.edu/doc_view/pid/fc23fb525cafa8fe6...)
    [2] Stephenson, Ian: Improving Motion Blur: Shutter Efficiency and Temporal Sampling (https://staffprofiles.bournemouth.ac.uk/display/journal-arti...)
    [3] https://www.3delight.com/, ver especialmente https://nsi.readthedocs.io/en/latest/nodes.html
    [4] https://renderman.pixar.com/resources/RenderMan_20/cameramod...

  • A demonstração parece ter sido calculada no espaço sRGB. Ou seja, está usando valores de brilho não lineares, então acho que boa parte do motivo de o borrão parecer artificial vem daí
    Para simular um fenômeno físico, é preciso processar com valores de brilho lineares e converter para sRGB só no final
    Poderia ser diferente se os efeitos não lineares da percepção visual humana compensassem tudo isso, mas, nesse caso, pelo menos esse ponto deveria ser mencionado

    • Obrigado por apontar isso. Já fiz conversão de espaço de cor em outros aplicativos gráficos, mas aparentemente não aprendi a lição direito
      Vou verificar de novo e, se estiver correto, atualizarei as figuras interativas e o texto. O shader principal do “torusphere” provavelmente está ok, já que o motion blur é irrealista e ajustado manualmente, mas algumas das primeiras figuras interativas aplicam a teoria diretamente, então essa observação se aplica a elas. Ainda assim, no geral, não acho que isso invalide a ideia central do texto
    • Percebi que o gama estava completamente errado. Como as figuras não produzem um motion blur percebido como suave, isso acaba prejudicando o próprio objetivo do artigo. Poderia ter ficado muito melhor
    • É surpreendente que o autor tenha deixado passar um ponto tão importante ao ignorar o espaço linear. Mas até a Adobe, em 2024, mal dá suporte a processamento linear, então não é algo tão estranho assim
  • A demo do toro é realmente incrível. É interessante como uma taxa de quadros alta muda a percepção do blur
    Estou usando um monitor de 240 Hz e, na figura 5, não vejo os círculos separados até cerca de 12 rad/s. Mesmo a 40 rad/s, não consigo perceber a diferença entre as opções de obturador tradicional e obturador senoidal enquanto está em movimento
    Só pela suavidade do movimento do mouse e pela baixa latência, recomendo muito 240 Hz. Voltar para um ponteiro de mouse a 60 Hz é muito, muito difícil

    • Já usei tanto um monitor 4K de 24 polegadas, daqueles do tipo “depois que usa Retina não dá para voltar”, quanto um monitor de 144 Hz, mas não sinto vontade de atualizar meu ambiente principal, que são três telas antigas de 24 polegadas, 1920x1200, 60 Hz
      Algumas pessoas simplesmente não ligam. Também não entendo muito essas discussões tipo guerra santa sobre latência de entrada ou emuladores de terminal. Não sinto diferença entre trabalhar no console do framebuffer e trabalhar via ssh com 50 ms adicionais
      Consigo perceber a diferença entre jogos a 30 FPS e 60 FPS, mas só quando estou prestando atenção. Desde que fique estável, sem ficar oscilando entre os dois valores, não me importo muito
    • No meu caso, concordo que um cursor a 144 Hz parece mais suave. Ainda assim, não tenho problema nenhum em voltar para um cursor a 60 FPS
      Mas fico me perguntando se interfaces com transições mais suaves dão uma sensação maior de estabilidade, e se uma taxa de atualização alta poderia afetar o estado mental com o passar do tempo
  • Se o toro e a esfera ao fundo são feitos com motion blur, não deveriam ser parcialmente transparentes? Parece estranho, porque em algum momento eles parecem voltar a ficar opacos

    • Sim. O conceito de torusphere é fisicamente impossível. Como tudo é um loop, o objeto nem sequer tem uma existência teórica, e é composto apenas de motion blur artificialmente engrossado
      Por isso o título é motion blur all the way down
    • Claramente há um blend entre a esfera e o toro, e depois de volta entre o toro e a esfera. Caso contrário, ele ficaria cada vez mais esmaecido com o tempo
    • A luz é discreta ou contínua?
    • Acho que um objeto que se move ou salta infinitamente rápido não poderia se tornar transparente. Isso porque ele inevitavelmente bloquearia todos os raios de luz que cruzassem sua trajetória
      Mas a luz emitida por um objeto em movimento deveria ser menor que a de um objeto parado. Portanto, à medida que a distância aumenta, o objeto deveria ficar cada vez mais escuro
  • Isto é uma tentativa de deixar de simular uma câmera de filme e passar a simular o sistema visual humano. É uma direção útil
    É sair de imitar uma tecnologia antiga e dar um passo mais perto da realidade. O motion blur baseado em obturador também pode desaparecer, assim como impressões em tom sépia, filmes em preto e branco a 16 FPS e rodas ovais causadas por obturadores mecânicos

    • Me avise quando existir tecnologia capaz de renderizar a potência real do Sol em uma tela de TV
      Reproduzir a realidade não é o objetivo. Porque isso é inalcançável
  • Parece que este texto subiu também porque ambient.garden acabou de chegar à front page. Relendo, sinto que na verdade deveriam ter sido dois artigos
    Ainda gosto da parte inicial. Ela investiga bem o que é motion blur e o que ele deveria ser em teoria. A parte final é uma explicação supercompacta e um tanto caótica de como funciona o shader para uma animação específica de “torusphere” baseada em motion blur. Para mim, essa parte é útil principalmente porque impede que o código fique completamente incompreensível neste momento. Olhando em retrospecto, a transição entre as duas partes parece mais como pular em um lago congelado. Desculpa

    • Enquanto lia, tive a sensação de que o texto explicava de forma elegante o motion blur como uma função do intervalo de exposição chamado ângulo do obturador, e então de repente saltava para um território insano de um caso especial muito estranho
      Fico feliz em saber que não foi só por causa da taça de vinho que eu tinha acabado de beber
      Já brinquei algumas vezes com motion blur como função de projeção de uma extrusão quadridimensional, mas, no contexto real de vídeo e texturas, isso se torna impraticável em comparação com amostragem por hardware acompanhada de caching. Mesmo assim, este texto me faz pensar: “talvez só mais uma vez”
  • A demonstração de comparação em tempo real é fantástica. Até aquele ponto, eu sentia que tinha “entendido” intelectualmente, mas, quando pude alternar diretamente motion blur ligado/desligado, a diferença ficou realmente clara

  • Depois de ver motion blur all the way down, de algum modo acabei pensando em teoria das cordas, átomos e em como o universo foi criado

    • É uma metáfora interessante. Camadas eletrônicas às vezes são descritas como nuvens de densidade de probabilidade. O sombreamento indica a probabilidade de encontrar um elétron naquele ponto se o tempo fosse congelado
      Claro que, quanto mais fundo você vai, mais estranho tudo fica