• Nenhum resultado encontrado

ANÁLISE DE DESEMPENHO DE APLICAÇÕES EM AMBIENTE DE CLUSTER DE ALTO DESEMPENHO, COM FOCO EM VISUALIZAÇÃO CIENTÍFICA

N/A
N/A
Protected

Academic year: 2021

Share "ANÁLISE DE DESEMPENHO DE APLICAÇÕES EM AMBIENTE DE CLUSTER DE ALTO DESEMPENHO, COM FOCO EM VISUALIZAÇÃO CIENTÍFICA"

Copied!
104
0
0

Texto

(1)

Felipe C. C. Calori Thiago R. M. Bitencourt

ANÁLISE DE DESEMPENHO DE APLICAÇÕES EM AMBIENTE DE

CLUSTER DE ALTO DESEMPENHO, COM FOCO EM VISUALIZAÇÃO

CIENTÍFICA

(2)

Thiago R. M. Bitencourt

ANÁLISE DE DESEMPENHO DE APLICAÇÕES EM AMBIENTE DE

CLUSTER DE ALTO DESEMPENHO, COM FOCO EM VISUALIZAÇÃO

CIENTÍFICA

Trabalho de Conclusão de curso apresentado como requisito obrigatório para obtenção do título de Bacharel em Ciências da Computação da FAA – Faculdades Anglo-Americano.

Orientador: Prof. Esp. João P. L. Barbosa Coorientador: Prof. Msc. Miguel D. Matrakas

(3)

FELIPE CÉSAR DA COSTA CALORI

THIAGO RICARDO MAY BITENCOURT

ANÁLISE DE DESEMPENHO DE APLICAÇÕES EM AMBIENTE DE

CLUSTER DE ALTO DESEMPENHO, COM FOCO EM VISUALIZAÇÃO

CIENTÍFICA

Trabalho de Conclusão de Curso aprovado como requisito obrigatório para obtenção do título de Bacharel em Ciências da Computação da FAA – Faculdades Anglo-Americano, pela seguinte banca examinadora:

Prof. Esp. João Paulo de Lima Barbosa FAA – Faculdades Anglo-Americano (Orientador)

Prof. Msc. Alessandra Bussador FAA – Faculdades Anglo-Americano

Prof. Msc. Miguel D. Matrakas FAA – Faculdades Anglo-Americano

(4)

Agradeço antes de tudo a Deus por minha saúde e pela possibilidade de estar vivendo esta etapa muito importante da minha vida. Agradeço imensamente aos meus pais Celso João Calori e Aparecida de Fátima da Costa Calori por terem me apoiado em meus estudos e incentivado a ingressar e persistir no curso de Ciência da Computação.

Também gostaria de agradecer a meus colegas Thiago R. M. Bitencourt, Marionildo Ferronatto, Cléverson A. Souza,Guilherme C. Lopes, Rafael Ranieri dos Santos, Marcio B. Avila, os quais compartilharam de minhas alegrias, tristezas e dificuldades e sempre me apoiaram.

Agradeço todos os professores que nos auxiliaram no desenvolvimento do projeto, em particular aos professores João Paulo de Lima Barbosa, Miguel D. Matrakas, Jorge Aikes Junior, Alessandra Bussador, Luciano S. Cardoso, que tiveram paciência e compreensão e dividiram comigo parte de seus conhecimentos para resolver as diversas dificuldades encontradas no decorrer do projeto.

Gostaria de agradecer em especial ao professor e orientador João Paulo de Lima Barbosa, que sempre esteve junto nas dificuldades dando todo o apoio e incentivo, foi uma peça muito importante para alcançarmos nosso objetivo.

Por fim agradecer ao meu colega Thiago R. M. Bitencourt, com o qual juntos conseguimos finalizar este projeto.

(5)

Agradeço primeiramente a Deus, já que sem a sua ajuda não teria alcançado nenhum dos meus objetivos e não teria a oportunidade de estar onde estou.

Agradeço a meus pais, Rosvane M. M. Bitencourt e Jorge M. Bitencourt, que sempre me apoiaram em meus objetivos e sempre me incentivaram a ser uma pessoa melhor e me esforçar nas coisas que faço.

Agradeço a todos os professores do curso, em especial ao professor João P. L. Barbosa, ao professor Miguel D. Matrakas e a professora Alessandra Bussador, que sem a ajuda o desenvolvimento desse trabalho seria um caminho muito mais árduo.

Agradeço aos colegas de turma, com os quais passei bons momentos e tive ótimas experiências. Um agradecimento especial aos amigos Marionildo Ferronatto, Felipe C. C. Calori, Marcio B. Avila, Cleverson A Souza, Guilherme C. Lopes e Rafael Ranieri dos Santos, os quais me proporcionaram grandes momentos de descontração e alegria e que fizeram com que esses 4 anos valessem a pena, amigos pelos quais tenho grande consideração e pretendo levar para a vida toda.

E por fim agradeço ao Felipe C. C. Calori, por dividir comigo a tarefa de elaboração deste trabalho e por todo o seu esforço.

(6)

O projeto tem como principal objetivo demonstrar o ganho de desempenho alcançado ao executar uma ferramenta de visualização científica em um ambiente de cluster de alto desempenho. A visualização científica consiste em transformar uma grande quantidade de dados, obtidos através de simulações, métodos matemáticos e outras técnicas, em imagens realistas com objetivo de facilitar a extração de informações e conhecimento a partir dessas imagens. O processo de visualização científica consiste em três etapas, são elas: a obtenção dos dados, através de sensores, simulações ou métodos matemáticos; o processamento dos dados adquiridos, que é feito de acordo com os resultados que se deseja obter e; pós-processamento que consiste em sintetizar ou renderizar as imagens e exibi-las. Este trabalho trata especificamente da renderização de imagens utilizando a técnica de Ray-Tracing e se propõem a avaliar o desempenho de uma ferramente que implementa essa técnica, com o objetivo de demonstrar o ganho de desempenho ao sintetizar uma imagem em um ambiente de cluster de alto desempenho. Um ambiente de cluster de alto desempenho é capaz de suprir grandes demandas de processamento e consiste em dois ou mais computadores operando em paralelo, tornando assim a execução de uma tarefa mais rápida. A ferramenta de renderização utilizada é a ferramenta POVRay, que é livre e implementa a técnica de

Ray-Tracing. Essa ferramenta tem como característica a síntese de imagens

realistas e consequentemente demanda de grande poder computacional. O processo de renderização de uma imagem pode tomar horas ou até mesmo dias, dependendo da complexidade da imagem. Ao executar a tarefa de renderização em um ambiente de alto desempenho, o tempo de execução diminui em função do número de computadores utilizados. Portanto, foi possível demonstrar os ganhos de desempenho que a ferramenta POVRay apresenta quando submetida a execução em um ambiente de cluster de alto desempenho, bem como uma série de dificuldades e limitação encontradas no uso e implementação da mesma.

Palavras-chave: Visualização Científica. Renderização de Imagens. Ray-Tracing.

(7)

The project, has as it main's objective to demonstrate the performance achieved by running a scientific visualization tool in an environment of high-performance cluster. The scientific visualization consists in transforming a large amount of data, obtained through simulations, mathematical methods and other techniques, in realistic images in order to facilitate the information and knowledge extraction from these images. The scientific visualization process consists of three stages, namely: obtaining data, based on sensors, simulation or mathematical methods; processing the acquired data, which is done according to the results that one expected to obtain and; post processing is synthesizing and rendering the images and display them. This project deals specifically with the rendering of images using the Ray-Tracing technique and proposes to evaluate the tool's performance that implements this technique, aiming to demonstrate the performance gain by synthesizing an image in a cluster environment of high performance. A high performance cluster environment is capable of supply high demands of processing and consists of two or more computers operating in parallel, making the task performance faster. The rendering tool used is the POVRay, which is free and implements the Ray-Tracing technique. This tool is characterized by realistic images synthesis and consequently an large demand of processing. The image rendering process can take hours or even days, depending on the image complexity. When performing rendering task in a high performance environment, the runtime decreases depending on the number of computers used. Therefore, it was possible to demonstrate the POVRay's tool performance gain presented when submitted to execution in a high performance cluster environment, and the number of obstacles and limitations found in this approach.

Key words: Scientific Visualization. Rendering images. Ray-Tracing. High Performance Cluster. POVRay. Performance Analysis.

(8)

Figura 1: Reflexão difusa ideal sobre uma superfície...13

Figura 2: Traçado de Raios...16

Figura 3: Exemplo de uso de luz refletora...21

Figura 4: Reflexão de raio de luz...23

Figura 5: Reflexão Difusa...24

Figura 6: Reflexão Especular...26

Figura 7: Exemplo de refração...28

Figura 8: Efeito da Transparência...29

Figura 9: Recursividade no Ray-Tracing...31

Figura 10: Cluster de Alta disponibilidade – HA...35

Figura 11: Cluster Beowulf...38

Figura 12: Cluster de Estação de Trabalho - COW...40

Figura 13: Exemplo de imagem sintetizada com POVRay...50

Figura 14: Topologia Estrela...52

Figura 15: woodbox.pov sintetizada...71

Figura 16: skyvase.pov sintetizada...73

(9)

Tabela 1: Componentes de uma mensagem MPI ...42

Tabela 2: Descrição dos equipamentos utilizados...51

Tabela 3: Nome das máquinas que compõem o cluster...54

Tabela 4: IP atribuído a cada nó...56

Tabela 5: Resultado da renderização da imagem woodbox.pov (mono processado) 70 Tabela 6: Estatística da renderização da cena woodbox.pov...70

Tabela 7: Resultado da renderização da imagem skyvase.pov (mono processado). 72 Tabela 8: Estatística da renderização da cena skyvase.pov...72

Tabela 9: Resultado da renderização da imagem chess2.pov (mono processado)...73

Tabela 10: Estatística da renderização da cena chess2.pov...74

Tabela 11: Resultados da renderização da imagem woodbox.pov (Cluster)...76

Tabela 12: Eficiência woodbox.pov...77

Tabela 13: Resultados da renderização da imagem skyvase.pov (Cluster)...77

Tabela 14: Eficiência skyvase.pov...78

Tabela 15: Resultados da renderização da imagem chess2.pov (Cluster)...79

Tabela 16: Eficiência chess2.pov...79

(10)

COW Cluster of Workstation – Cluster de estações de trabalho

CPU Central Processing Unit – Unidade Central de Processamento

GPL General Public Licence – Licença Publica Geral

HA High Availability – Alta Disponibilidade

HD Hard Disk – Disco Rígido

HPC High Performance Cluster – Cluster de Alto Desempenho

IDE Integrated Drive Eletronic

IP Internet Protocol – Protocolo de Internet

LABRO Laboratório de Robótica

LAM Local Area Network – Rede Local

LB Load Balancing – Balanceamento de Carga

LTS Long Term Suport – Suporte Estendido

LVS Linux Virtual Server – Servidor Virtual Linux

MPI Message Passing Interface – Interface de Troca de Mensagens

MPICH MPI Chamaleon

NASA North American Spacial Agenci – Estação Espacial Norte Americanca

NFS Network File System – Sistema de Arquivos de Rede

PC Personal Computer – Computador Pessoal

PVM Paralel Virtual Machine – Máquina Virtual Paralela

SATA Serial Advance Tecnologi – Tecnologia Serial Avançada

SO Sistema Operacional

SSI Single Sistem Image – Imagem Única do Sistema

(11)

1 INTRODUÇÃO...1 1.1 MOTIVAÇÃO...5 1.2 OBJETIVO GERAL...5 1.3 OBJETIVOS ESPECÍFICOS...6 1.4 ORGANIZAÇÃO DO TRABALHO...6 2 VISUALIZAÇÃO CIENTÍFICA...8

2.1 FERRAMENTAS DE VISUALIZAÇÃO CIENTÍFICA...10

2.2 TÉCNICAS DE VISUALIZAÇÃO...11 2.3 SÍNTESE DE IMAGENS...12 2.3.1 Radiosity...12 2.3.2 Ray-Tracing...15 2.3.2.1 Iluminação...18 2.3.2.2 Emissores de luz...19 2.3.2.3 Reflexões...21 2.3.2.3.1 Reflexão Ambiente...23 2.3.2.3.2 Reflexão Difusa...24 2.3.2.3.3 Reflexão Especular...25 2.3.2.4 Refração...27 2.3.2.4 Transparência...29 2.3.2.5 Ray-Tracing recursivo...30 3 CLUSTER DE COMPUTADORES...32

3.1 CLUSTERS DE ALTA DISPONIBILIDADE – (HA)...34

3.2 CLUSTER DE ALTO DESEMPENHO DE COMPUTAÇÃO – (HPC)...36

3.2.1 Vantagens...36

3.2.2 Cluster Beowulf...37

3.2.3 Cluster de estações de trabalho - COW...39

3.3 COMPUTAÇÃO PARALELA...40

3.3.1 MPI - Message passing interface...41

3.3.2 PVM - Parallel virtual machine ...43

3.4 MEDIDAS DE DESEMPENHO...44

4 POVRAY...48

4.1 VERSÃO...48

4.2 ARQUIVO POV...49

(12)

5.2 ESTRUTURA DE REDE...52

5.3 SISTEMA OPERACIONAL...52

5.4 CONSIDERAÇÕES SOBRE A ARQUITETURA DO CLUSTER IMPLANTADO ...54 5.5 CONFIGURAÇÃO DA REDE...56 5.5.1 Arquivo /etc/network/interfaces...57 5.5.2 Arquivo /etc/hosts...57 5.6 CONFIGURAÇÃO DOS NÓS...58 5.6.1 Configuração do nó mestre...58 5.6.1.1 NFS...58 5.6.1.2 SSH...60 5.6.1.3 MPI...61 5.6.1.4 Instalação do POVRay...64

5.6.2 Configuração dos nós escravos...65

5.6.2.1 NFS...65

5.6.2.2 SSH...66

5.7 DESEMPENHO DO CLUSTER...66

6 TESTES E RESULTADOS...68

6.1 AMBIENTE MONO PROCESSADO...69

6.1.1 woodbox.pov...70

6.1.2 skyvase.pov...71

6.1.3 chess2.pov...73

6.2 AMBIENTE DE ALTO DESEMPENHO...75

6.2.1 woodbox.pov...75 6.2.2 skyvase.pov...77 6.2.3 chess2.pov...79 7 CONCLUSÕES...83 7.1 DIFICULDADES...86 7.2 TRABALHOS FUTUROS...87 REFERÊNCIAS...90

(13)

1 INTRODUÇÃO

As tecnologias de hardware e software estão cada vez mais presentes em estudos e pesquisas científicas nas diversas áreas de conhecimento. Essas tecnologias proporcionam recursos necessários para realizar simulações complexas em estudos específicos, permitindo adquirir um grande conjunto de dados. Porém esses dados geralmente não estão em uma forma amigável ao entendimento humano, isso porque a quantidade de dados gerados é normalmente muito maior que a capacidade humana de assimilação, ou seja, a quantidade de dados é muito maior que o cérebro humano é capaz de entender e extrair informações de maneira rápida e simples. Porém sabe-se que o cérebro humano possui grande habilidade de estabelecer e reconhecer padrões visuais a partir de imagens (LOPES, 2007). Desta forma, é mais fácil para uma pessoa extrair conhecimento a partir de uma imagem ao invés de um conjunto complexo de dados, e uma técnica para transformar esses conjuntos de dados em imagens é a visualização científica.

Visualização Científica utiliza técnicas e ferramentas de computação gráfica e processamento de imagens e consiste no processo de transformar dados numéricos em uma imagem para obter um melhor entendimento dos dados, pois a forma como o usuário percebe e interage com uma ferramenta de visualização pode influenciar o entendimento dos dados e permite observar, procurar, explorar, filtrar, descobrir e entender grandes volumes de dados rapidamente e de forma mais eficiente (SILVA, 2006). De uma forma simplificada, a partir dos dados gerados por um determinado fenômeno, por exemplo, um método matemático, é gerada uma imagem para que um ser humano possa interpretar os dados de maneira mais fácil. Para exemplificar, podemos imaginar uma grande tabela de dados que precisam ser avaliados. Observando apenas a tabela se torna difícil a extração de informações úteis, porém se essa tabela for usada para gerar um gráfico a partir dos dados disponíveis, a extração de informação se torna muito mais fácil, já que para um ser humano é muito mais simples interpretar e analisar uma imagem ao invés de uma grande tabela de dados.

(14)

computação que busca transformar o simbólico em geométrico, permitindo aos investigadores observar suas simulações e cálculos, oferecendo um método para visualizar o que não está visível. Por fim, enriquece o processo de descoberta científica e promove reflexões profundas e inesperadas.

A visualização é amplamente utilizada em áreas como medicina, meteorologia, engenharia, astronomia, matemática, física, computação gráfica entre outros. Além de ser usada nestas áreas, também é um campo de muito estudo e pesquisa e está em constante crescimento.

Para gerar uma visualização científica é feito um processo de três etapas, que consistem em: obtenção dos dados seja através de sensores, simulações, métodos matemáticos ou fontes da dados; processamento dos dados de entrada através de técnicas de computação como o processamento de métodos matemáticos, processamento de imagens, computação gráfica entre outros, dependendo do resultado que se deseja obter; pós-processamento que consistem em desenhar a imagem em uma saída, como por exemplo, um monitor ou um arquivo de imagem.

A técnica de visualização cientifica consiste em transformar em imagens uma grande quantidade de dados gerados a partir de determinados fenômenos ou técnicas. Para desenhar ou sintetizar as imagens na etapa de pós processamento são utilizadas técnicas da computação gráfica que, muitas vezes, tem como objetivo final criar imagens sintéticas realistas, ou seja, imagens que se aproximam da realidade o máximo possível. A área que estuda o processo de produção dessas imagens é chamada Rendering (ou Renderização). Azevedo (2003) diz que a computação gráfica trata da síntese de imagens através do computador e que sintetizar uma imagem é criá-la definindo os dados dos objetos que compõem uma determinada cena através da geometria da cena e das informações dos materiais, como cores e texturas, das condições de iluminação da cena e da posição de observação. Rendering é definido por Azevedo (2003) como “realismo visual” que pode ser interpretado como conversão de dados em uma imagem realística ou sintetizar um objeto ou cena até ter-se deles uma aparência de algo real e não de formas inteiramente criadas no computador, ou seja, o rendering no processo de criação de imagens sintéticas é a fase de introdução do realismo fotográfico nas cenas.

(15)

Algumas aplicações como, simulações, entretenimento, jogos, estudo da medicina, entre outros, exigem realismo e qualidade nas imagens. Essa qualidade de imagem pode ser obtida através de técnicas de rendering como a técnica de

Ray-Tracing que permite a obtenção de imagens geradas com alto grau de realismo

(CÂMARA, 1997).

De acordo com Azevedo (2003) a técnica de Ray-Tracing é bastante conhecida principalmente pelas possibilidades de inclusão de sombras, reflexão, refração e texturas nas cenas. Diz ainda que a técnica de Ray-Tracing é uma das mais populares e poderosas técnicas de síntese de imagens de fácil implementação, já que possibilita a representação de cenas complexas com muitos objetos e muitos efeitos, tais como sombras e reflexões.

Basicamente, a técnica do Ray-Tracing consiste em traçar raios que partem do olho do observador à cena e seguir estes raios através da cena até um ponto de luz. Para cada um dos raios disparados deve-se calcular a interseção com as primitivas que compõem a cena a fim de determinar a cor final de cada ponto (BARBOSA, 2011).

Os resultados da técnica de Ray-Tracing é bastante satisfatório, porém uma desvantagem do método é o alto custo computacional já que é baseado em iluminação pixel a pixel e recursivo, o que torna difícil seu uso em aplicações em tempo real (BARBOSA, 2011) .

A qualidade de uma imagem sintetizada através de Ray-Tracing está diretamente relacionada ao tempo que este levará para renderizar uma cena (RIECK, 2008). Portanto, para se obter um resultado satisfatório e em tempo hábil é necessário utilizar uma máquina capaz de calcular os dados com eficiência e agilidade e com grande capacidade de processamento gerando assim, imagens de alta qualidade. Contudo, esses equipamentos tem um custo consideravelmente elevado e algumas vezes se torna inviável em projetos de médio e pequeno porte.

Porém, Barbosa (2011) diz que o algoritmo de Ray-Tracing é totalmente paralelizável, já que a computação de um raio de luz que atravessa a cena não possui qualquer dependência com a dos demais. Levando isso em consideração, uma alternativa para tornar acessível o uso de equipamentos com um processamento igualmente elevado com custo relativamente baixo, é a utilização de

(16)

sistema formado por dois ou mais computadores, que utiliza de maneira conjunta os recursos dessas máquinas para dividir as tarefas executando-as em paralelo e aumentando o desempenho. Para Rebonatto (2004), na técnica do processamento paralelo, as tarefas grandes são divididas em tarefas menores e executadas simultaneamente em vários processadores. As tarefas são divididas em cada computador fazendo com que as partes trabalhem como apenas uma máquina com desempenho bastante elevado, possibilitando a realização de processamentos que até então apenas computadores de alto desempenho seriam capazes de executar e com relação custo benefício satisfatório.

Do ponto de vista computacional, é possível a implementação de vários tipos de clusters, dentre os quais podemos citar: cluster de alto desempenho, alta disponibilidade e balanceamento de carga. Os clusters podem ser utilizados para diversos tipos de aplicações, por exemplo, um cluster de alto desempenho geralmente é um recurso utilizado para aplicações que necessitam de uma grande quantidade de processamento, tais como previsões meteorológicas, simulações geométricas, renderização de imagens e vídeos e até mesmo visualização científica.

O sistema operacional, em um ambiente de cluster, é responsável por controlar os recursos, monitorar cada computador da rede e medir o desempenho do cluster. Cada tipo de cluster deve utilizar um sistema operacional adequado. Além disso, é necessária a utilização de um software para que seja feita a distribuição de processamento. Em um ambiente de cluster cada computador recebe a nomenclatura de nó ou nodo e esses nós são conectados através de uma rede, formando assim um sistema distribuído, que é definido por Pitanga (2008) como um conjunto de elementos que se comunicam através de uma rede de interconexões com o objetivo de melhorar a comunicação incrementando o desempenho da comunicação entre processos por meio de um software. A rede do

cluster é criada de forma que seja possível o acréscimo e a retirada de um nó, sem

a interferência no funcionamento do cluster, ou seja, a rede possui característica de escalabilidade.

A visualização científica é um processo que demanda grande poder computacional, e um ambiente de cluster de alto desempenho consegue suprir essa demanda de processamento. De acordo com Tanenbaun (2007), sistemas de

(17)

ambiente de cluster se tornam populares quanto à relação custo/beneficio, ou seja, é possível atingir grandes capacidades de processamento com um custo relativamente baixo se comparados a supercomputadores. Portanto, esse trabalho tem por objetivo analisar aplicações de visualização científica com alta demanda por processamento e avaliar o seu desempenho quando executadas em um ambiente de cluster de alto desempenho.

1.1 MOTIVAÇÃO

Como visto anteriormente, aplicações de visualização cientifica são sistemas complexos e que demandam de grande quantidade de processamento. Para essas aplicações terem um desempenho eficiente e em tempo hábil, necessita-se utilizar computadores com capacidades para suprir o processamento necessário, e geralmente esses equipamentos tem um custo elevado. Portanto este trabalho se propõem a implantar e testar um ambiente de cluster de alto desempenho que seja capaz de oferecer o processamento necessário para executar de forma eficiente as aplicações de visualização cientifica, demonstrando e analisando o desempenho dessas aplicações. O cluster implantado, após a conclusão deste trabalho, estará disponível para pesquisas e desenvolvimento de trabalhos futuros no laboratório de robótica (LABRO) da instituição.

1.2 OBJETIVO GERAL

O objetivo geral desse trabalho é implantar um ambiente de cluster de alto desempenho, utilizando para isso microcomputadores do tipo PC disponíveis na instituição, e avaliar o desempenho de aplicações de software voltados a visualização cientifica, rendering de imagens e método dos elementos finitos quando submetidos a execução em ambientes de cluster e realizar um comparativo dessa mesma aplicação executada em um único microcomputador. Neste trabalho será tratado principalmente o estudo e a avaliação de desempenho da sintetização de imagens (renderização), portanto os estudos e análises referentes a métodos dos elementos finitos e as demais áreas da visualização científica fica a cargo de

(18)

trabalhos futuros.

1.3 OBJETIVOS ESPECÍFICOS

Este trabalho define os seguintes objetivos específicos:

Estudar os conceitos de visualização científica, renderização com Ray

Tracing e cluster de alto desempenho a fim de compreender os seus

propósitos.

Conhecer e entender a técnica de Ray-Tracing.

• Buscar ferramentas de software que implementam a técnica de

Ray-Tracing voltadas para ambiente de cluster de alto desempenho.

Identificar as ferramentas de cluster mais adequadas para o problema para que o ambiente possa oferecer melhor suporte à aplicação em teste. • Implantar um ambiente de cluster de alto desempenho que seja adequado

às aplicações que serão submetidas a execução e avaliação.

Submeter a ferramenta de rendering em microcomputadores simples e em um ambiente de cluster e avaliar o seu desempenho.

• Analisar e documentar os resultados obtidos na execução da aplicação. • Buscar identificar as vantagens e desvantagens da execução em

ambiente de cluster.

• Identificar as possibilidades de trabalhos futuros a cerca dos temas relacionados.

1.4 ORGANIZAÇÃO DO TRABALHO

Para facilitar o entendimento e alcançar os objetivos propostos, este trabalho esta organizado da seguinte forma.

No capitulo 2 é tratada a fundamentação teórica necessária para o entendimento das técnicas de visualização científica e de renderização de imagens.

No capitulo 3 é tratada a fundamentação teórica necessária para o entendimento do assunto relacionado a cluster de computadores.

(19)

No capitulo 4 é tratada a fundamentação do software POVRay que é a aplicação que implementa a técnica de Ray-Tracing e que será submetida ao ambiente de cluster e avaliada.

No capitulo 5 será descrita a parte prática do ambiente de cluster, tais como a montagem e configuração do cluster, máquinas utilizadas, sistema operacional, sistema de arquivos, estrutura física da rede e etc.

No capitulo 6 será vista a parte prática das execuções da aplicação de visualização científica e a descrição dos resultados obtidos, comparações entre os resultados de cada execução e avaliação dos resultados.

(20)

2 VISUALIZAÇÃO CIENTÍFICA

Na área de visualização são envolvidos vários campos de estudo para que tenha a possibilidade de representar a visualização através de grandezas escalares. Nas áreas de matemática, informática ou física, uma grandeza escalar é definida quando precisa-se somente de um valor numérico associado a uma unidade de medida para caracterizar uma grandeza física. Este termo é utilizado com frequência em contraste às entidades que são “compostas” de muitos valores, como o vetor, a matriz, o tensor, a sequência, etc. A visualização cientifica é utilizada para que estas grandezas possam ser representadas em imagens e gráficos para ser facilmente interpretadas pelo usuário.

Quando se aborda o assunto visualização cientifica associa-se que por algum meio tecnológico ou ciência possa ser adquirido um aperfeiçoamento no modo de como as informações sejam exibidas ao leitor que, por meio de suas pesquisas e necessidades, possa estabelecer suas análises. Estas técnicas de visualização são utilizadas para reforçar o aprendizado tradicional tirando vantagem da habilidade que as pessoas possuem de absorver a informação visual (SILVA,2006).

A definição mais abrangente seja a do autor Brodlie et all (1992) que propõe:

Visualização Cientifica está relacionada com a exploração de dados e informação de modo a haver ganho de compreensão e percepção dos dados. O objetivo da Visualização Cientifica é promover um nível mais profundo de entendimento dos dados sob investigação, confiando na habilidade poderosa dos humanos de visualizar. Em muitos casos, as ferramentas e técnicas de visualização têm sido usadas para analisar e mostrar grandes volumes de dados multidimensionais, frequentemente variantes no tempo, de modo a permitir ao usuário extrair características e resultados rápida e facilmente.

Existem várias técnicas que podem ser aplicadas na visualização, uma forma de distinguir as técnicas é separar em técnicas para visualização de dados escalares, vetoriais e tensoriais (HESSELINK, 1994).

As técnicas são específicas para tratar dados físicos. Estes dados podem ser classificados por escalares, vetoriais, e tensoriais, e são definidos em espaços unidimensionais, bidimensionais e tridimensionais. As técnicas que utilizam dos

(21)

dados escalares podem gerar gráficos de funções, mapeamento de cores, renderização volumétrica, desenho de superfícies elevadas, entre outras. Um exemplo de utilização de dados em uma análise tridimensional seria o mapeamento de cores, que consiste em associar a gama de cores a uma variação do valor do dado, este podendo ser temperatura ou distorção (HESSELINK, 1994).

A distinção entre técnicas pode também ser feita em função da dimensão das primitivas utilizadas para representar os dados: pontos, linhas, superfícies e volumes (COLLINS, 1993).

Para que a representação gráfica tenha uma dimensão a mais que o espaço no qual os dados estão contidos, algumas técnicas de visualização científica associam valores escalares a uma dimensão adicional, fazendo com que a representação gráfica tenha uma dimensão a mais. Uma outra técnica faz uso de valores associados a cores, ou seja, associam uma escala de valores escalares a cores, mantendo assim a dimensão do espaço em que os dados são definidos.

A obtenção dos dados que serão representados, pode ser feita de várias formas, seja através de sensores, simulações, métodos matemáticos ou medição utilizando de algum equipamento especial. O processamento dos dados de entrada é feito através de técnicas de computação, como por exemplo, processamento de métodos matemáticos e convertem os dados em um formato conveniente e apropriado para o resultado que se deseja obter. O pós-processamento consiste em desenhar a imagem em uma saída por meio de técnicas de rendering1, que serão

representadas no monitor ou em outro display (ou superfície de visualização) (SCHOROEDER et all, 2004). As técnicas de visualização incluem algoritmos de processamento de dados que extraem os dados de interesse da amostra e os convertem em uma forma adequada para representação. As técnicas de rendering podem ser divididas em dois grupos, rendering de superfícies e de volumes.

As técnicas de visualização são mais apropriadas dependendo da natureza dos dados a serem representados e das dimensões do domínio em que são encontrados. Para a visualização de campos escalares definidos em 3D, podem ser utilizadas técnicas de extração de superfície, ou então rendering de volume. Quando é necessário a extração de dados de campos vetoriais em 3D, técnicas como

1 Rendering é utilizado para síntese de imagens tridimensionais, convertendo uma série de símbolos gráficos num arquivo visual, ou seja, “fixar” as imagens num vídeo, convertendo-as de um tipo de arquivo para outro.

(22)

streamlines2, baseadas na textura ou em ícones, podem ser utilizadas. O autor

Souza (2003) cita que o rendering volumétrico é a forma de visualização mais utilizada para campos escalares. Porém, as técnicas que se melhor adaptam aos métodos de interação são as técnicas de reconstrução de superfícies, presentes nos ambientes virtuais como na realidade virtual.

A visualização é um meio de facilitar o entendimento de dados que não seriam compreendidos, transformando os em imagens, porém nem sempre é possível estabelecer esta técnica, devido ao custo computacional. Um exemplo disso é a visualização computacional 3D de campos escalares, vetoriais e tensoriais, representa uma poderosa ferramenta de apoio na análise e compreensão de grandes conjuntos de dados.

2.1 FERRAMENTAS DE VISUALIZAÇÃO CIENTÍFICA

De acordo com Walton (1993), a visualização de dados proporciona um ganho em compreensão, que é obtido ao ser gerada uma imagem a partir de números. Fazendo uso de programas de linguagem de alto nível, como C ou FORTRAN, o usuário pode escrever códigos que leia ou calcule dados e execute processos (ou filtros) transformando-os em outras formas.

Utilizando de chamadas para uma seleção de rotinas de bibliotecas gráficas o programa pode fazer com que sejam geradas imagens a partir dos dados obtidos, na forma de linhas, mapas de contornos, superfícies ou volumes. O programa pode conter chamadas para funções de algumas ferramentas de visualização cientifica como, por exemplo, o VTK (Visualization ToolKit), que processa filtros mapeadores, e gera a representação da imagem no monitor ou em outro display.

Um exemplo de software de visualização cientifica é a ferramenta Matlab, que pode ser considerado uma linguagem de programação interpretada, uma vez que a concatenação dos comandos dados no espaço de trabalho gera um “programa”, que pode ser armazenado em um arquivo e “carregado” quando desejado.

(23)

2.2 TÉCNICAS DE VISUALIZAÇÃO

A visualização cientifica possui muitas técnicas, dependendo do tipo de dados algumas podem ser mais adequadas que outras. Dados físicos podem ser classificados como escalares (temperatura, pressão, etc), vetoriais (velocidade, campo magnético, etc) e tensoriais (tensor de tensões, tensor de difusão, etc), e são divididos em um espaço 1D, 2D ou 3D, podendo ser estáticos ou variantes no tempo.

Estas divisões são feitas com base nas obras dos autores Hesselink e Collins, onde Hesselink (1994) analisa que a forma de se fazer a divisão entre as técnicas de visualização cientifica é separada em técnicas de visualização de dados escalares, vetoriais e tensoriais. Collins (1993) cita que a divisão entre técnicas pode também ser feita em função da dimensão das primitivas usadas para representar os dados: pontos, linhas, superfícies e volumes.

O modo como os dados são apresentados é equivalente ao tipo de dado que se deseja obter, caso sejam dados volumétricos que podem envolver algoritmos e técnicas objetivando explorar o interior deste volume, a visualização de dados é definida em um domínio 3D. Pode ser utilizado também o rendering de volumes mapeados com diferentes níveis de transparência. Também é comum a extração de geometrias definindo isocontornos3, como isolinhas (caso 2D) e isosuperfícies4 (caso 3D), O mapeamento de cores é utilizado tanto em rendering de superfícies quanto de volumes.

Na separação proposta pelo autor Collins (1993), a representação de superfícies geralmente é realizada por meio da representação geométrica fazendo uso de uma malha de polígonos que se conectam formando uma única superfície. Souza (2003) faz a observação que este tipo de representação de superfícies é mais adequada a sistemas interativos, que requerem rendering em tempo real. Em função de classificar a dimensão das primitivas, na representação de volumes, os dados são tratados como uma matriz de elementos de volume voxels (análogo 3D

de pixels). O voxel é a representação de uma vizinhança espacial, onde

determinados atributos e características são associados.

3 Isocontornos é um filtro onde os dados de interesse são extraídos.

4 Isosuperfícies são superfícies do espaço 3D formadas a partir de pontos do volume de dados que possuem o mesmo valor.

(24)

Dependendo da necessidade podem ser utilizadas outras técnicas de renderização, conhecidas como técnicas de “renderização” hibrida, utilizando tanto o volume quanto a superfície. A classificação das estratégias de representação híbrida é feita de acordo com a necessidade ou não dos dados serem convertidos para uma única forma de representação (SCHIMIDT, 2000).

A visualização científica, após o processamento dos dados deve ser gerada a imagem final a ser apresentada ao usuário. Para esse fim se faz uso de técnicas de rendering, que se utiliza de métodos para que seja feita a síntese de imagens mais detalhadas utilizando sombras, reflexões, transparências e refrações. Estes métodos utilizam algoritmos que fazem com que a imagem seja implementada de forma que suas características fiquem mais aparentes.

2.3 SÍNTESE DE IMAGENS

A síntese de imagens é a área da computação gráfica que tem o objetivo de criar imagens realistas para fins de entretenimento, simulações e áreas científicas. A visualização científica busca transformar informações abstratas em informações visíveis através de imagens que o ser humano consiga entender e absorver informações destas. Portanto, uma etapa do processo de criação de uma visualização científica é a sintetização de imagens, ou seja, as informações que se deseja visualizar deve passar por um tratamento computacional com objetivo de criar uma imagem sintética realista ou o mais próximo possível da realidade.

Como já mencionado, o processo de sintetizar imagens realistas é denominada rendering ou renderização e dentre as técnicas de renderização mais conhecidas podemos citar Radiosity ou Radiosidade e Ray-Tracing.

2.3.1 Radiosity

A radiosidade é uma técnica de renderização inicialmente proposta por Cindy Goral em 1984. Esta técnica possui diversas aplicações para iluminação de animações, bastante utilizada para o desenvolvimento de jogos ou imagens estáticas. A característica das imagens geradas por esta técnica de renderização,

(25)

são imagens com sombras suaves e graduais. A radiosidade leva em consideração a reflexão de luz se transmitindo de objeto para objeto até chegar ao olho do observador, diferentemente dos métodos convencionais de iluminação que usa a ideia da reflexão do raio de luz nos objetos até o olho do observador (AZEVEDO, 2003).

Em computação gráfica a radiosidade apareceu como modelo de iluminação, logo em uma época onde não existia um modelo que considerasse a reflexão entre objetos (GORAL et all., 1984). Radiosidade pode ser definida como a quantidade de energia luminosa que é refletida de uma superfície, sendo composta da energia emitida pela superfície e a energia refletida pela mesma.

Como citado pelo autor Goral et all. (1984) a radiosidade, em sua forma original, considera que os objetos são refletores difusos ideais, pois a maior parte da energia percebida em um ambiente é fruto da reflexão difusa entre as superfícies.

A modelagem da reflexão difusa é realizada de acordo com a figura 1, onde uma intensidade é definida ao se especificar um ângulo de visão, então a intensidade final é definida e percebida em todas as direções para esse ângulo e é constante em todo o hemisfério de reflexão. A intensidade que deixa uma dada superfície é representada multiplicando a intensidade em um dado ângulo por

π

(GORAL et all., 1984).

A radiosidade obtêm um resultado independente da posição do observador, o que torna possível a utilização do calculo da radiosidade de um plano em várias visões da mesma. Esse resultado não precisa ser necessariamente aplicado de forma isolada, como ele fornece o coeficiente difuso de reflexão para qualquer

Figura 1: Reflexão difusa ideal sobre uma superfície.

(26)

ponto de observação da cena, o mesmo pode ser aplicado como o termo ambiente em outros modelos de iluminação existentes, como o modelo Ray-Tracing (WHITTED, 1980).

O método da radiosidade é baseado em um modelo de balanço de energia, pressupondo-se que existe um equilíbrio térmico entre os objetos da cena e o cálculo empregado à transmissão do calor ou da energia presente na cena é a aplicação da lei da energia em cada superfície presente. Azevedo (2003) traz que a quantidade de energia refletida por um objeto é dado pelo produto entre a intensidade de energia incidente e a constante de reflexão da superfície, esse cálculo é feito utilizando a equação 2.1:

Bj=ρjHj+Ej (2.1)

onde, Bjé a radiosidade de uma superfície .j;

Ρj é a constante de reflexão da superfície j; Hj é a energia incidente nesta superfície;

Ej é a energia emitida pela superfície j.

Portanto a radiosidade de uma superfície é a sua energia dissipada e com essa energia é possível determinar a luminosidade da superfície. Para o cálculo da equação 2.1 a quantidade de energia (Ej) e a constante de reflexão (Pj) da

superfície devem ser especificadas na descrição da cena, portanto tem-se uma incógnita na equação, a quantidade de energia incidente na superfície (Hj). Porém

essa incógnita pode ser encontrada pela soma da quantidade de energia refletida de todas as outras superfícies que contribuem com a iluminação da superfície em questão (AZEVEDO, 2003). O calculo descrito é dado pela equação 2.2:

Hj=

i=1 n

BjFij (2.2)

onde, Hj é a energia incidente na superfície j;

Bj a radiosidade de cada superfície i da cena;

Fij uma constante definida como a fração de energia que sai da superfície i e

(27)

Portanto a equação geral do método da radiosidade é dada pela equação 2.3: Bj=Ejj

i=1 n BjFij (2.3)

Considerando o cálculo da radiosidade de todas as superfícies de uma cena, obtêm-se uma sequencia de N equações lineares e também N incógnitas, e com isso é gerada uma matriz:

[

1−ρ1F11 1−ρ1F12 ⋯ −ρ1F1n −ρ2F21 1−ρ1F22 ⋯ −ρ2F2n ⋮ ⋮ ⋱ ⋮ −ρnFn1 −ρnFn2 ⋯ 1−ρnFnn

]

[

B1 B2 ⋮ Bn

]

=

[

E1 E2 ⋮ En

]

Portanto a renderização pelo método da radiosidade é dividida em diversos processos até que a cena renderizada seja obtida. Os processos realizados são citados por Azevedo (2003, P. 311):

Primeiro é gerado um modelo discretizado das superfícies da cena a ser renderizada. Depois essas superfícies têm suas constantes avaliadas. A seguir o sistema de equação é montado e resolvido. Sendo finalmente a cena renderizada.

2.3.2 Ray-Tracing

O Ray-Tracing foi originalmente desenvolvido como um algoritmo para simulação de trajetórias de projéteis balísticos e partículas nucleares em 1968. Porém a empresa americana Apple apresentou o Ray-Tracing como uma ferramenta para cálculo de sombras em computação gráfica, porém na época, os computadores eram muito lentos e o uso dessa técnica não era possível. Em 1980 ocorreu a sua implementação inicial, os computadores já eram mais poderosos e já era possível criar imagens com sombras, reflexões, transparência e refrações (AZEVEDO, 2003).

Segundo Jensen (2007) o Ray-Tracing é um dos mais populares métodos de renderização e consiste em dois cálculos principais para cada pixel: Encontrar qual é o ponto mais próximo da superfície e calcular qual é a cor para esse ponto.

(28)

Para renderizar uma cena o Ray-Tracing simula o comportamento da luz ao se disparar raios a partir do ponto de visualização e seguir estes raios através da cena até um ponto de luz para representar a região de visualização do espectador (BARBOZA, 2011). Para cada raio de luz disparado deve-se calcular a interseção com todas as primitivas que compõem a cena, ou seja, se o raio “acertar” algum objeto na cena é necessário calcular qual será o comportamento desse raio em relação as características do objeto, tais como, reflexão, refração e transparência a fim de determinar a cor final de cada ponto.

A técnica de Ray-Tracing utiliza um modelo ao contrário do que realmente acontece quando vemos uma cena, isso porque, normalmente uma fonte de luz ilumina uma cena e esses raios chegam aos olhos do observador. Nessa técnica, os raios são originários do observador, simulando a visão de uma pessoa, e segue em direção ao objeto que se deseja renderizar (Figura 2). Azevedo (2003) diz que essa reversão não influencia na geometria envolvida devido as leis da ótica.

O que acontece na realidade é que uma ou mais fontes de luz iluminam a cena com um número infinito de raios de luz, porém apenas uma parte desses raios de luz é refletida dos objetos e atinge o olho do observador. Portanto, por motivos computacionais é mais prático traçar os raios de interesse de volta para o objeto e deste para cada fonte de luz, ou seja, apenas os raios que serão visualizados serão processados. O resultado final desse processo será que as cores e intensidades que serão geradas produzirão uma imagem como uma fotografia (AZEVEDO, 2003).

Figura 2: Traçado de Raios

(29)

Na técnica de Ray-Tracing os raios de luz são traçados a partir de um observador da cena, esse observador é também chamado de câmera da cena, que será o ponto inicial dos raios lançados com fim de iluminar a cena e renderizar a imagem. Cada raio possui um ponto inicial (origem) e uma direção. A origem é o ponto de onde a câmera se apresenta na cena e a direção é calculada para cada pixel do plano, com isso é possível calcular a direção em que um determinado raio aponta (RIECK, 2008).

Cada raio é disparado de forma sistemática a partir do olho da câmera e direcionado à um pixel da cena, e esse raio percorre o espaço até interceptar, ou não, um objeto da cena. Se um raio colidir com um objeto, as propriedades do objeto são processadas e a partir delas são calculadas as refrações, absorções e reflexões, levando em consideração as contribuições das fontes de luz para cada ponto e também a sombra de outros objetos (RIECK, 2008 e AZEVEDO, 2003). Porém se não houver nenhuma interação, ou seja, o raio não atingir nenhum objeto da cena, então o pixel terá a cor de fundo da cena.

De acordo com Azevedo (2003) o cálculo do Ray-Tracing é constituído das seguintes tarefas efetuadas para cada pixel da tela:

• Traçar um raio a partir do observador até a cena a ser representada através de um pixel da tela;

• Determinar qual o primeiro objeto da cena a interceptar esse raio;

• Calcular a cor ambiente da superfície do objeto no ponto de interseção com base nas características do objeto e na luz ambiente;

• Se a superfície do objeto for reflexiva, calcular um novo raio a partir do ponto de interseção e na direção de reflexão;

• Se a superfície do objeto for transparente, calcular um novo raio a partir do ponto de interseção;

• Considerar a cor de todos os objetos interceptados pelo raio até sair da cena ou atingir uma fonte de luz, usar esse valor para determinar a cor do pixel e se há sombras.

(30)

Jensen (2007) descreve um algoritmo de Ray-Tracing que coloca em prática as tarefas descritas a cima:

2.3.2.1 Iluminação

Após entender como os raios de luz disparados a partir de um observador se comporta em uma cena, é importante entender como são tratados os efeitos de iluminação na cena renderizada (RIECK, 2008), ou seja, como são criados os efeitos de sombra, reflexão, refração e a texturização de um objeto da cena.

De um modo geral todo processo de síntese de imagens resume-se a determinar a cor de cada pixel de uma imagem. O algoritmo de Ray-Tracing faz esta determinação através do modelo de iluminação proposto por Whitted (1980) :

(2.4)

Para (cada pixel) faça {

Calcula um raio para esse pixel para (cada objeto da cena) faça {

se(raio intersecta objeto e a intersecção é a mais próxima até agora) então

guarde a distância da intersecção e a cor do objeto

}

Pinte o pixel com a cor do objeto mais próximo (se for o caso)

}

I =k

d

j=Ω

(⃗

N⋅⃗

L

j

)+

k

s

j=Ω

(⃗

N⋅⃗

H

j

)⋅

I

j

+

k

s

I

r

+

k

t

I

t

+

I

a

(31)

onde,

I intensidade do ponto amostrado no plano de imagem (R, G, e B);

kd coeficiente de reflexão difusa do material (componentes R, G e B);

N vetor unitário normal à superfície do objeto; Lj vetor na direção da j-ésima fonte de luz,

Ω subconjunto das fontes de luz que iluminam o ponto; ks coeficiente de reflexão especular do material;

Hj vetor unitário na direção bissetriz entre o observador e

n expoente que representa o polimento da superfície; Ij intensidade da j-ésima fonte de luz;

Ir intensidade do raio refletido;

kt coeficiente de transmissão do material;

It intensidade do raio transmitido (refratado);

Ia intensidade da iluminação ambiente global.

A equação 2.4 é aplicada a cada pixel da imagem com o objetivo de determinar a sua cor através do calculo da luz (I) que chega até o ponto de observação. A partir da cada ponto calcula-se a quantidade de luz que este recebe de cada fonte de luz da cena e a quantidade de luz refletida e refratada de outros objetos. Com isso tem-se então vários raios criados que formam uma árvore de raios e devem ser “seguidos” para que seja possível calcular a parcela de contribuição de cada objeto atingido por um raio da árvore na cor final de cada pixel na imagem.

2.3.2.2 Emissores de luz

Em uma cena todo objeto é potencialmente uma fonte de luz, em que a luz pode ser emitida ou refletida por um determinado objeto. Os emissores de luz ou fontes de luz, tais como lampadas, velas, sol, fogo, estrelas entre outros são caracterizados por suas intensidades e frequências enquanto que os objetos refletores de luz são caracterizados pelas suas propriedades individuais, tais como, a cor do objeto, material e polimento e são esses objetos que serão coloridos de

(32)

forma realística (renderizados).

A escolha de um tipo de emissor de luz a ser utilizado depende diretamente do ambiente da cena a ser renderizada, ou seja, em cenas externas são utilizadas fontes de luz natural como principal fonte de iluminação tais como o sol, lua ou as estrelas. Já em cenas internas geralmente são utilizadas luzes artificiais que podem ou não ter a mesma intensidade da luz natural (AZEVEDO, 2003). Portanto os tipos de emissores de luz podem ser classificados como natural, ambiente ou artificial.

Emissor Natural – A principal fonte de luz da natureza é sol, portanto um emissor de luz natural tenta simular de maneira realista os raios solares e suas influencias em uma cena. Alguns aspectos influenciam na simulação da luz do sol como, por exemplo, a hora do dia, a estação do ano a latitude da região entre outros podem influenciar a direção e o ângulo dos raios de luz.

Azevedo (2003) diz que a luz solar geralmente é definida como branca, porém pode variar, como por exemplo, em dia de céu claro, a cor da luz solar é um amarelo-pálido, em dia nublado, a luz solar pode atingir uma coloração azulada, tendendo para cinza, em dias de tempestades e no amanhecer e no pôr-do-sol, a cor pode tender para laranja ou vermelha.

Luz Ambiente – Uma luz é considerada ambiente quando não tem um direção identificada, ou seja, simula a iluminação vinda das reflexões da luz em objetos com superfícies difusas e determina o nível de iluminação das superfícies de uma cena.

Emissores Artificiais – As luzes artificiais geralmente são as que simulam as lâmpadas convencionais, ou seja, são todas as luzes que não são naturais. As luzes artificiais podem ainda ser dividas em luzes fotométricas, luz omni, luz direcional e luz refletora e estão descritas abaixo com base no autor Azevedo (2003).

LUZES FOTOMÉTRICAS: Com esse tipo de luz a iluminação depende

da intensidade de energia. A fonte de anergia nesse caso pode ser representada por um ponto (ou uma única lâmpada), linear (uma lâmpada com um determinado comprimento, como uma lâmpada fluorescente) ou áreas iluminadas (representada por painéis luminosos). Esse tipo de luz deve representar de forma realista a intensidade de energia e a influencia do tipo de lâmpada.

(33)

LUZ OMNI: Uma luz omni ou omnidirecional é um ponto central de luz

que lança os raios de luz em todas as direções podendo criar sombras e projeções. Um exemplo desse tipo de fonte de luz é uma lampada incandescente, que lança os raios de luz em todas as direções.

LUZ DIRECIONAL: Em uma luz direcional ou Direct Light os raios de

luzes apontam em uma única direção com raios paralelos, esse tipo de fonte de luz geralmente é utilizada para simular a luz solar em uma cena.

LUZ REFLETORA: Uma luz refletora ou Spot Light lança um raio de

luz focado levemente simulando uma lanterna ou um farol, como mostra a figura 3.

2.3.2.3 Reflexões

A maioria dos objetos em uma cena não emitem luz própria, apenas reflete

Figura 3: Exemplo de uso de luz refletora

(34)

a energia incidente em diferentes direções. A reflexão se deve à interação molecular entre a radiação incidente e o material que compõe a superfície dos objetos (AZEVEDO, 2003), em outras palavras, um raio de reflexão surge da colisão de um raio com um objeto e as propriedades do material que constitui o objeto são verificadas e a partir dessas propriedades é obtido o índice de reflexão do objeto, ou seja, a capacidade do objeto retransmitir os raios nele colididos (RIECK, 2008).

Rieck (2008) traz para calcular o raio refletido a equação 2.5:

R= ⃗V −2∗( ⃗V⋅⃗N )∗⃗N (2.5)

onde, R é o vetor do raio refletido, V é o vetor do raio incidente e N é a normal calculada a partir da superfície do objeto e o ponto em que o raio incide nela.

Portanto quando um raio atinge um objeto com uma superfície refletora um novo raio é gerado e a sua direção é calculada através da equação 2.5, isso se repete até um raio encontrar uma superfície opaca, ou seja, que não tem reflexão e portanto não gera novos raios, então a cor desse objeto é projetado no objeto de origem do raio e passa a refletir aquele objeto.

A cor final de um ponto em um objeto refletor é determinado pela multiplicação de sua própria cor com a cor proveniente do raio por ele disparado (raio de reflexão). Além da multiplicação das cores, este valor ainda é multiplicado pelo fator de reflexão do objeto, ou seja, pela quantidade de luz que o objeto reflete (esse valor varia de 0 a 1, quando 0 é um objeto totalmente opaco, que não reflete nenhum raio). Quando um raio de reflexão não atinge nenhum outro objeto, esse raio possui cor neutra, ou seja, a cor do objeto que gerou o raio de reflexão será definida de acordo com o ambiente da cena (RIECK, 2008). A figura 4 mostra o comportamento de um raio refletido três vezes até ser projetado no plano de imagem.

Azevedo (2003) divide a reflexão em três modelos, são eles Reflexão Ambiente, Reflexão Difusa e Reflexão Especular.

(35)

2.3.2.3.1 Reflexão Ambiente

A reflexão ambiente atinge as superfícies igualmente em todas as direções a partir de uma fonte de luz difusa não-direcional. Em uma cena alguns objetos não estão sendo iluminados diretamente, porém não são completamente escuros, isso porque são iluminados por raios de luz gerados por reflexões de outros objetos. O fenômeno definido como luz ambiente é gerado a partir da combinação de múltiplas reflexões de superfícies presente em um ambiente (AZEVEDO, 2003).

Azevedo (2003) diz que a luz ambiente pode ser representada pela equação 2.6 quando assumido que a luz ambiente afeta igualmente todas as superfícies de uma cena em todas as direções:

(2.6)

Na equação 2.6 Ia é assumida como constante para todos os objetos de

uma cena e representa a intensidade da luz ambiente, o parâmetro ra é a

quantidade de luz refletida pela superfície de um objeto, esse valor varia de 0 a 1, com isso temos a intensidade de luz do ambiente na superfície em estudo, representado por I na equação.

2.3.2.3.2 Reflexão Difusa

Figura 4: Reflexão de raio de luz

FONTE: Rieck, 2008, pg. 26.

(36)

A superfície de um objeto é definido como um difusor perfeito se for capaz de refletir a luz incidente em todas as direções igualmente, com isso a luz refletida pode ser percebida pelo olho humano independentemente da posição do observador (AZEVEDO, 2003).

Traz ainda que a variação da intensidade da luz refletida é proporcional ao co-seno do ângulo de incidência da luz na superfície e a intensidade da reflexão difusa pode ser obtida através da equação 2.7:

(2.7)

onde, I é a intensidade da componente difusa da superfície em estudo, Id representa

a intensidade da fonte de luz direcional presente, rd representa a reflectividade de

luz difusa da superfície e Θ é o ângulo que a direção do feixe de luz faz com a superfície, assim como mostra a figura 5.

Portanto na reflexão difusa o objeto ira refletir a luz com intensidades diferentes dependendo do ângulo em relação a fonte de luz.

Porém um modelo de iluminação deve considerar tanto a luz ambiente quanto a direção de iluminação, então a reflexão ambiente deve ser somado a reflexão difusa, tal como mostra a equação 2.8:

I=Iara+Idrdcos Θ (2.8)

Além disso, como a intensidade de luz refletida é inversamente proporcional a distância um modelo que leva isso em consideração é dado pela equação 2.9:

I=IdrdcosΘ

Figura 5: Reflexão Difusa

(37)

I=Iara+Idrdcos Θ/(d +k) (2.9)

onde d é o observador e k é uma constante da cena para evitar ambiguidades, tais como divisão por números pequenos e grande diferença entre objetos muito próximos (AZEVEDO, 2003).

Ou pode ainda ser utilizado um fator de atenuação, fat, cujo valor máximo

seja 1, tal como na equação 2.10:

I=Iara+fatIdrdcos Θ (2.10)

2.3.2.3.3 Reflexão Especular

A reflexão especular é o componente responsável pelo brilho da luz em um objeto e é obtida através de superfícies brilhantes, polidas ou lustradas que apresentam variações drásticas de intensidade de luz refletida em determinados ângulos de observação. Na reflexão especular a luz não interage com os pigmentos da superfície e com isso a cor da luz refletida é igual a cor incidente na superfície, ou seja, basicamente funcionam como um espelho refletindo a luz incidente sem atenuação (AZEVEDO, 2003).

A intensidade da reflexão especular pode ser calculada pela equação 2.11 dada por Azevedo (2003):

I=Iara+fatId(rdcos Θ+rscos

n

α) (2.11)

A equação 2.11 assim como a reflexão difusa deve considerar a reflexão ambiente e a reflexão difusa, por esse motivo é bastante parecida com a equação de reflexão difusa, porém tem-se mais uma constante de luz especular, rs e o

envolvimento de mais um ângulo, α, que representa a direção de observação, como mostra a figura 6. A potência n na equação representa a variável dependente do nível especular da superfície, que varia de 1 a 200 (AZEVEDO, 2003).

(38)

O modelo de reflexão proposto pode englobar os efeitos de múltiplas fontes de luz, ou seja, será necessário calcular a influência de cada fonte de luz na reflexão da superfície de um objeto, para isso usa-se um somatório de efeitos, tal como descrito pela equação 2.12 adaptada de Azevedo(2003):

I=Iara+

j=1 J

fatIdj(rdcos Θj+rscosnα ) (2.12)

onde:

I = Intensidade do ponto amostrado (Pixel); Ia = Intensidade da iluminação ambiente global;

ra = Coeficiente de reflexão da iluminação ambiente do material;

Idj = Representa a intensidade da j-ésima fonte de luz direcional presente;

rd = Coeficiente de reflexão difusa do material;

cosΘ = co-seno do ângulo de incidência da j-ésima fonte de luz na superfície;

rs = Coeficiente de reflexão especular do material;

cosnα = Ângulo da direção de observação;

J = Número das fontes de luz que iluminam o ponto, consideradas no somatório;

Figura 6: Reflexão Especular

(39)

fatj = Coeficiente de atenuação da j-ésima fonte de luz.

2.3.2.4 Refração

Segundo Azevedo (2003) a refração é o desvio de um feixe de luz incidente na superfície de um objeto de material com densidade diferente, por exemplo, um feixe de luz incidente em uma superfície liquida é desviado e refletido ao penetrar na água. O cálculo de refração de um raio de luz deve ser feito levando em consideração a Lei da Refração, que diz que um raio de luz sofre um desvio em sua trajetória quando transita por espaços com diferentes densidades, além disso deve ser considerado a atenuação de energia de propagação de um raio já que nenhum material é perfeitamente transparente e a transparência de um material varia de acordo com a sua densidade, como exemplo temos vidro, ar e água.

A lei da refração foi descoberta em 1620 pelo astrônomo e matemático Willebrod Snell e deduzida da primitiva teórica corpuscular da luz por René Descartes e é conhecida como lei Snell-Descartes e o cálculo da refração é uma aplicação direta dassa lei (AZEVEDO, 2003).

Azevedo (2003) ilustra a alteração no curso de um raio de luz que passa para um meio de densidade diferente através da equação 2.13:

sen(Θi)

sen(Θr)=n21 (2.13)

Os ângulos de incidência Θi, de reflexão Θi e de refração Θr são medidos

entre a normal à superfície e o raio correspondente, obedecendo a relação dada pela equação 2.13. Na equação 2.13 n21 é uma constante, chamada índice de

refração do meio 2 em relação ao meio 1.

A figura 7 mostra o efeito de refração usada na lei de Snell-Descartes. Na Imagem um raio que percorre o ar com índice de refração de n1= 1,0 que incide na

(40)

É importante lembrar que um raio sofre uma atenuação ou absorção da luz no meio que compõem o objeto e essa atenuação é dado pela equação 2.14:

d=(C∗0.15∗−dist ) (2.14)

A=ed (2.15)

onde:

C é a cor do objeto transparente;

dist é a distância percorrida pelo raio dentro do objeto; e é a constante de absorção do objeto.

Portanto, quanto maior a distância percorrida por um raio dentro de um objeto, maio será a atenuação sofrida pelo raio (RIECK, 2008).

Figura 7: Exemplo de refração

(41)

2.3.2.4 Transparência

Quando um raio passa de um meio para outro, ocorre o fenômeno de refração. Na maioria dos casos os objetos com índice de refração são objetos que transmitem a luz, tais como a água, vidro, cristal entre outros, quando um raio de luz incide em um desses objetos ele passa pelo objeto e continua seu caminho até outra interação criando assim o efeito de transparência nesses objetos (RIECK, 2008). Tal como mostra a figura 8.

Na figura 8 observa-se que o raio R passa pelo objeto A e sofre uma mudança em sua direção e em seguida ao sair do objeto sobre um nova alteração na direção e segue seu caminho até atingir o objeto B.

Quando uma superfície visível é transparente, é feita uma combinação linear entre as duas superfícies mas próximas. A intensidade na superfície é então calculada por Azevedo (2003) utilizando a equação 2.16:

I =t I1+ (1−t) I2, 0≤t≤1 (2.16)

onde, I1 é a superfície visível, I2 é a superfície imediatamente atrás da superfície

visível, e t é o fator de transparência para I1. Se I2 também é transparente, então o

algoritmo é aplicado recursivamente até encontrar uma superfície opaca ou o fundo da cena. Nesse ponto também é importante considerar a atenuação dos raios de luz percorrido dentro de um objeto, tal como mostrado na equação 2.14.

Azevedo (2003) diz que para modelar objetos transparentes, pode ser

Figura 8: Efeito da Transparência

(42)

considerado dois modelos, são eles:

Transparência sem Refração: Nesse modelo a influência da refração não é considerada, portanto os objetos localizados atrás do objeto transparente são mostrados sem um deslocamento, ou seja, são exibidos onde estão exatamente.

Transparência com Refração: Em contra partida ao modelo sem refração, esse modelo considera a refração dos objetos transparentes e quando ocorre a refração dos raios que atravessam o objeto, os objetos localizados atrás do objeto transparente são exibidos em uma posição diferente de sua verdadeira posição.

2.3.2.5 Ray-Tracing recursivo

Rieck (2008) diz que quando um raio que parte do observador para a cena e atinge um objeto não opaco um novo raio é gerado e calculado novamente, ou seja, um raio original ao longo do seu caminho pode gerar raios de reflexão, raios de refração e até mesmo os dois ao mesmo tempo e cada um desses raios podem gerar novos raios e assim por diante, criado assim uma árvore de raios que devem ser calculados. Para exemplificar, a figura 9 mostra as interações de um raio e lançado a partir do observador da cena. Cada interação que ocorre entre um raio e um objeto gera um novo raio ou mais de um raio simultaneamente.

A árvore de raios a calcular deve ser criada até que a intensidade de luz que o raio possa contribuir para a quantidade total do pixel seja irrelevante, ou que a árvore do raio chegue em um nível considerado como limite, ou que o raio não intercepte nenhum outro objeto da cena. Temos então o valor do raio neste nível, e somamos com o valor do coeficiente de luz do nível anterior da recursão, e assim até atingir ao primeiro nível com os coeficientes completos. (CÂMARA, 1997).

Faz-se necessário limitar a profundidade da recursividade para que o algoritmo do Ray-Tracing não entre em um loop, e não chegando ao final de sua execução. Quanto maior a profundidade da recursão, melhor serão tratados os efeitos como reflexão e refração, pois suas simulações serão mais parecidas como as que ocorrem na natureza, onde não existe um limite para a recursividade de iterações (RIECK, 2008, p. 29).

(43)

Figura 9: Recursividade no Ray-Tracing

Referências

Documentos relacionados

Compreendendo- se que o estudo dos eventos do século XX podem ser relevantes e esclarecedores para a compreensão da história e da sociedade de hoje, e levando-se em conta o

Nas baixas frequências, para as condições de terminais em aberto, os efeitos não lineares e dependentes da frequência presentes no mate- rial ferromagnético são predominantes

Discussion The present results show that, like other conditions that change brain excitability, early environmental heat exposure also enhanced CSD propagation in adult rats.. The

- Se o estagiário, ou alguém com contacto direto, tiver sintomas sugestivos de infeção respiratória (febre, tosse, expetoração e/ou falta de ar) NÃO DEVE frequentar

F IG U R A I - Amplitudes de variação, médias e intervalos de confiança dos valores das análises sanguíneas de machos e fêmeas de Brycon sp, por estádio de

Com o intuito de posicionar nos centros urbanos os sistemas fotovoltaicos interligados à rede elétrica de forma a obter os maiores benefícios, propõe-se neste trabalho

Portanto, não se pode afirmar que existe a presença ou ausência de alguns desses compostos nas cultivares que apresentaram maior e menor resistência ao ataque

Diferentemente dos animais alimentados com Brachiaria, os animais que con- sumiam Andropogon apresentaram maior peso nas duas estações do ano e maior ganho em peso na estação