Archive for November, 2006

Usando arquivos .slim no RfM

Uma das propriedades menos conhecidas do RenderMan for Maya é a possibilidade de ler arquivos .slim para montar a interface dos shaders escritos em RSL. Com estes arquivos podemos criar uma interface mais amigável para o usuário, controlar a entrada de dados e facilitar a utilização de imagens comuns como textura nos shaders.
Vamos utilizar o shader abaixo como exemplo.

Este shader é um dos exercícios propostos no post “Usando Texturas em RSL”. Ele tem como parâmetros surfacecolor (cor básica da superfície), texturename (nome do arquivo de textura a ser aplicado sobre a cor), useAlpha (usar alpha da imagem na sobreposição da textura na cor básica), mode (modo de aplicação da textura – over, add, subtract, multiply) e isRfm (inverte a coordenada t se o shader vai ser utilizado no RfM).
O shader recebe o nome de uma textura e a aplica sobre a cor básica da superfície da forma definida pelo atributo mode.
As possibilidades de valores para cada parâmetro são as seguintes:
sufacecolor = uma cor qualquer
texturename = uma string com um caminho para um arquivo .tex;
useAlpha = um número sendo: 0 – não usa o alpha da imagem, 1 – usa o alpha da imagem;
mode = um número sendo: 0 – over, 1 – add, 2 – subtract, 3 – multiply;
isRfm = um número sendo: 0 – RAT, 1 – RfM.
Após compilar o shader e carregá-lo no Maya, temos a seguinte interface:

Os parâmetros surfacecolor e texturename têm entradas condizentes com os seus tipos. O primeiro recebe uma cor e o segundo recebe uma string.
Já para os outros parâmetros que são definidos como float, sua utilização é confusa e não existe nenhum lugar para indicar que valores são corretos. Para useAlpha e isRfm, requer um valor 1 ou 0 de ligado/desligado. O atributo mode requer uma entrada com valores inteiros 0/1/2/3 para selecionarmos a opção de aplicação da textura. Para estes parâmetros o shader funcionaria muito melhor se pudéssemos colocar respectivamente uma “checkbox” e uma “optionbox”.
Quando o RfM carrega um RenderMan Shader, além do arquivo .slo ele procura por um arquivo .slim que será utilizado como guia para a criação da interface do shader. Caso ele não encontre este arquivo a interface é criada de um modo padrão para cada tipo de atributo. Como visto na primeira figura o modo padrão do RenderMan para este caso não é claro o suficiente.
Começamos utilizando o programa toslim para gerar um .slim padrão do shader em questão:
> toslim filemapping6.slo –o filemapping6.slim
Na figura abaixo temos ao lado do Attribute Editor a listagem do arquivo filemapping6.slim.

Para cada atributo do shader no Attribute Editor temos o correspondente bloco de código que define a interface à direita (o arquivo filemapping6.slim).
Modificamos então o filemapping6.slim nos parâmetros texturename, useAlpha, mode e isRfm, adicionando onde se fez necessário as opções subtype e range. Na figura abaixo temos novamente a interface lado a lado com o arquivo de configuração. As mudanças estão a vermelho.

Note que modifiquei o nome (label) de cada atributo. Neste exemplo, os nomes dos atributos não são simplesmente os nomes dos parâmetros, mas nomes mais significativos e com espaços entre as palavras. Os atributos useAlpha e isRfM agora têm uma checkbox para podermos ligar ou desligar (1 ou 0) a opção. O atributo mode (Blending Mode na interface) agora é uma optionbox com as opções referentes a cada um dos modos de aplicação. E o atributo texturename ganhou uma opção para mapear um passe de txmake para a criação da textura.
No filemapping6.slim, além de alterar os labels, cheguei a esta nova interface apenas adicionando aos atributos, as opções subtype e range que servem, respectivamente, para escolher o tipo de elemento de interface e a sua faixa de valores.
No subtipo switch escolhemos os valores 0 e 1 (range {0 1}), sendo o primeiro para desligado e o segundo para ligado. Já para o subtipo selector (atributo mode), na definição da faixa de valores, temos primeiro o texto que aparecerá na caixa de seleção e depois o seu respectivo valor (range {over 0 add 1 subtract 2 multiply 3}).
De todas estas opções, a mais interessante é quando adicionamos o subtype “texture” ao atributo texturename. Fazendo isto cria-se a possibilidade de mapear um passe de txmake ao atributo. Desta forma não é necessário converter a textura em um arquivo .tex para poder utilizá-la no RfM. Podemos carregar um arquivo de imagem qualquer e a conversão é automaticamente feita pelo txmake antes do render. Veja na figura abaixo o Attribute Editor do txmake com as opções de conversão. Repare que para termos a texturização no “padrão Maya” utilizamos os dois wraps como “periodic” e o resize mode como “up-“.

A partir de agora, quando criar shaders em RSL lembre-se que você pode construir uma interface e controlar/facilitar a entrada de dados do usuário usando arquivos “.slim”.
Arquivo zip com o shader e slim files mostrados no post: slimFiles.zip
Outros exemplos de utilização de arquivos .slim podem ser vistos em:
http://www.fundza.com/rman_slim/slim_file/slimfile_quickref.html

Comments

H2oh!

Produto novo, personagens novos. Fizemos o filme de lançamento da nova água com limão da Pepsi, a “H2oh!”. O filme se passa dentro de um aquário onde os peixes estão muito insatisfeitos com a água. O peixe chefe traça então um plano mirabolante para tentar despejar uma garrafa de “H2ho!” para dentro do aquário.

Para este filme desenvolvemos os 6 peixes do aquário. Partimos de um primeiro esboço da agência e com a ajuda de um ilustrador, desenvolvemos os personagens até termos a personalidade deles bem definidas.

Já depois das primeiras ilustrações prontas sabíamos que os peixes precisariam ter muita expressão facial. Desenvolvemos uma interface para animação dos peixes que nos desse a possibilidade de fazer o sincronismo labial rapidamente, mas que também nos deixasse livre para poder estilizar os fonemas quando necessário.

Para ver o filme vá para www.h2oh.com.br, seção Campanhas.

Alguns frames:

Comments (2)

Claro - Filmes “Ele” e “Ela”

Bolinhas e mais bolinhas vermelhas; é a única coisa sobre a qual posso falar sobre estes dois filmes de um minuto que fizemos para a Claro. Os filmes contam, através de algumas situações, a história de um casal desde o dia em que se conhecem até a infância da sua primeira filha. E para cada passagem de situação os personagens principais são levados pelas bolinhas da claro. Um ponto interessante desta campanha é que ambos os filmes contam a mesma história, um pela visão da mulher e o outro pela visão do homem.

Tivemos dois grandes desafios. O primeiro, criar um visual de vidro para a marca da Claro que seria usada em todas as bolinhas que cercam os personagens. O segundo, foi a quantidade de cenas que tivemos que fazer no prazo que tínhamos.
Depois do offline aprovado tivemos apenas 3 dias para finalizar os dois filmes. Foram doze artistas trabalhando em turnos de 10 horas para conseguirmos terminar todas as animações no prazo. Foi uma loucura, mas o resultado final do filme compensou as noites não dormidas.

Algums frames:

Comments (1)

Pepsi Twist - Filme “Yoga”

Na seqüência do sucesso na Siggraph, os limões voltam à ativa. Desta vez o limão magro tenta provar ao gordo que consegue mover uma pepsi twist light e trazê-la para eles somente com a força do pensamento. Para azar do magro, ele não é o único limão com super poderes…
Cuidado, este é um filme com um final explosivo!

Algums frames:

Comments

Kapo

Depois de tantos trabalhos para a Pepsi, foi a vez do suco de frutas Kapo, da Coca-Cola. O filme foi feito para lançar uma promoção de tatuagens para crianças. Ele é dividido em duas partes: a primeira, uma abertura com duração de 8 segundos em animação, mostra os personagens treinando para serem tatuagens e a segunda, filmada, mostra as crianças tomando o suco, se divertindo e brincando com as tatuagens.

Alguns frames:

Comments