h1

Houdini & Rhythm & Hues

2011/07/26

Assim que vi algumas imagens do novo filme do Jim Carrey, percebi que a computação gráfica que inseriu os pingüins (ainda gosto do trema) nas cenas era péssima. O nome original é “Mr. Popper’s Penguins” e aqui foi traduzido como “Os Pinguins do Papai”.

Ocorre hoje em dia na tradução de nomes de filmes um fenômeno similar ao que ocorreu na década de oitenta. O sufixo “do papai” é o novo “do futuro”. Antes eram “Exterminador do futuro”, “Vingador do futuro”, “Garoto do futuro” e etc. Agora são “Creche do papai”, “Acampamento do papai” e esse último “Os Pinguins do Papai”. Fecha parênteses.

Uma rápida busca revelou que o estúdio por trás dos pingüins era Rhythm & Hues e, de fato, logo na primeira página do site aparecem cenas desse e de vários outros filmes notáveis por terem computação gráfica ruim e, em particular, por não se mesclarem bem às cenas reais à volta. Segundo a wikipédia, eles usam software interno para gerar as imagens. Até aí tudo bem, mas o que me incomodou e me levou a escrever esse texto é que o portfólio deles tinha bastante em comum com o do software Houdini que, até então, eu achava que era bom.

Vejamos uma lista de alguns filmes em comum: Yogi bear, The A-Team, The Incredible Hulk, Alvin & Chipmunks, The Golden Compass, Garfield. Também têm em comum que os personagens 3D não convencem por si só e não encaixam bem com o ambiente à sua volta por problemas de iluminação ou simplesmente textura.

Agora uma lista de outros filmes feitos com Houdini: Inception, Toy Story 3, Avatar, How to Train Your Dragon, Transformers, The Curious Case of Benjamin Button, Beowulf. Arrisco dizer que esses tem efeitos bem mais convincentes.

Existem alguns possíveis culpados para essa diferença. Seria incompetência dos profissionais da Rhythm & Hues ou a qualidade ruim das imagens geradas pelo tal software interno deles? Existe ainda a possibilidade de optarem por algum algoritmo ou configuração mais rápida e menos realista por questões de prazo ou custo. Há que se levar em conta também que o fato do Houdini ter sido utilizado em um filme não significa que ele foi o único responsável pela geração das imagens. É comum usarem outros softwares, cada um na parte do processo em que é mais conveniente. Alguns são melhores para modelagem, outros para animação e ainda outros para renderização, por exemplo.

Anúncios
h1

Comentários

2009/12/07

Com alguma frequência, observo que meus comentários em blogs são ignorados quando contém alguma reclamação a respeito da omissão em relação ao Linux e o software livre. Isso só reforça a idéia de que essas omissões sejam propositais. Assim, para evitar que esses comentários sejam perdidos, publico-os eu mesmo aqui.

Resposta ao Gadget Show:

This discussion seems to be in the wrong decade. These days we have more Linux users than Mac and Windows is losing adopters everyday. Both Mac and Windows have lots of concepts taken from Linux desktops, for example, multiple desktops. They even have free software inside, with the difference that Apple contributes back to free world and Microsoft don’t. But more important that all this discussion is that Ubuntu Linux, for example, is just as easy to use than a Mac for most people. Give a Dell with Ubuntu preinstalled to your grandma to see what I mean.
You can try it for free at http://www.ubuntu.com.

Resposta ao The World Technology podcast:

This podcast keeps this last-century view of the computing world dividing users between windows and mac only. You completely ignore Ubuntu and Linux which has more users than Mac these days. Any discussion about security is not complete with no mention to free software. And the mac users may agree with me that the link between malware and popularity is not the explanation of windows lack of security. Stop spreading the myth that it is normal to have all these security flaws.

Atualização! O comentário do The World foi incluído.
Atualização 2! O comentário do Gadget Show foi incluído também.

h1

Reboot no cinema

2009/10/16

Domingo passado, no cinema, vi os trailers engasgarem. O operador reiniciou o vídeo e o problema foi o mesmo. O cara desistiu de tentar, reacendeu as luzes e rebootou. Apareceu um logo enorme do windouz xp desligando e ligando de novo. Houve risada geral.

Bando de hipócritas! O que vocês usam em casa mesmo? Uma retardada disse “Não é nem o vista!”. Como se isso fosse melhorar a situação.

Da próxima vez que for ao cinema vou levar CDs do Ubuntu.

Isso me lembrou uma outra ocasião em que vi um funcionário que ficava reiniciando os terminais de auto atendimento desse mesmo cinema. A fila enorme, o cliente reclamava e ele ia lá rebootava aquela máquina. Outro cliente reclamava, ele ia lá e a mesma coisa. Qual era o sistema utilizado? Vocês sabem.

h1

Crimestop, blackwhite and doublethink

2009/04/13

Crimestop (one word) appears on Newspeak dictionaries as the ability of cease thinking as soon as one’s mind takes a dangerous path. By dangerous here, we mean a thought that is against the Party’s teachings. Such things can be called thoughtcrime.

Blackwhite is one of those Newspeak words that has contradictory meanings. When applied to foreigners, it is how they lie saying that black is white. When applied to comrades, it is the necessary ability to think (or to know) black is white because the Party is always right despite the facts.

Perhaps the most important concept is doublethink and it is very interesting. One practices doublethink when he/she bears two contradictory beliefs at the same time. It is not enough to accept them without judging. They have to be both true in your mind.

These are words taken from Newspeak, a language based on English created by the Ingsoc party (THE party) in Oceania that appears on 1984 by George Orwell. One more time this brilliant writer surprises me with beautiful analogies that explain how certain things work in this (the real one) world. The first time it was Animal Farm that shows how a well intended revolution can degrade to the most brutal totalitarianism.

This little piece discusses a mechanism that can be used to maintain followers in a religion. As a previously religious man, I recognise some of these patterns in what my mind used to be.

We practise crimestop to prevent us from heresy. We say other religious people, say the Jews or Muslins, do blackwhite but we are blind to see that we do practise it ourselves. Doublethink is what we use the most. We believe that everything written in the Bible (which has contradictions in it) is true and at the same time we have to believe in science and in facts we witness in real life. That is not achievable without doublethink.

Stop doing stopcrime, blackwhite and doublethink, my friends.

h1

Empresa familiar

2008/01/28

Quando comentei que ouvi o camelô no ônibus dizer de que seu produto era enriquecido com ‘carbono-hidratos’ e outro dizer que o seu tinha ‘90% de calorias’, ouvi uma estória ainda mais interessante. Meu amigo presenciou no trem um camelô com o seguinte bordão: “Compre a bala da empresa familiar. Meu pai planta, minha irmã colhe, minha mãe beneficia e eu vendo no trem”. A bala era igual a todas as outras.

h1

Split em Lua

2008/01/27

É normal que um programador, ao se deparar com uma nova linguagem, tente recriar recursos úteis de linguagens já conhecidas. Não raro, fazemos isso por ignorância dos recursos disponíveis. No meu caso, senti falta do método String.split() de Java ao codificar um algoritmo em Lua.

Inicialmente escrevi o algoritmo usando o método string:gmatch() da API de Lua, porém, o resultado é ligeiramente diferente. Suponha que temos uma string como o início de uma carta “Caro Fulano,\n\nBlah, blah, blah…” e queremos separar o texto linha por linha. Em Java, usaríamos texto.split(“\n”) e o resultado no texto acima, daria 3 linhas. Entretanto, se usássemos texto:gmatch(“[^\n]+”), a função não capturaria a linha vazia, retornando apenas duas. Além disso, temos o inconveniente de ter que inverter a expressão regular.

Sendo assim, resolvi criar meu próprio método string:split(). Ei-lo:

function string:split(separator)
    local init = 1
    return function()
        if init == nil then return nil end
        local i, j = self:find(separator, init)
        local result
        if i ~= nil then
            result = self:sub(init, i – 1)
            init = j + 1
        else
            result = self:sub(init)
            init = nil
        end
        return result
    end
end

Assim como o método string:gmatch(), em vez de retorna um array, este retorna um iterador que pode ser usando em um for. Além disso, a partir dessa definição, já podemos invocar “texto tal”:split(“regex”), como se fosse nativo da biblioteca de strings. No exemplo no início desse post, poderíamos fazer for linha in texto:split(“\n”) do print(linha) end para imprimir o texto linha por linha.

Observe que esse código cria e retorna uma função que usa uma variável da que a criou. Isso se chama closure e é muito útil. Algo como inner classes em Java, porém bem mais flexível e sucinto. A palavra self é equivalente ao this de Java e nesse caso é a própria string.

Lua é uma linguagem realmente muito interessante. Merece toda fama que possui. Experimentem! O irônico é que precisei sair do Tecgraf para me interessar por ela. Isso tem a ver um traço recorrente da minha personalidade, mas isso é assunto para outro post.

h1

Cores

2007/10/13

O olho humano possui dois tipos de células foto sensíveis em sua retina, a saber, os cones e os bastonetes.

O cones são divididos em três grupos, devido a diferença na maneira como respondem aos diversos comprimentos de onda. Basicamente, pode-se dizer que um grupo responde bem à luz vermelha, outro à luz verde e outro à luz azul. Assim, distinguimos as cores que observamos e qualquer outra cor além dessas é percebida como uma combinação. A consequência disso é que é impossível para nós distinguir uma luz amarela genuína de uma mistura de verde e vermelho em partes iguais.

O bastonetes, por sua vez, respondem à luminosidade sem distinção de cor. A vantagem deles é que a área exposta à luz é maior, portanto, quando a luz é fraca demais para os cones perceberem, são os bastonetes que nos ajudam a não chutar o pé da cama ao voltar da mijada noturna. Um porém é que a imagem que eles formam não tem a mesma definição da que os cones produzem. Assim, à noite, todos os gatos são realmente pardos e somos todos míopes.

Outra diferença entre eles é a distribuição. Os cones ficam concentrados mais no meio da retina. A consequência é que não distinguimos a cor de um objeto se estiver, por exemplo, no limiar da nossa visão à esquerda, enquanto olhamos para frente.

Mais uma diferença interessante é que os bastonetes percebem mudanças com mais rapidez. É possível perceber o flickering do monitor a 60 hertz com os bastonetes, ou seja, com o canto do olho. Os cones, não sacam nada. Isso também causa um fenômeno curioso. Certa vez, me deram uma caixa de fósforos vermelha que tinha umas coisas escritas em verde com a mesma luminosidade. Apenas os lentos cones percebiam o que estava escrito. Ao movimentar a caixinha em frente aos olhos havia um atraso do texto em relação ao resto da caixa. Divertido.

Depois que a informação de cor sai da retina e passa para o nervo óptico, ela é codificada em dois canais para crominância e um para luminância. Ainda tricromático, mas num sistema diferente. O formato de imagem JPEG, por exemplo, usa uma codificação semelhante para compactar a imagem eliminando alguns detalhes.

De novo vem a pergunta, Pra que esse papo chato? A resposta é que eu sou chato e ponto. Dito isso, eu afirmo agora, com embasamento teórico ,que gosto de preto. Meus sapatos, minha mochila, meu baixo. Todos pretos.