From BlenderWiki

Jump to: navigation, search
Blender3D FreeTip.gif
IMPORTANT! Do not update this page!
We have moved the Blender User Manual to a new location. Please do not update this page, as it will be locked soon.

Renderização com Radiosidade

Mode: Todos os Modos

Panel: contexto →Scene sub-contexto → Render Render

Hotkey: F10


Descrição

Vamos assumir que você tenha uma cena pronta, e que você quer renderizá-la com a Renderização com Radiosidade. A primeira coisa para se apegar quando estiver fazendo Radiosidade é que Nenhuma lâmpada é necessária, mas algumas Malhas com propriedades do Material emissor maiores que zero são requeridas, pelo fato destas serem as fontes de Luz. O Valor de Emit é encontrado dentro do painel Shaders na parte de baixo á direita (no sub-contexto de Material). Tipicamente, um valor de 0.5 ou menor dá uma irradiação suave.

Você pode Montar uma cena de testes como mostrada em (Configurações para teste de Radiosidade), e é relativamente fácil. Somente faça um grande cubo para o Ambiente, dê diferentes materiais para as paredes laterais, adicione um cubo esticado dentro dele, e adicione um plano com um valor não-zero de Emit próximo do teto, para simular uma lâmpada tipo área.

Você irá designar Materiais como usualmente, para os modelos de entrada. Os Valores de RGB dos Materiais definem a cor das "Zonas" (Patches) . O valor Emit de um Material define se uma Zona é carregada com energia no início da Simulação de Radiosidade. O Valor de Emit é multiplicado com a área da "Zona" (Patch) para calcular o montante inicial de energia não disparada.

Faces Emissoras
Cheque o número de Malhas ou “emissores” no Console do Blender ! Se estiver em Zero nada de interessante poderá acontecer. Você precisa ao menos de uma Zona Emissora para ter Luz e por consequência a solução de radiosidade.


Habilitando a Radiosidade

Habilitando a Radiosidade dentro dos botões de Renderização.

O Botão Radio no painel de Render habilita a calculação de Radiosidade como parte do processo de Renderização. Isto vai automaticamente considerar todos os objetos na cena , e estes materiais com um valor de Emit: > 0 irão emitir luz em outros objetos.

Opções de Materiais

Quando estiver designando materiais, tenha certeza de que todos eles possuem o botão Radio habilitado dentro do painel Links and Pipeline.

Você também precisará ter a configuração Amb para cada material > 0 para que eles recebam a luz emitida, pelo fato da luz emitida se tornar parte da luz ambiente. A configuração de Ambient é encontrada no painel Shaders.

Objetos que emitem, ou irradiam Luz, deverão ter o valor de Emit > 0 também, as configurações de Emit são encontradas no painel de Shaders.

Pelo fato de todos os objetos realisticamente refletirem algum tipo de Luz de volta ao ambiente, uma boa prática geral é sempre configurar, para cada material dos Objetos:

  • Habilite Radio
  • Configure Ambient > 0, tipicamente 0.1
  • Configure Emit > 0, tipicamente 0.1


Opções de Renderização

Botões de Radiosidade para a Renderização com Radiosidade.
Hemires
A resolução do hemicubo; as imagens codificadas com cores são utilizadas para encontrar os Elementos que são visíveis a partir da “Zona-de-Disparo”, e portanto recebem energia. Os Hemicubos não são guardados, mas são recalculados cada vez para cada Zona que dispara energia. Valor de Hemires determina a qualidade da Radiosidade e adiciona tempo significativamente para o momento da solução.
Max Iterations
O Número Máximo de iterações da solução de Radiosidade. Caso isso seja configurado em Zero, a Radiosidade vai continuar os seus cálculos até que o critério de convergência seja encontrado. Você é altamente aconselhado a configurar este valos para algum número não-zero, usualmente maior que 100.
Mult, Gamma
O espaço de cor a Solução de Radiosidade é bem mais detalhado do que poderia ser expresso em profundidade de cores com valores simples de RGB de 24 bits RGB. Quando os elementos são convertidos em faces, os seus valores de energia são convertidos para o espaço de cores RGB usando os valores Mult e Gamma. Com o valor Mult você pode multiplicar o valor de energia, com o valor de Gamma você pode alterar o contraste dos valores de energia.
Convergence
Quando o montante de energia não disparada em um ambiente é menor que este valor, A solução de Radiosidade para. O valor de energia não disparada inicialmente em um Ambiente é multiplicado pela área total das Zonas. Durante cada iteração, alguma parte da energia é absorvida, ou desaparece quando o ambiente não é um volume fechado. No Sistema de coordenada padrão do Blender um emissor típico (como no exemplo dos arquivos) possui uma área relativamente pequena. O Valor de convergência é dividido por um fator de 1000 antes dos testes por esta razão.


Exemplos

Configuração para teste de Radiosidade.

A renderização vai tomar mais tempo que o usual, dentro do console vocêirá notar um contador subindo. O resultado vai ser bem pobre, veja na imagem (Renderização com Radiosidade para Malhas grosseiras (esquerda) e para Malhas Refinadas (direita), na esquerda) porque a renderização da radiosidade automática não faz o refinamento adaptativo ! Selecione todas as Malhas, uma após a outra, e em Modo de Edição subdivida-as pelo menos três vezes. O ambiente, que muito maior que as outras Malhas, você poderá até subdividir quatro vezes. Configure o valor Max Iterations um pouco mais alto, 300 ou mais. Tente renderizar novamente (F12). Desta vez a renderização vai ser mais demorada ainda, mas os resultados vão ser bem melhores, com sombras suaves e vazamento de cores, veja na imagem (Renderização com Radiosidade para Malhas grosseiras (esquerda) e para Malhas Refinadas (direita), a direita).

Renderização com Radiosidade para Malhas grosseiras (esquerda) e para Malhas Refinadas (direita).
Nota
Na Renderização com Radiosidade o Blender age como se fosse uma Renderização normal, isto significa que texturas, Curvas, Superfícies, e mesmo objetos em que foram utilizadas técnicas como Dupliframes são manipulados corretamente.


Dicas

Por favor note que a emissão de Luz é governada pela direção das normais e uma Malha, portanto o plano de emissão de Luz deverá ter um normal apontando para-baixo e o cubo externo (o ambiente) deverá ter as suas normais apontando para dentro, (vire-as!). Mude para o sub-contexto Radiosity Manual-Part-XII-RadButton.png e dentro do contexto Shading. Os painéis, mostrados em (Botões de Radiosidade para Renderização com Radiosidade ), são dois: Radio Rendering que governa a Radiosidade quando utilizada como ferramenta de renderização (o caso presente) e Radio Tool, que governa a Radiosidade como ferramenta de modelagem (veja a próxima seção).

Detalhes Técnicos

Durante os anos oitenta e no começo dos anos noventa, a Radiosidade foi um assunto quente na computação gráfica 3D. Muitos métodos diferentes foram desenvolvidos, o que obteve mais sucesso dentre essas soluções foi o método baseado no “Refinamento Progressivo” com um esquema de “subdivisão adaptativa”. E este é o que o Blender utiliza. Para ser capaz de tirar o máximo proveito do método da ferramenta de Radiosidade do Blender, é importante entender os seguintes princípios:

  • Método do Elemento Finito
Muitos métodos de simulação ou computação gráfica assumem uma simplificação da realidade com “elementos finitos”. Para uma solução visualmente atrativa (e até cientificamente comprovada), não é sempre necessário mergulhar em um nível molecular de detalhes. Ao invés, você poder reduzir o seu problema para um número finito de elementos representativos bem -descritos. E é um fato comum que esses sistemas rapidamente se convergem em uma solução estável e confiável. O método de Radiosidade é um típico exemplo de um método de elemento finito tanto quanto qualquer face é considerada um “elemento finito”, e sua emissão de Luz é considerada como um todo.


  • Zonas e Elementos
Dentro do Universo da Radiosidade, nós distinguimos entre dois tipos de faces 3D :
  • Zonas ou Patches.
Estes são triângulos ou quadrados que são capazes de “enviar energia”. Para uma solução rápida é importante ter poucas dessas Zonas o quanto for possível. Mas, para acelerar as coisas, a energia é modelada como se estivesse sido irradiada pelo centro do Patch; o tamanho dos patches ou zonas deverá então ser pequeno o suficiente para fazer disto uma distribuição realística de energia. (Por exemplo, quando um pequeno objeto está localizado acima do centro do Patch, toda a energia que o Patch envia para o ambiente será obscurecida por este objeto, mesmo se o Patch ou Zona for mais largo ! Este Patch ou zona deverá ser subdividido em patches ou zonas menores).


  • Elementos.
Estes são triângulos ou quadrados que recebem energia. Cada elemento é associado com um Patch. De fato, Patches são subdivididos em muitos pequenos elementos. Quando um elemento recebe energia, ele absorve parte desta energia (dependendo de dua cor) e passa a energia restante de volta ao patch, para irradiação futura. Pelo fato dos elementos serem também faces que mostramos, é importante tê-las o menor poassível, para expressar pequenos locais sombreados e gradientes de Luz.
  • Refinamento Progressivo
Este método inicia examinando todos os Patches disponíveis. O Patch com a maior energia não-disparada é selecionado para disparar toda a sua energia para o ambiente. Os elementos no ambiente recebem esta energia, e a adicionam para a energia “não-disparada” dos seus Patches associados. Então o processo inicia novamente para o Patch que possui “Agora” a maior parte da energia “não-disparada”. Este processo continuará para todos os Patches até que mais nenhuma energia seja recebida, ou até que a energia “não-disparada” tenha convergido abaixo de um certo valor.
  • O Método do Hemicubo
A calculação de quanto de energia cada Patch dá para um elemento é feita através do uso de “hemicubos”. Exatamente localizado no centro do patch, o hemicubo (literalmente “meio cubo”) consiste de 5 pequenas imagens do ambiente. Para cada pixel nestas imagens, um certo elemento visível é codificado com uma cor, e o montante de energia transmitida pode ser então calculado. Especialmente com o uso de hardware especializado, o método do hemicubo pode ser acelerado significativamente. No Blender, contudo, as calculações do hemicubo são feitas no “software”. Este método é de fato uma simplificação e otimização da fórmula “real” de Radiosidade (fator de diferenciação de formas). Por esta razão, a resolução do hemicubo (o número de pixels de suas imagens) é aproximado e sua configuração cuidadosa é importante para prevenir artefatos serrilhados.
  • Subdivisão Adaptativa
Pelo fato dos tamanho dos Patches e elementos em uma Malha definirem a qualidade da solução de Radiosidade, os esquemas de subdivisão foram desenvolvidos para definir um tamanho otimizado para os Patches e Elementos. O Blender possui dois métodos de subdivisão automática:
  • 1. "Subdivide-shoot Patches" (Subdivisão de Zonas de disparo).
Disparando energia para o ambiente, e comparando os valores do hemicubo com o valor do fator de forma matemática”, erros podem ser detectados que indiquem uma necessidade para uma subdivisão futura da Zona ou Patch. Os resultados são Zonas ou Patches menores e um tempo mais longo para a solução, mas um alto realismo da solução.
  • 2. "Subdivide-shoot Elements" (Subdivisão de Elementos de disparo).
Disparando energia para o ambiente, e detectando mudanças de energia altas (gradientes) dentro de um Patch ou Zona, os Elementos deste Patch são subdivididos um nível extra. Os resultados são elementos menores e um tempo de solução maior, e talvez menos serrilhado, mas um alto nível de detalhe.
  • Amostragem e Pós Processamento
A Subdivisão de Elementos no Blender é “balanceada”, isso significa que cada elemento difere-se no máximo em um nível de subdivisão com os seus vizinhos. Isto é importante para uma amostragem correta e prazerosa da solução de Radiosidade com faces acertadas para sombreamento tipo Gouraud. Usualmente depois da solvência, a solução consiste em centenas de pequenos elementos. Filtrando esse elementos e removendo duplicatas, o número de elementos pode ser reduzido significantemente sem destruir a qualidade da solução de Radiosidade. O Blender guarda os valores de energia em valores de “ponto flutuante”. Isto faz com que configurações de situações dramáticas de luzes sejam possíveis, pela mudança da multiplicação padrão e valores de gama ( este é o mesmo princípio que imagens HDR utilizam com placas gráficas modernas ou GPUs).
  • Radiosidade para Modelagem
O passo final poderá ser traçar as Malhas de entrada com a solução de Radiosidade (botão Replace Meshes). Neste momento as cores dos vértices são convertidas de “ponto flutuante” para valores de 24 bits RGB. Os antigos Objetos de Malha são deletados e substituídos comum ou mais Objetos de Malhas novas. Você então poderá deletar os dados de radiosidade com Free Data. Os novos Objetos ganham um Material padrão que permite a renderização imediata. Duas configurações em um Material são importantes para trabalhar com " vertex colours" (cores de vértices):
  • VColPaint.
Esta opção trata as cores dos vértices como uma substituição para os valores normais de RGB dentro do Material. Você deverá adicionar Lâmpadas para poder ver as cores da Radiosidade. De fato, você pode usar o sombreamento e iluminação do Blender como usual, e ainda assim ter um “look” bacana de Radiosidade na Renderização.
  • VColLight.
As cores dos vértices são adicionadas para a Luz quando estiver Renderizando. Mesmo sem lâmpadas, você pode ver os resultados. Com esta opção, as cores dos vértices são prá-multiplicadas pelas cores RGB do Material. Isto permite um ajuste mais fino do montante de “Luz-de-Radiosidade” na renderização final.

Como qualquer coisa no Blender, as configurações de Radiosidade são guardadas em um Bloco de dados ou datablock. Este bloco está ligado á cena, e cada cena no Blender pode ter um “bloco” de Radiosidade diferente. Use esta facilidade para dividir ambientes complexos em cenas com resolvedores de Radiosidades independentes.