Entendendo na prática a multi-resolução

Softwares disponíveis para publicar na internet, visualização no computador, formatos e conversão para impressão, papéis, tamanhos e tudo afim.
Avatar do usuário
cartola
Site Admin
Mensagens: 1228
Registrado em: 11 Mai 2012, 12:40
Localização: Rio de Janeiro
Contato:

Entendendo na prática a multi-resolução

Mensagem por cartola » 05 Jan 2014, 12:21

Oi pessoal,

estava fuçando o fórum do krpano sobre a nova versão 1.17 e me deparei com um exemplo fictício de uma imagem publicada com 1.4 petapixels e vi que o exemplo era uma ótima maneira de visualizar como a multi-resolução funciona na prática. Esse assunto já esteve em vários tópicos aqui no fórum e achei que poderia ser interessante pra esclarecer melhor o assunto.

Primeiro vamos entender o que é uma imagem com petapixels. As imagens com megapixels são produzidas pelas câmeras fotográficas e o prefixo “mega” indica “milhões” de pixels. Um pixel é um ponto da imagem, então nossas câmeras tipicamente produzem imagens formadas por milhões de pontos. Por exemplo, uma gopro hero3 black edition produz imagens com 4.000 x 3.000 pontos (pixels), portanto a área dela é de 12.000.000 de pixels ou 12 milhões de pixels ou simplesmente 12 megapixels.

Aí o pessoal resolveu juntar fotos e fazer imagens ainda maiores:
  • megapixels - milhões de pixels - 1.000.000
  • gigapixels - bilhões de pixels - 1.000.000.000
  • terapixels - trilhões de pixels - 1.000.000.000.000
  • petapixels - quatrilhões de pixels - 1.000.000.000.000.000
Bom, de curiosidade tentei fazer umas estimativas aqui. Com uma lente de 50mm numa câmera full frame a gente chega nos gigapixels. Ela tem um ângulo de visão vertical de 27 graus. Com a câmera de pé os 27 graus precisam ser repetidos 13.333 vezes pra cobrir os 360º. Com uma resolução como a da 5D mk III isso daria uma largura de 51.200 pixels. Como a equirretangular tem proporção 2x1 então isso daria uma foto de 51.200 x 25.600 e a área dela seria de 1.310.720.000 pixels - que está na ordem dos gigapixels (1.3 gigapixels).

E pra chegar nos petapixels? Vou chutar uma resolução que chegaria aos petapixels com proporção 2x1. Pra isso podemos contar e verificar que um petapixel tem 16 dígitos, então um bom chute seriam números que tivessem em torno de 8 dígitos: 50.000.000 x 25.000.000 = 1.250.000.000.000.000 ou 1.25 petapixels. Bom, com a mesma resolução vertical de 3840 precisaríamos de 50.000.000 / 3840 = 13.020,833 fotos. É, não é brincadeira não, seriam necessárias mais de 13 mil fotos só pra cobrir a horizontal. Pra finalizar podemos tentar calcular que lente teria que ser usada pra uma foto imersiva desse tamanho. Pra cobrir 360º com 13.020,833 fotos teríamos um campo visual vertical de uns 0,028 graus o que seria equivalente ao de uma lente de mais de 30.000 mm (isso mesmo, mais de 30 mil milímetros!). Embora isso pareça não existir, imagine quantas fotos o google maps, bing maps ou qualquer outro serviço de mapas não tem pra cobrir a superfície da terra com aquela resolução! Alguém se aventura a calcular? rs...

Bom, aí você que não publica suas fotos usando multi-resolução vai tentar publicar uma foto com 1.3 gigapixels e não vai conseguir. Então chegamos ao objetivo final desse tópico. Nessa publicação fictícia o autor usou imagens ilustrativas:

http://krpano.com/petapixel/

Acesse e veja como se dá a experiência do usuário. Ele não precisará carregar uma imagem com petapixels de resolução pra ver a panorâmica. O krpano (bem como outros softwares publicadores) cria camadas com resoluções diferentes e divide cada camada em quadrados (chamados “tiles” em inglês), permitindo que o usuário tenha que baixar apenas os quadrados do trecho daquela resolução que está vendo.

Isso não se aplica apenas em imagens petapixels. Eu tenho criado imagens com tamanhos entre 70 e 130 megapixels mais ou menos e sempre prefiro dar o maior zoom possível para o usuário, o que implica em não reduzir a resolução pra publicar, e tornar sua experiência mais agradável, o que implica em não fazê-lo ter que esperar carregar toda a resolução pra poder navegar. Pra isso só publicando com multi-resolução, caso contrário ele vai ter que baixar um swf com dezenas de megas antes de poder navegar. Eu ainda adotei uma opção pessoal que vai mais além, já permitindo que o usuário navegue apenas com a imagem de pré-visualização (preview) já carregada.

Abs, Cartola.

Responder