Mostrando postagens com marcador Computação Gráfica - 3D. Mostrar todas as postagens
Mostrando postagens com marcador Computação Gráfica - 3D. Mostrar todas as postagens

domingo, 27 de setembro de 2009

USO DO BLENDER EM INFOGRAFIA

Nesse final de semana eu utilizei o Blender para realizar um trabalho de infografia para complementar um relatório sobre um assentamento de terras em que a minha esposa está realizando um relatório técnico de desenvolvimento. A imagem tentou representar o relevo e a divisão dos recursos no assentamento. Abaixo eu anexo a imagem, mas para completar a informação infográfica, ela irá editar a imagem no photoshop e acrescentar textos descritivos.



O que é infografia?

Infografia ou infográficos são representações visuais de informação. Esses gráficos são usados onde a informação precisa ser explicada de forma mais dinâmica, como em mapas, jornalismo e manuais técnicos, educativos ou científicos. É um recurso muitas vezes complexo, podendo se utilizar da combinação de fotografia, desenho e texto.
Fonte: Wikipedia

Simulação de fluidos no Blender

Uma das mais importantes razões para usar simulações em ambientes 3D é para obter efeitos que seriam extremamente difíceis ou impossíveis de se obter pelo uso de métodos tradicionais de modelagem em malhas ou pela animação das mesmas pelo uso de quadros chaves.
O simulador de fluidos do Blender é um exemplo de um poderoso sistema, capaz de animar uma grande variedade de situações de fluxo livre de fluidos, impossíveis de se alcançar pelos métodos tradicionais.

USANDO O SIMULADOR DE FLUIDOS DO BLENDER

O simulador de fluidos do Blender foi desenvolvido em um projeto conhecido como Google Summer of code 2005, financiado pelo programa da empresa Google. O nome oficial do simulador é El’ Beem Fluid Simulator, e foi dado pelo desenvolvedor do código, Nils Thuerey. Esse nome é uma referencia ao método usado em seu algoritmo de calculo, o Lattice – Boltzmann Method.
Esse método computacional, também conhecido pelas suas iniciais LBM, é o estado da arte em técnicas computacionais de dinâmica de fluidos para calculo de movimento de superfícies fluidas. O modelo matemático da técnica LBM modela uma superfície fluida como uma treliça de triângulos sobre a qual um grande número de partículas viaja e colidem umas com as outras.
A transferência da força de colisão entre as partículas dá a direção ao movimento fluido naquela região. O método é capaz de produzir movimentos fluidos convincentes e permite a manipulação de parâmetros que influem nas características do fluido simulado. O método LBM é muito bom também para simulações em que interações detalhadas entre objetos sólidos e líquidos acontecem. É importante observar que este tipo de simulação faz um uso intenso de processamento, ocupando bastante a CPU e memória do PC. Antes de ocupar o computador por horas , é recomendável que se faça alguns testes da simulação pretendida em baixa resolução.
Para obter maiores detalhes, consultar o site do autor no wiki do Blender.




O Fluxo de Trabalho para realizar simulação de fluido
No momento de composição de uma cena no Blender, em que a simulação de fluidos está presente, alguns objetos podem ser definidos para participar na simulação do fluido. Podemos definir, por exemplo, um elemento como fluido e outros como obstáculos.
Os parâmetros globais de simulação devem ser definidos, tais como a viscosidade ou gravidade que serão atribuídos ao domínio de simulação.






Acionando o botão BAKE, a geometria e os parâmetros configurados são utilizados nos cálculos pelo algoritmo de simulação, resultando em malhas representativas da física do fluido em cada instante. Estes quadros instantâneos são armazenados no HD e usados no momento de renderizar a animação ou na exibição prévia da animação na 3D view.
Para definir um ambiente de simulação de fluido no Blender, o primeiro passo necessário é delimitar o espaço onde o algoritmo irá realizar os cálculos. Essa área é conhecida como domínio. É importante observar que quando maior o domínio em relação aos elementos inclusos neste, mais poder de processamento é utilizado no calculo. Isso acontece porque o algoritmo de simulação divide o espaço em unidades elementares discretas chamadas de Voxels(volumetric elements).
O segundo passo é definir como será a fonte de fluido. Isto é feito pela inclusão de um objeto dentro do domínio, definindo-o como fluid ou Inflow. Essa decisão dependerá de como será a dinâmica de animação do fluido. Outros objetos devem ser inclusos como obstáculo.

O resulatdo da dessa simulação de fluidos pode ser vista em meu canal do Youtube.

domingo, 6 de setembro de 2009

Mapa de Deslocamento

Displacement mapping

Mapa de deslocamento permite que a textura do objeto manipule a sua forma pela alteração da posição dos vértices da malha. Ao contrário do Normal Map e Bump map, que produzem partes salientes pela ilusão da distorção das sombras aplicadas à superficie, o mapa de deslocamento produz saliencias reais na superficie do objeto, produzino rugas, sulcos, etc na própria superficie. Assim, a deformação da malha pelo mapeamento de deslocamento produz sombras e todos os efeitos que uma geometria real pode apresentar no render.

Figura 1

Opções de configuração
A intensidade da alteração pretendia na malha do objeto é controlada por alguns parâmetros na aba Map To na configuração do material(F5). A
Os valores numéricos das opções Disp e Nor controlam a intensidade do deslocamento da malha. Ver Figura 2.
- Se a textura possui apenas os dados de informação das normais, a intensidade do deslocamento é controlado pelo botão deslizante Nor .
- Se a textura possui a informação da intensidade de cor, os vértices serão deslocados ao longo da direção do vetor normal. Pixels de cor branca provocam o deslocamento na direção do normal e pixels de cor preta movem a superfície na direção oposta à normal.


Figura 2


Figura 3

Nesse exemplo foi criado uma texura básica no photoshop, composta por faixa brancas e pretas. Pode ser utilizado qualquer outro edito de imagem para isso. Ver figura 4.

Figura 4
O resultado do render(Figura 5) apresentado abaixo mostra o deslocamento causado na superfície da malha, mostrando que nesse caso as normais da malha estavam apontando para dentro do objeto. Então, as regiões escuras da textura provocaram as partes salientes da superfície.


Figura 5

No nosso 2º exemplo foi criado uma texura básica no photoshop, composta por faixa brancas e pretas, com um gradiente aplicado na faixa preta central da textura . Ver figura 6.


Figura 6

O resultado do render(Figura 7) apresentado abaixo mostra o deslocamento suavizado na faixa central, causado pelo gradiente de cor aplicado no preto. Então podemos verificar que a intensidade da cor altera a intensidade da saliência na superfície renderizada.

Figura 7

Os arquivo fonte do blender e as texturas estão diponiveis para download.

Desenvolvendo e aplicando texturas

Desenvolvendo e aplicando texturas

Mapeamento de texturas é a arte de adicionar variação e detalhe a superfícies 3D, indo além do nível de detalhe modelado na geometria do objeto.
A criação de mapas de texturas é o processo onde a técnica ou pericia em pintura 2D, fotografia e manipulação de imagem podem ser adicionadas na cena 3D. É possível criar texturas para fazer os modelos 3D parecerem compostos de qualquer tipo de material, desde tijolos à pele humana, por exemplo, ou usar texturas para realçar características de superfície, tais como rugosidade ou polimento, sujo ou limpo, etc.
Existem diferentes técnicas para criar texturas e como alinhar estas texturas à geometria modelada.
Tipos de Mapeamento de texturas

Texturas podem ser usadas para controlar muitos atributos diferentes da superfície, para produzir diferentes efeitos na imagem renderizada. Os 07 (sete) tipos mais comuns de mapeamento são:
- Color Mapping
- Specular Mapping
- Incandescense Mapping
- Transparency Mapping
- Displacement Mapping
- Bump Mapping
- Normal Mapping

Color Mapping
O mapa de textura criado para descrever a informação de cor pode ser aplicada no canal de cor do programa 3D. Ainda que uma superfície possa ser considerada 100% verde, por exemplo, é uma boa prática criar uma textura de cor sólida em um programa de pintura digital (photoshop/Gimp)e adicionar variações e nuances de tonalidades da cor principal. Uma cor absolutamente pura pode muitas vezes parecer artificial nos programas 3D.


Specular Mapping
Mapa especular varia o brilho e a cor do destaque especular em diferentes partes da superfície do objeto. O mapa especular pode tingir de brilho, modificar o brilho, ou ainda bloquear completamente o brilho em uma determinada parte do objeto. Areas de brilho no mapa especular tornam visíveis partes destacadas na superfície, criando áreas de maior destaque no objeto. Tons escuros do mapa especular tornam áreas de destaque menos visível, e preto puro no mapa especular impede por completo que certas partes do objeto apareçam.

Incandescence Mapping

Mapa de incandescencia também conhecido como mapa de luminancia, ou mapa constante, usa o mapa de textura para simular propriedade de emissor de luz no objeto. Mapas incandescentes são perfeitos para tarefas como a de adicionar textura de luz incandescente em um bulbo de lâmpada ou em uma imagem na tela de uma televisão ou uma ponta de cigarro.
Transparency Mapping

É possível criar mapas de texturas que descrevem aspectos de transparência no modelo 3D. Este método possibilita criar na superfície do objeto, partes mais transparente ou menos transparente. O branco no mapa de textura aplica 100% de transparência no objeto e o preto representa partes totalmente opacas. Mapa de transparência pode ser usado para cortar formas detalhadas e padrões em uma superfície. Essa técnica pode ser utilizada para simular cabelo ou pestanas do olho, por exemplo.



Displacement Mapping (Mapa de deslocamento)

A porção brilhante ou mais clara no mapa de textura de deslocamento é utilizada para modificar a forma da superfície do objeto.


Displacement Mapping no Blender

domingo, 23 de agosto de 2009

Configurações do Render Interno - Blender

A renderização é o processo que constroi a imagem de saída a partir da informação da 3d View, VSE ou Node compositor, sozinho ou em combinação de uma com a outra. A cena de saída pode ser composta na node compositor ou na VSE em uma imagem final. Renderizar video é como renderizar imagens estáticas, exceto pelo numero de opções maiores à configurar. Contudo, não é uma boa prática pular diretamente para trabalhos de vídeo sem entender as bases de renderização de imagens estáticas.

Aspect Ratio

Quando se está planejando o padrão de saída da imagem, deve ser considerado qual o meio em que o trabalho será veiculado. Para comerciais de TV por exemplo, ou para site na WEB. No caso de comerciais para TV o Aspect ratio deve ser 4:3, enquanto que para webcast, a resolução deve está abaixo de 4:3. Se o trabalho é destinado a canais HD, então o aspect ratio deve ser de 16:9.
Para trabalhos de impressão, o aspect ratio depende do layout do gráfico na página. O aspect ratio poderá variar de uma medida de página cheia à algo como uma barra estreita e comprida com um aspect ratio de por exemplo 1:4.
Uma imagem destinada a uma página completa, naturalmente segue o formato da página da revista, que por padrão é de 5 x 7 ou 8 x 10 polegadas. Assim, o aspect ratio deve ser 5:7 ou 8:10.

Determinando a resolução

Depois de decidir o aspect ratio, você deve decidir sobre o tamanho da imagem em pixels, também conhecido como resolução da imagem. Essa seleção é feita no painel FORMAT, onde se seleciona o tipo de saída que se pretende para o processo de renderização. Para a resolução de TV tradicional (SD), já existe presets para estes formatos (NTSC: 720 x 480). Para outros tipos de midias, tais como HD, é importante conferir com a estação de TV para que se está trabalhando, qual é a correta resolução que se usa para o broadcasting.
Para impressos, multiplica-se o tamanho da imagem física pela resolução de impressão. A resolução de impressão é expressa em termos de pontos por polegadas (dots per inch- dpi) e tipicamente é de 150 dpi. Multiplica-se portanto a resolução de impressão desejada pela dimensão física do papel, para se ter a reslução final da imagem. Por exemplo, uma imagem de página inteira de uma revista popular com dimensão de 8,5 x 11 polegadas, multiplica-se essa dimensões por 150 dpi, resultando na resolução necessaria para a imagem que será de 1275 x 1650 pixels. Se você for realizar uma imagem de página cheia para essa revista, é necessario entrar com esses valores nos campos SIZE X e SIZE Y e usar 1(um) em ASP X e ASP Y.
Resumindo, é possível renderizar qualquer tamanho de imagem, limitado apenas pelo espaço de memória do seu PC.

Proxy Render

Uma imagem em baixa resolução que é utilizada com o propósito de teste é conhecida como imagem proxy. Em outras palavras, é um render de teste. No desenvolvimento do trabalho, com vários renders intercalados, não será necessario se preocupar com detalhes que consomem muito processamento e tempo. Em substituição ao resultado final, será realizado proxys renders, que é o render em tamanho reduzido da versão final da saída desejada. É possivel configurar as imagens proxys, selecionando as opções 25%, 50% e 75% no painel RENDER.

Border render

Se você está tentando ajustar uma porção de uma grande imagem, é possivel economizar tempo, evitando renderizar a imagem por completo. Na 3D view, escolhendo a vista da camera (opção 0), pressione Shift B para acionar o quadrado de seleção vermelho que irá definir a porção da imagem que será renderizada. Para definir a area, aperte o botão esquerdo do mouse e arraste, definindo a seleção desejada. Efetuado os testes, você pode desabilitar o border no painel RENDER, retornando para o render da imagem completa.

TRECHO DE TRADUÇAO LIVRE DO LIVRO:Foundation Blender Compositing

sexta-feira, 21 de agosto de 2009

Modelos de Iluminação computacionais 3D

O desenho de projetos de iluminação foi praticado por séculos e muito antes do advento da computação gráfica, em campos como o teatro, a fotografia, a cinematografia e a pintura. Os artistas da computação gráfica 3D têm muito a ganhar com o aprendizado da iluminação nestas artes tradicionais.
No mundo real, várias fontes de luz afetam a aparência dos objetos em um ambiente. Os modelos de iluminação tentam reproduzir estes efeitos. Um modelo de iluminação é uma representação matemática que aproxima os efeitos de interação entre os objetos sólidos e as fontes de luz. Para cada ponto da superfície do sólido, a fórmula computacional calcula o valor da cor usando as fontes de luz no modelo, a orientação e posição do objeto e o tipo de superfície.

Iluminação Global

Iluminação global(Global Illumination) é qualquer algoritimo de renderização que simula a inter-reflexão da luz entre as superficies presentes na cena. Quando renderizamos com algoritimos de iluminação global, não precisamos incluir outras fontes de luz para simular a iluminação indireta, pois o algoritimo já calcula a luz indireta, baseado na iluminação direta que chega a cada objeto. A técnica de iluminação global torna a luz no 3D muito mais similar a luz convencional utilizada na cinematografia.
Um fenomeno de luz conhecido com vazamento de cor (color bleeding)é encontrado em muitas cenas renderizadas com iluminação global. No nosso mundo real, o fenomeno de vazamento de cor sempre está acontecendo em nossos ambientes. Uma situação em que se vê mais facilmente este fenomeno é por exemplo em ambientes em que se encontram superficies de cor muito mais brilhantes que os objetos do seu entorno, tais como objetos brancos ou cinzas. Na imagem abaixo, percebe-se o vazamento da cor vermelha sobre o piso branco.

Direito autoral da imagem: www.homedosh.com/pt

Algumas vezes as renderizações em GI geram uma quantidade ireal de vazamento de cor, tal como aconteceu na imagem abaixo. O problema pode ser esolvido alterando os parametros da GI.




No caso do renderizador interno do Blender 3D, do qual faço uso nos meus trabalhos, a GI não está presente. Para se alcançar um resultado similar, podemos fazer uso de uma técnica que aproxima o resultado de um algoritmo com GI. Essa técnica é conhecida com Sky Dome e resulta de numa distribuição luminosa que consegue aproximar o efeito da luz solar na atmosfera. Para realizar o setup da iluminação, inclui-se uma mesh do tipo icosphere que servirá de base para realizar duplivert de um ponto de luz do tipo spot.

Para configurar a iluminação da sua cena, siga os seguines passos:

1- Incluir o mesh icosphere e escale-o para envolver a cena
2- Incluir uma luz do tipo spot.
3- Selecione a luz spot e a icosphere e parentei-os (CTRL +P)
4- No painel Object(F7) slecione as opções DUPLIVERTS e ROT
5- Certifique-se de que o os spots lights estão apontando para dentro dod domo, iluminando a cea.
6 - Caso estejam apontando para fora, no painel editing (F9), selecione FLIP NORMALS.
7 - Selecione o spot principal e configure da seguinte forma.
No painel Shadow and Spot :

•Habilite Buf.Shadows
•SpotSi= 70.0
•SpotBl= 0.4;
•ClipSta and ClipEnd values = 5 eand 30 respectivamente.
•Samples= 6.0
•Soft = 12
No painel lamp:

•Energy = 0.02

Esses valores podem ser ajustado, dependendo do número de vertices escolhidos para a icosphere.

Segue abaixo render obtido com esse setup descrito acima.



Radiosidade

O algoritmo de Ray Tracing é uma técnica sofisticada para o calculo da iluminação em ambientes reflexivos. A radiosidade, por outro lado, é uma técnica sofisticada para o calculo da iluminação em ambientes difusos. Muito mais do que apenas calcular raios de luz, o algoritmo de radiosidade executa cálculos computacionais do efeito da energia luminosa no ambiente. Esta energia chega das fontes de luz e das superfícies que são afetadas por estas fontes.

Para a realização destes cálculos, todas as superfícies no ambiente são divididas em minúsculas partes e cada uma delas interage com todas as outras. Cada superfície é tratada como emissor ou refletor. Este método de calculo inclui dois passos. O primeiro passo calcula as interações da energia luminosa entre todas as minúsculas partes e determina a percentagem de influencia que cada parte tem sobre a outra. O segundo passo calcula as cores da superfície que resulta das interações luminosas calculadas no primeiro passo.
Assim, a radiosidade pode ser calculada progressivamente, pois a luz salta várias vezes, redefinindo com maior precisão a simulação de uma iluminação real.
A radiosidade foi um dos primeiros métodos de iluminação Global a se tornar disponível nas primeiras ferramentas de render comerciais.