Renderização e aplicações

Renderização de imagens maiores do que uma textura

Uma imagem pode ser muito maior do que a dimensão máxima de textura da GPU se nunca for alocada como uma única textura. A renderização em mosaico avalia regiões geríveis e transmite os píxeis finalizados para uma representação de saída.

Renderização de Mandelbrot com uma grelha de mosaicos visível para uma exportação de grandes dimensões
As imagens de grandes dimensões são divididas em blocos mais fáceis de gerir e, em seguida, reunidas sem costuras visíveis.Imagem: Björn Kindler / MandelKit · MandelKit Wissensgrafik · Eigene Darstellung · Own work

Visão global, mosaicos locais

Cada mosaico obtém as suas coordenadas a partir das dimensões totais da saída e da proporção visível. Não deve ajustar nem centrar o fractal de forma independente, caso contrário a imagem montada conterá recortes repetidos em vez de uma vista contínua.

Uma saída de grandes dimensões possui um sistema de coordenadas global. Cada mosaico recebe um recorte exato a partir desse sistema, em vez de uma câmara com arredondamento separado. Os centros dos píxeis devem continuar através dos limites dos mosaicos, caso contrário surgem costuras. A proporção da imagem e a região fractal visível são definidas uma única vez para toda a imagem, permitindo que uma exportação de 100,000 píxeis preserve a composição da visualização no ecrã.

Os efeitos requerem vizinhanças

O antialiasing, os mapas de normais e os filtros no espaço do ecrã podem amostrar para além da borda de um mosaico. A renderização de faixas de proteção e o seu recorte durante a montagem evitam marcas de junção. Métodos globais, como a equalização do histograma, requerem uma passagem estatística separada ou estão intencionalmente indisponíveis.

Os filtros com raio requerem píxeis para além das bordas dos mosaicos. Renderize cada mosaico com um halo, aplique o efeito e, em seguida, recorte até ao núcleo. Os efeitos em várias etapas podem necessitar de um halo cumulativo maior. Sem sobreposição, surgem costuras, mesmo que cada mosaico pareça correto isoladamente. O raio necessário faz parte da definição do efeito e deve ser conhecido pelo responsável pela exportação.

«Disco» substitui «memória de pico»

Um codificador apoiado em disco ou um armazenamento intermédio aceita linhas ou blocos à medida que estes são concluídos. Isto limita a memória RAM e a memória da GPU, transferindo a pressão para o armazenamento, os limites de codificação e a duração do trabalho. O progresso, o cancelamento e a finalização atómica fazem parte da correção em exportações longas.

Quando a imagem completa não couber na RAM ou numa textura Metal, as faixas concluídas são gravadas diretamente num codificador incremental ou num ficheiro temporário. O progresso deve incluir a renderização e a codificação, enquanto o cancelamento encerra os dados temporários de forma limpa. Nunca deve ser exigida uma única CGImage final — exatamente essa etapa final de composição produz, de outra forma, exportações gigantes em branco ou impossíveis de codificar.

Fontes e leituras complementares

Este artigo resume as seguintes fontes especializadas, utilizando a redação original. Acedido e revisto editorialmente em 12 de agosto 2026.

  1. Metal overviewApple Developer Documentation
  2. The Science of Fractal ImagesSpringer