A renderização em tempo real, mesmo a renderização em tempo real moderna, é uma sacola de truques, atalhos, hacks e aproximações.
Pegue sombras, por exemplo.
Ainda não temos um mecanismo completamente preciso e robusto para renderizar sombras em tempo real a partir de um número arbitrário de luzes e objetos arbitrariamente complexos. Nós temos várias variantes nas técnicas de mapeamento de sombra, mas todas elas sofrem com os problemas conhecidos dos mapas de sombra e até as "correções" são apenas uma coleção de soluções alternativas e trocas (como regra geral, se você vê os termos "desvio de profundidade" ou "deslocamento de polígono" em qualquer coisa, então não é uma técnica robusta).
Outro exemplo de uma técnica usada pelos renderizadores em tempo real é o pré-cálculo. Se algo (por exemplo, iluminação) é muito lento para calcular em tempo real (e isso pode depender do sistema de iluminação que você usa), podemos pré-calculá-lo e armazená-lo, então podemos usar os dados pré-calculados em tempo real - tempo para um aumento no desempenho, que geralmente ocorre às custas de efeitos dinâmicos. Essa é uma troca direta de memória versus computação: a memória geralmente é barata e abundante, a computação geralmente não é, portanto, queimamos a memória extra em troca de uma economia na computação.
Os renderizadores offline e as ferramentas de modelagem, por outro lado, tendem a se concentrar mais na correção e qualidade. Além disso, como eles estão trabalhando com a geometria que muda dinamicamente (como um modelo que você está construindo), eles geralmente precisam recalcular as coisas, enquanto um renderizador em tempo real estaria trabalhando com uma versão final que não possui esse requisito.