Este documento apresenta uma monografia sobre animação foto-realista de fluidos utilizando métodos lagrangeanos. O trabalho descreve um software desenvolvido para simulação e renderização de fluidos em tempo real e off-line usando o método SPH. O software oferece interface gráfica para ajuste dos parâmetros da simulação e visualização dos dados do modelo do fluido.
O objetivo deste trabalho é estudar e aplicar técnicas de virtualização no Departamento de Computação da Universidade Federal de Sergipe (DCOMP/UFS) para proporcionar maior eficiência e economia na utilização dos recursos de TI.
Especificamente, pretende-se:
1. Apresentar os conceitos e histórico da virtualização, tipos de hipervisores, técnicas e vantagens.
2. Apresentar as principais ferramentas de virtualização disponíveis no mercado.
3. Analisar a situação atual dos servidores do DCOMP
Este documento apresenta um estudo sobre redes neurais artificiais aplicadas ao reconhecimento de fotos adequadas para perfis no LinkedIn. O trabalho descreve a criação de um protótipo usando uma rede neural treinada com backpropagation para classificar fotos como apropriadas ou não para uso no LinkedIn.
1) O documento apresenta um estudo e análise de vulnerabilidades em aplicações web.
2) Foram usadas ferramentas para identificar vulnerabilidades em sites brasileiros e extrair informações de bancos de dados expostos.
3) O trabalho investigou formas comuns de ataques e medidas de prevenção para melhorar a segurança de aplicações web.
SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...willmews
Existem diversas ferramentas de suporte a gestão de projetos e modelagem de fluxo
de processos. Essas ferramentas realizam análises de caminho crítico e gerenciamento da
execução do processo de acordo com o fluxo modelado. Com o crescente número de empresas
optando por gerir suas atividades por meio de fluxos de processo de trabalho cada vez
mais torna-se promissor o desenvolvimento de software que permitam a modelagem e gerenciamento
dos processos. Porém, quando se trata especificamente desse tipo de solução, é
pequeno o número delas que possuem módulo de simulação entretanto tal funcionalidade é de
necessidade do mercado. Neste sentido, o objetivo deste trabalho é desenvolver um módulo de
simulação de processos para a ferramenta Fusion ECM Suíte que é um produto da empresa
Neomind. A metodologia utilizada para o desenvolvimento desse módulo consiste na aplicação
do método Monte Carlo, para a simulação de execução de cada atividade do processo através
da geração de números aleatórios. Como resultado obtem-se o valor total do processo atrelado
a um cenário. Essa rotina pode ser executada inúmeras vezes, gerando resultados estatísticos
e diminuindo a margem de erro do valores obtidos. Além disso o módulo de simulação
permite saber qual será o caminho a ser executado em um processo baseado em um cenário
pré determinado. A luz do exposto, conclui-se que através do uso do módulo de simulação
torna-se possível prever possíveis falhas de modelagem do processo ou até mesmo enxergar
melhorias contínuas, assim como mitigar impacto no processo antes de realizá-las no ambiente
corporativo.
1. O documento apresenta uma monografia sobre o desenvolvimento de uma extensão para o software Inkscape com o objetivo de converter arquivos SVG para HTML5 Canvas.
2. A monografia inclui revisão bibliográfica sobre os padrões SVG e HTML5 Canvas, além de detalhar a metodologia e resultados dos testes realizados na extensão desenvolvida.
3. Os resultados permitem comparar os padrões gráficos e identificar os casos de uso mais adequados para cada tecnologia no desenvolvimento de aplicações web gráficas.
O documento descreve um experimento para identificar os comprimentos focais de uma câmera utilizando processamento de imagem e métodos de visão computacional. O experimento usa uma câmera web para capturar imagens de marcas coloridas e de uma grade de checagem, que são processadas no MATLAB para identificar as coordenadas dos pontos de interesse. Os comprimentos focais são então calculados usando um modelo de câmera pinhole e o método dos mínimos quadrados.
Este documento apresenta o desenvolvimento de um robô móvel autônomo capaz de explorar ambientes hostis. O robô utiliza sensores ultrassônicos para detecção de obstáculos e sensores de velocidade nos motores para mapeamento do ambiente. Testes foram realizados para calibração dos sensores e validação do sistema de comunicação e controle remoto do robô.
Este documento apresenta um curso introdutório sobre a ferramenta Simulink para modelagem e simulação de sistemas dinâmicos. O curso é dividido em 4 capítulos que abordam conceitos teóricos de diagramas em blocos, transformadas de Laplace e Z, a interface do Simulink e como construir e simular modelos. Há também instruções sobre como imprimir e salvar os resultados das simulações.
O objetivo deste trabalho é estudar e aplicar técnicas de virtualização no Departamento de Computação da Universidade Federal de Sergipe (DCOMP/UFS) para proporcionar maior eficiência e economia na utilização dos recursos de TI.
Especificamente, pretende-se:
1. Apresentar os conceitos e histórico da virtualização, tipos de hipervisores, técnicas e vantagens.
2. Apresentar as principais ferramentas de virtualização disponíveis no mercado.
3. Analisar a situação atual dos servidores do DCOMP
Este documento apresenta um estudo sobre redes neurais artificiais aplicadas ao reconhecimento de fotos adequadas para perfis no LinkedIn. O trabalho descreve a criação de um protótipo usando uma rede neural treinada com backpropagation para classificar fotos como apropriadas ou não para uso no LinkedIn.
1) O documento apresenta um estudo e análise de vulnerabilidades em aplicações web.
2) Foram usadas ferramentas para identificar vulnerabilidades em sites brasileiros e extrair informações de bancos de dados expostos.
3) O trabalho investigou formas comuns de ataques e medidas de prevenção para melhorar a segurança de aplicações web.
SIMULAÇÃO MONTE CARLO PARA FLUXO DE PROCESSOS UTILIZANDO A FERRAMENTA FUSION ...willmews
Existem diversas ferramentas de suporte a gestão de projetos e modelagem de fluxo
de processos. Essas ferramentas realizam análises de caminho crítico e gerenciamento da
execução do processo de acordo com o fluxo modelado. Com o crescente número de empresas
optando por gerir suas atividades por meio de fluxos de processo de trabalho cada vez
mais torna-se promissor o desenvolvimento de software que permitam a modelagem e gerenciamento
dos processos. Porém, quando se trata especificamente desse tipo de solução, é
pequeno o número delas que possuem módulo de simulação entretanto tal funcionalidade é de
necessidade do mercado. Neste sentido, o objetivo deste trabalho é desenvolver um módulo de
simulação de processos para a ferramenta Fusion ECM Suíte que é um produto da empresa
Neomind. A metodologia utilizada para o desenvolvimento desse módulo consiste na aplicação
do método Monte Carlo, para a simulação de execução de cada atividade do processo através
da geração de números aleatórios. Como resultado obtem-se o valor total do processo atrelado
a um cenário. Essa rotina pode ser executada inúmeras vezes, gerando resultados estatísticos
e diminuindo a margem de erro do valores obtidos. Além disso o módulo de simulação
permite saber qual será o caminho a ser executado em um processo baseado em um cenário
pré determinado. A luz do exposto, conclui-se que através do uso do módulo de simulação
torna-se possível prever possíveis falhas de modelagem do processo ou até mesmo enxergar
melhorias contínuas, assim como mitigar impacto no processo antes de realizá-las no ambiente
corporativo.
1. O documento apresenta uma monografia sobre o desenvolvimento de uma extensão para o software Inkscape com o objetivo de converter arquivos SVG para HTML5 Canvas.
2. A monografia inclui revisão bibliográfica sobre os padrões SVG e HTML5 Canvas, além de detalhar a metodologia e resultados dos testes realizados na extensão desenvolvida.
3. Os resultados permitem comparar os padrões gráficos e identificar os casos de uso mais adequados para cada tecnologia no desenvolvimento de aplicações web gráficas.
O documento descreve um experimento para identificar os comprimentos focais de uma câmera utilizando processamento de imagem e métodos de visão computacional. O experimento usa uma câmera web para capturar imagens de marcas coloridas e de uma grade de checagem, que são processadas no MATLAB para identificar as coordenadas dos pontos de interesse. Os comprimentos focais são então calculados usando um modelo de câmera pinhole e o método dos mínimos quadrados.
Este documento apresenta o desenvolvimento de um robô móvel autônomo capaz de explorar ambientes hostis. O robô utiliza sensores ultrassônicos para detecção de obstáculos e sensores de velocidade nos motores para mapeamento do ambiente. Testes foram realizados para calibração dos sensores e validação do sistema de comunicação e controle remoto do robô.
Este documento apresenta um curso introdutório sobre a ferramenta Simulink para modelagem e simulação de sistemas dinâmicos. O curso é dividido em 4 capítulos que abordam conceitos teóricos de diagramas em blocos, transformadas de Laplace e Z, a interface do Simulink e como construir e simular modelos. Há também instruções sobre como imprimir e salvar os resultados das simulações.
O documento descreve um protótipo de ferramenta de apoio ao treinamento na construção de redes de computadores desenvolvido como trabalho de conclusão de curso. O protótipo utiliza teorias de ensino-aprendizagem para facilitar a compreensão dos usuários sobre projetos, funcionamento e construção de redes baseadas nos modelos TCP/IP e OSI.
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...Jesimar Arantes
1. Este documento apresenta o desenvolvimento de um visualizador para simulações de redes de sensores sem fio realizadas no framework GrubiX.
2. O visualizador, chamado Visual GrubiX, permite visualizar de forma rica as simulações, depurar redes e mapear elementos gráficos a aspectos da simulação.
3. O trabalho descreve a modelagem e implementação do Visual GrubiX, incluindo requisitos, arquitetura, diagramas e os principais recursos desenvolvidos como mapeamento, grafo de conectividade e lin
1. Introduz conceitos básicos da linguagem de desenho paramétrico DP.
2. Explica conceitos e convenções como codificação, processamento, unidades de desenho e sistema de coordenadas.
3. Descreve como definir valores numéricos e locação geométrica de nós através de coordenadas absolutas, relativas, expressões e funções trigonométricas.
Este documento fornece um resumo dos principais comandos e funções do sistema CAD/AGC & DP. Descreve como chamar o sistema, navegar na árvore de edifícios, visualizar esquemas de planta e desenhos de armação, e editar parâmetros.
1. O documento discute conceitos básicos de geoprocessamento aplicados à geologia, incluindo sistemas de referência e coordenadas, ferramentas do Google Earth e ArcGIS, elaboração de mapas, modelos digitais de elevação e georreferenciamento.
2. É apresentado um tutorial passo a passo para a criação de um mapa geológico local utilizando dados do Google Earth e ArcGIS, incluindo edição de atributos, simbologia, legenda e acréscimo de elementos como curvas de nível e texto.
3
Processos de fabricação: Estudo avançados sobre a prototipagem rápidaRafael Lial
1. O documento é um relatório técnico de um projeto de graduação sobre o processo de fabricação por prototipagem rápida. Foi apresentado por quatro alunos da Pontifícia Universidade Católica de Minas Gerais em 2012.
2. O relatório descreve a história, princípios, equipamentos, parâmetros, capacidades, vantagens e desvantagens da prototipagem rápida, além de apresentar exemplos de aplicação do processo.
3. O documento também inclui resumos em português e inglês, lista de figuras
Este documento apresenta a modelagem de um ambiente virtual tridimensional explorável por meio de tecnologias de realidade virtual voltadas para a Web. O autor modelou o ambiente usando ferramentas como o 3ds Max e implementou um protótipo usando a tecnologia X3D para permitir a visualização e exploração do ambiente na Web. A implementação enfrentou desafios devido às limitações das ferramentas utilizadas, mas foi possível desenvolver um protótipo funcional.
O documento descreve uma pesquisa sobre classificação de chutes a gol em jogos de futebol de robôs simulados utilizando mineração de dados. O objetivo era extrair conhecimento sobre este importante evento esportivo a partir de logs das partidas para melhorar a análise de desempenho. Foi desenvolvido um classificador que melhorou em 13,99% a classificação de chutes a gol comparado ao método existente, demonstrando a viabilidade de se criar ferramentas avançadas de análise para o esporte de robôs.
Este documento descreve os fundamentos da programação orientada a objetos e da linguagem Java, incluindo tópicos como classes, herança, polimorfismo, tipos primitivos, expressões, exceções, APIs, desenvolvimento de interfaces gráficas e applets.
Costa; maicon moreno da cidades panorâmicasAcervo_DAC
Este relatório apresenta fotografias panorâmicas da cidade de Campo Grande em HDR para fornecer uma nova perspectiva da paisagem urbana. O trabalho discute como a cidade é percebida pelo homem moderno e propõe ampliar esta percepção através da técnica HDR em fotos panorâmicas, capturando detalhes normalmente não notados. As fotos foram tiradas de um prédio para mostrar a cena de forma ampliada.
Este documento apresenta as seguintes informações sobre a linguagem G-Portugol:
1) Discute as características gerais da linguagem, incluindo seus tipos de dados primitivos como inteiro e literal, e estruturas de controle como condicionais e repetição.
2) Explica que o objetivo do manual é servir como referência para a linguagem G-Portugol e suas ferramentas, assumindo que o leitor tenha conhecimento prévio de programação.
3) Fornece um resumo dos tópicos ab
Com esta opção você pode inserir figuras do Microsoft Office Assistant.
Formas: Aqui estão disponíveis as mesmas formas geométricas da barra de desenho.
Ilustrações: Permite inserir ilustrações do Visio, AutoCAD ou CorelDRAW.
Foto: Insere fotos armazenadas em seu computador ou câmera digital.
Captura de tela: Captura a tela ou parte dela e a insere no slide.
Objeto: Insere objetos OLE ou arquivos vinculados.
Outros: Permite inserir figuras de
Olujumu Oladipo is a sales and marketing executive seeking a customer-focused role applying experience managing trade partners. He has over 10 years experience in sales, marketing, and business development. Key achievements include growing sales volume by 30% and market share from 30% to 50% through distribution expansion and ensuring product availability. He also grew retail van sales from 2,800 to 3,600 cases per week. Olujumu holds a B.A. in History and has expertise in strategic positioning, relationship management, and product marketing.
Este documento presenta una breve introducción a la topología y los fractales. Explica que la topología es una de las ramas más jóvenes de las matemáticas que estudia las propiedades geométricas que se conservan bajo deformaciones continuas. Luego describe algunos conceptos topológicos como la equivalencia de objetos que pueden transformarse sin romperse. Finalmente, destaca las contribuciones de la topología a otras áreas y sus aplicaciones en biología y otras ciencias.
This document summarizes key points from an IOM report on emergency care for children and discusses recommendations to improve pediatric emergency care readiness. It notes that children have unique medical needs that often aren't met in the emergency system. The three main goals discussed are coordination, regionalization, and accountability. Several recommendations are provided, including developing pediatric emergency care guidelines and competencies, appointing pediatric coordinators, improving safety, and enhancing family-centered and disaster preparedness.
The document discusses adaptations of pufferfish and provides examples of applying Bloom's Taxonomy levels including:
1) Remembering pufferfish adaptations like inflating and venomous spines.
2) Understanding by providing an example of a venom-shooting reptile like a spitting cobra.
3) Analyzing which of Jupiter's moons is most likely to support life, identified as Europa.
El documento describe el ferrocarril Transiberiano, la ruta ferroviaria continua más larga del mundo que conecta Moscú con el lejano oriente Ruso, China y Mongolia. Ofrece varias opciones de viajes Transiberianos que atraviesan Rusia y pasan por diferentes países como Mongolia o Manchuria hasta llegar a Beijing, cruzando ríos y admirando paisajes como el Lago Baikal.
Matthew Gaiser Mindsumo Shower Winning EntryMatthew Gaiser
The document proposes a shower tool that would allow users to add various additives like perfume, moisturizer, or color to their shower water by selecting cartridges. The tool would attach to the shower and mix the additives into the water stream. This would provide spa-like experiences and allow easy application of products like sunscreen without manual effort. The tool would utilize technologies like those in printers and be integrated with the user's preferences via an Internet-connected system that could also control other shower elements. Consumers would enjoy a better shower, save time, and gain easy access to relaxing experiences.
This document provides an overview of an India quiz held on August 16th, 2015. It outlines the rules of the quiz, which included 25 multiple choice questions with 5 starred tiebreaker questions. The top 5 teams and highest scoring first-year team would qualify for the finals. The questions covered a range of topics about Indian culture, history and current events. Sample questions included identification of symbols from Tamil culture, scientific names related to India, Indian Independence Day Google Doodles, and codenames used in the Pokhran-II nuclear tests.
"Golden Time Management Quotes-" Time is Precious!Shyama Shankar
Even when you are viewing this ppt, so many things are happening around you, quite significantly. Try to allocate your time wisely and pl. understand that work is utmost fun and not whiling away time.
O documento descreve um protótipo de ferramenta de apoio ao treinamento na construção de redes de computadores desenvolvido como trabalho de conclusão de curso. O protótipo utiliza teorias de ensino-aprendizagem para facilitar a compreensão dos usuários sobre projetos, funcionamento e construção de redes baseadas nos modelos TCP/IP e OSI.
MODELAGEM E IMPLEMENTAÇÃO DE UM VISUALIZADOR PARA SIMULAÇÕES COMPUTACIONAIS D...Jesimar Arantes
1. Este documento apresenta o desenvolvimento de um visualizador para simulações de redes de sensores sem fio realizadas no framework GrubiX.
2. O visualizador, chamado Visual GrubiX, permite visualizar de forma rica as simulações, depurar redes e mapear elementos gráficos a aspectos da simulação.
3. O trabalho descreve a modelagem e implementação do Visual GrubiX, incluindo requisitos, arquitetura, diagramas e os principais recursos desenvolvidos como mapeamento, grafo de conectividade e lin
1. Introduz conceitos básicos da linguagem de desenho paramétrico DP.
2. Explica conceitos e convenções como codificação, processamento, unidades de desenho e sistema de coordenadas.
3. Descreve como definir valores numéricos e locação geométrica de nós através de coordenadas absolutas, relativas, expressões e funções trigonométricas.
Este documento fornece um resumo dos principais comandos e funções do sistema CAD/AGC & DP. Descreve como chamar o sistema, navegar na árvore de edifícios, visualizar esquemas de planta e desenhos de armação, e editar parâmetros.
1. O documento discute conceitos básicos de geoprocessamento aplicados à geologia, incluindo sistemas de referência e coordenadas, ferramentas do Google Earth e ArcGIS, elaboração de mapas, modelos digitais de elevação e georreferenciamento.
2. É apresentado um tutorial passo a passo para a criação de um mapa geológico local utilizando dados do Google Earth e ArcGIS, incluindo edição de atributos, simbologia, legenda e acréscimo de elementos como curvas de nível e texto.
3
Processos de fabricação: Estudo avançados sobre a prototipagem rápidaRafael Lial
1. O documento é um relatório técnico de um projeto de graduação sobre o processo de fabricação por prototipagem rápida. Foi apresentado por quatro alunos da Pontifícia Universidade Católica de Minas Gerais em 2012.
2. O relatório descreve a história, princípios, equipamentos, parâmetros, capacidades, vantagens e desvantagens da prototipagem rápida, além de apresentar exemplos de aplicação do processo.
3. O documento também inclui resumos em português e inglês, lista de figuras
Este documento apresenta a modelagem de um ambiente virtual tridimensional explorável por meio de tecnologias de realidade virtual voltadas para a Web. O autor modelou o ambiente usando ferramentas como o 3ds Max e implementou um protótipo usando a tecnologia X3D para permitir a visualização e exploração do ambiente na Web. A implementação enfrentou desafios devido às limitações das ferramentas utilizadas, mas foi possível desenvolver um protótipo funcional.
O documento descreve uma pesquisa sobre classificação de chutes a gol em jogos de futebol de robôs simulados utilizando mineração de dados. O objetivo era extrair conhecimento sobre este importante evento esportivo a partir de logs das partidas para melhorar a análise de desempenho. Foi desenvolvido um classificador que melhorou em 13,99% a classificação de chutes a gol comparado ao método existente, demonstrando a viabilidade de se criar ferramentas avançadas de análise para o esporte de robôs.
Este documento descreve os fundamentos da programação orientada a objetos e da linguagem Java, incluindo tópicos como classes, herança, polimorfismo, tipos primitivos, expressões, exceções, APIs, desenvolvimento de interfaces gráficas e applets.
Costa; maicon moreno da cidades panorâmicasAcervo_DAC
Este relatório apresenta fotografias panorâmicas da cidade de Campo Grande em HDR para fornecer uma nova perspectiva da paisagem urbana. O trabalho discute como a cidade é percebida pelo homem moderno e propõe ampliar esta percepção através da técnica HDR em fotos panorâmicas, capturando detalhes normalmente não notados. As fotos foram tiradas de um prédio para mostrar a cena de forma ampliada.
Este documento apresenta as seguintes informações sobre a linguagem G-Portugol:
1) Discute as características gerais da linguagem, incluindo seus tipos de dados primitivos como inteiro e literal, e estruturas de controle como condicionais e repetição.
2) Explica que o objetivo do manual é servir como referência para a linguagem G-Portugol e suas ferramentas, assumindo que o leitor tenha conhecimento prévio de programação.
3) Fornece um resumo dos tópicos ab
Com esta opção você pode inserir figuras do Microsoft Office Assistant.
Formas: Aqui estão disponíveis as mesmas formas geométricas da barra de desenho.
Ilustrações: Permite inserir ilustrações do Visio, AutoCAD ou CorelDRAW.
Foto: Insere fotos armazenadas em seu computador ou câmera digital.
Captura de tela: Captura a tela ou parte dela e a insere no slide.
Objeto: Insere objetos OLE ou arquivos vinculados.
Outros: Permite inserir figuras de
Olujumu Oladipo is a sales and marketing executive seeking a customer-focused role applying experience managing trade partners. He has over 10 years experience in sales, marketing, and business development. Key achievements include growing sales volume by 30% and market share from 30% to 50% through distribution expansion and ensuring product availability. He also grew retail van sales from 2,800 to 3,600 cases per week. Olujumu holds a B.A. in History and has expertise in strategic positioning, relationship management, and product marketing.
Este documento presenta una breve introducción a la topología y los fractales. Explica que la topología es una de las ramas más jóvenes de las matemáticas que estudia las propiedades geométricas que se conservan bajo deformaciones continuas. Luego describe algunos conceptos topológicos como la equivalencia de objetos que pueden transformarse sin romperse. Finalmente, destaca las contribuciones de la topología a otras áreas y sus aplicaciones en biología y otras ciencias.
This document summarizes key points from an IOM report on emergency care for children and discusses recommendations to improve pediatric emergency care readiness. It notes that children have unique medical needs that often aren't met in the emergency system. The three main goals discussed are coordination, regionalization, and accountability. Several recommendations are provided, including developing pediatric emergency care guidelines and competencies, appointing pediatric coordinators, improving safety, and enhancing family-centered and disaster preparedness.
The document discusses adaptations of pufferfish and provides examples of applying Bloom's Taxonomy levels including:
1) Remembering pufferfish adaptations like inflating and venomous spines.
2) Understanding by providing an example of a venom-shooting reptile like a spitting cobra.
3) Analyzing which of Jupiter's moons is most likely to support life, identified as Europa.
El documento describe el ferrocarril Transiberiano, la ruta ferroviaria continua más larga del mundo que conecta Moscú con el lejano oriente Ruso, China y Mongolia. Ofrece varias opciones de viajes Transiberianos que atraviesan Rusia y pasan por diferentes países como Mongolia o Manchuria hasta llegar a Beijing, cruzando ríos y admirando paisajes como el Lago Baikal.
Matthew Gaiser Mindsumo Shower Winning EntryMatthew Gaiser
The document proposes a shower tool that would allow users to add various additives like perfume, moisturizer, or color to their shower water by selecting cartridges. The tool would attach to the shower and mix the additives into the water stream. This would provide spa-like experiences and allow easy application of products like sunscreen without manual effort. The tool would utilize technologies like those in printers and be integrated with the user's preferences via an Internet-connected system that could also control other shower elements. Consumers would enjoy a better shower, save time, and gain easy access to relaxing experiences.
This document provides an overview of an India quiz held on August 16th, 2015. It outlines the rules of the quiz, which included 25 multiple choice questions with 5 starred tiebreaker questions. The top 5 teams and highest scoring first-year team would qualify for the finals. The questions covered a range of topics about Indian culture, history and current events. Sample questions included identification of symbols from Tamil culture, scientific names related to India, Indian Independence Day Google Doodles, and codenames used in the Pokhran-II nuclear tests.
"Golden Time Management Quotes-" Time is Precious!Shyama Shankar
Even when you are viewing this ppt, so many things are happening around you, quite significantly. Try to allocate your time wisely and pl. understand that work is utmost fun and not whiling away time.
Este documento descreve uma dissertação de mestrado sobre a virtualização de autómatos programáveis (PLCs). O documento apresenta três objetivos principais: 1) desenvolver um modelo de virtualização para PLCs; 2) construir uma aplicação que emula um PLC específico executando-se num computador pessoal; 3) criar editores gráficos e visualizadores para desenvolver, armazenar e simular programas para o PLC virtual de uma forma simples e rápida.
Modelagem de Ambientes de Computação Ubíqua Utilizando SimulaçãoJurmir Canal Neto
1. O documento descreve um trabalho de conclusão de curso sobre modelagem de ambientes de computação ubíqua utilizando simulação.
2. A metodologia inclui revisão bibliográfica sobre sistemas distribuídos, ambientes inteligentes, computação móvel e ubíqua, além de modelagem e simulação.
3. O trabalho propõe um ambiente experimental com tecnologias como Java e MySQL para simular a localização de clientes móveis por sensores em um ambiente ubíqua.
1) O documento apresenta notas de aula sobre processamento digital de imagens, abordando conceitos como amostragem, quantização, sistemas de cores e modelos de imagens digitais.
2) O texto é dividido em vários capítulos, incluindo introdução ao processamento de imagens, dispositivos gráficos, filtros espaciais, operações algébricas e topológicas e transformadas.
3) As notas de aula fornecem os fundamentos teóricos e conceituais necessários para o estudo de process
Este trabalho apresenta um modelo heurístico para seleção dinâmica de foco em ambientes virtuais de primeira pessoa utilizando dispositivos HMD. O modelo propõe a simulação de profundidade de campo para reduzir desconfortos visuais nos usuários. Foi desenvolvido um plugin para um motor de jogo que implementa a heurística considerando distância dos objetos, região de interesse e valores atribuídos. Testes com usuários validaram a proposta ao reduzirem os sintomas de desconforto relatados quando o plugin estava at
Dissertação de Mestrado - Planejamento para Serviços Web SemânticosJuliana Chahoud
Planejamento para serviços Web semânticos
Juliana Jabra Chahoud
DISSERTAÇÃO APRESENTADA AO
INSTITUTO DE MATEMATICA E ESTATISTICA
DA UNIVERSIDADE DE SAO PAULO
PARA OBTENÇÃO DO TÍTULO DE MESTRE EM CÊNCIAS
Área de Concentração: Ciência da Computação
Orientadora: Profa. Dra. Leliane Nunes de Barros
São Paulo, agosto de 2006.
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
A segurança e a confiabilidade em sistemas embarcados são áreas críticas e de recente desenvolvimento. Além das complicações inerentes à área de segurança, existem restrições quanto a capacidade de processamento e de armazenamento destes sistemas. Isto é agravado em sistemas de baixo custo. Neste trabalho, é apresentada uma técnica que, aplicada à troca de contexto em sistemas operacionais, aumentando a segurança destes. A técnica é baseada na detecção e correção de erros em sequência de valores binários. Para realização dos testes, foi desenvolvido um sistema operacional de tempo real e implementado numa placa de desenvolvimento. Observou-se que o consumo de processamento das técnicas de detecção de erro são inferiores às de correção, cerca de 2% para CRC e 8% para Hamming. Objetivando-se minimizar o tempo de processamento optou-se por uma abordagem mista entre correção e detecção. Esta abordagem reduz o consumo de processamento medida que os processos que exigem tempo real apresentem uma baixa taxa de execução, quando comparados com o período de troca de contexto. Por fim, fica comprovada a possibilidade de implementação desta técnica em qualquer sistema embarcado, inclusive em processadores de baixo custo.
Este documento apresenta um trabalho sobre a aplicação da abordagem GQM (Goal/Question/Metric) para definir um processo de engenharia de requisitos para sistemas embarcados. O trabalho realizou uma avaliação do processo de desenvolvimento de micro e pequenas empresas desenvolvedoras de software embarcado e propõe um processo de engenharia de requisitos para este tipo de sistema e empresas. A abordagem GQM foi utilizada para definir os objetivos de medição e melhoria do processo proposto.
Comparação de Tecnologias para Web - JBoss Seam e Ruby on RailsMawcor
Este documento apresenta uma comparação entre os frameworks JBoss Seam e Ruby on Rails. Inicialmente descreve os objetivos, justificativa e metodologia do trabalho. Em seguida, aborda conceitos de linguagens de programação, Java, Ruby, estrutura MVC, servidores web e frameworks. Posteriormente realiza testes de desempenho e análise do código produzido por cada tecnologia. Por fim, conclui que Ruby on Rails possui curva de aprendizado mais suave e é mais rápido para desenvolvimento, mas JBoss Seam apresent
Virtualizacao de Servidores: Um comparativo entre VMware e XenAlan Brumate
Este documento apresenta uma pesquisa sobre virtualização de servidores utilizando as ferramentas VMware e Xen. O resumo descreve que o objetivo é demonstrar as formas de virtualização, comparar o desempenho das ferramentas VMware e Xen, e avaliar como a virtualização pode reduzir custos e aumentar desempenho para as empresas. Os principais resultados encontrados são que a virtualização é uma alternativa para melhor aproveitamento dos recursos e que as empresas de virtualização disponibilizam cada vez mais facilidades para implantação.
Desenvolvimento de um Sistema de Controle para Quadrirrotores UmbertoXavierdaSilva
Este trabalho descreve o desenvolvimento de um sistema de controle para quadrirrotores utilizando duas controladoras open-source diferentes. O autor construiu dois quadrirrotores e realizou a calibração dos controles clássicos em cascata nas controladoras através de comunicação com o SIMULINK, buscando um resultado ótimo entre saída e referência.
Implementation of a Participatory Sensing Solution to Collect Data About Pave...Eduardo Carrara de Araujo
The focus of this work is the development of an alternative proposition to evaluate
the pavement conditions for a given city using a participatory sensing solution.
To substantiate the project the following areas had to be investigated: proposals
and standards in pavement management, how the pavement evaluation is done and
the effects of a bad quality pavement on the vehicle’s passengers. Research in the
areas of participatory sensing, tecnologies in mobility and software engineering were
done to ascertain how the relationship between these topics could collaborate in the
problem’s solution. With this elements in place it was possible to design, analysis and
develop a proof of concept as a software solution based in a client server architecture,
in which the client application collects data and the server application handles the
data storage and availability. The collected quantitative information analysis showed
that it is possible to determine the presence of defects and assess the pavement
quality even using simple collection devices like a smartphone, and also enable the
collection of qualitative information that could help measure the pavement quality
impact in the perspective of its users.
A engenharia de software trouxe organização e foco na qualidade para a construção de softwares. Criada a menos de 50 anos. Com o passar dos anos, as maneiras de desenvolver softwares foram se ramificando, criando processos específicos para cada tipo de software, ou mesmo, objetivos de softwares, chegando em um momento que a engenharia de software propôs a construção de softwares componentizados. Esta nova forma de construir software trouxe benefícios à engenharia, que por fim, deu-se o nome de Engenharia de Software Baseada em Componentes (ESBC). A ESBC é um ramo da engenharia de software com foco na reutilização de softwares, que através de componentes moduláveis proporcionam aplicações mais robustas e confiáveis. Dentro da ESBC, existem diferentes tipos de processos de softwares para construção de aplicações baseadas em componentes, com isto, o objetivo deste trabalho é apresentar o estudo de dois processos, Catalysis e UML Components, e, diante disto, fazer uma comparação entre etapas e artefatos gerados nestes processos, para identificar qual oferece subsídios para uma melhor especificação de software baseado em componentes. A pesquisa aplicada foi de caráter exploratório, utilizando como estratégia um estudo comparativo entre as etapas e artefatos dos processos citados. Conclui-se, que é de grande importância a construção de softwares moduláveis, pois com isso, além da arquitetura do software manter uma estrutura flexível em forma de componentes de negócios, possibilita a evolução do software sem interferir no todo, aplicando a manutenção somente no componente desejado. Por fim, o reuso de componentes trazem maior confiança para a aplicação, pois como os componentes já estão desenvolvidos e operando em outros softwares, são considerados maduros, com bugs já corrigidos, proporcionando um aumento da qualidade do software.
Palavras-chave: Engenharia de Software. ESBC. Catalysis. UML Components
Desenvolvimento de sites responsivos utilizando o framework Bootstrap com apl...joselialcosta
Este documento descreve um trabalho de conclusão de curso sobre o desenvolvimento de sites responsivos utilizando o framework Bootstrap com foco em user experience. O trabalho foi realizado por Flavia de Azevedo Marques Miguel e Josélia Leite Costa sob a orientação do professor Eduardo Rosalém Marcelino na Faculdade de Tecnologia Termomecânica.
Este documento descreve um projeto de dissertação sobre o desenvolvimento de um veículo terrestre autônomo. Apresenta o estado da arte dos veículos autônomos terrestres, incluindo aplicações, requisitos, mobilidade e arquiteturas. Detalha a análise de requisitos realizada para o projeto, considerando o ambiente de operação e componentes do veículo. Discute também os modelos cinemático e dinâmico para o controle de locomoção.
Investigação de Predição de Fluxos em Redes de ComputadoresOrlando Junior
Um importante desafio na área de Redes Definidas por Software é a minimização das consultas enviadas pelo switch ao controlador, que produzem um atraso inicial na comunicação. Esse problema pode ser resolvido se o controlador instalar antecipadamente os fluxos nos switches, autorizando a comunicação antes da chegada do primeiro pacote. Com essa motivação, este trabalho investiga o problema da predição de fluxos em redes de computadores. Duas redes de aplicação são mapeadas em diversos modelos topológicos de Redes Complexas para representar o tráfego das informações das redes de aplicação nas redes físicas subjacentes. Diversos algoritmos tradicionais de Predição de Links são utilizados separadamente para predizer os fluxos em cada uma das redes e também como entrada para técnicas de Aprendizado de Máquina. O problema é ainda modelado em uma nova abordagem de Predição de Links que prediz em conjunto as conexões da rede que se manterão ou se formarão em um instante futuro. Os resultados experimentais mostram que as técnicas de Aprendizado de Máquina podem ser usadas para a predição de fluxos com desempenho significativo em muitas situações.
Este documento apresenta um resumo da tese de doutorado de José Mauro Teixeira Marinho defendida na COPPE/UFRJ em 2008. A tese descreve o desenvolvimento de uma ferramenta computacional capaz de simular sistemas de energia elétrica monofásicos e trifásicos considerando condições dinâmicas e de desequilíbrio. Modelos trifásicos mais precisos são desenvolvidos para máquinas síncronas e de indução. Uma formulação proposta permite a modelagem trifásica em parte do
Plano de projeto: Bichos do Campus na WebJorge Roberto
1. O documento apresenta o plano de projeto de software para o sistema "Bichos do Campus na Web".
2. O sistema tem o objetivo de melhorar a visibilidade e o processo de adoção de animais disponíveis no campus da Universidade Federal de Sergipe.
3. O plano detalha os requisitos, estimativas de tempo e custo, análise de riscos, planejamento, equipe e controles de qualidade para o desenvolvimento do sistema.
Este documento apresenta um estudo comparativo entre três frameworks Java populares para desenvolvimento de aplicações web: JSF 2.0, Spring Web MVC e Grails. Ele descreve as características e implementações do padrão MVC de cada um, além de comparar validação, suporte a Ajax, popularidade e outras métricas. Um protótipo de sistema financeiro é desenvolvido em cada framework para verificar suas vantagens na prática.
Interface gráfico para gestão de uma agência de viagenspjclima
Este documento descreve o desenvolvimento de uma interface gráfica para gestão de uma agência de viagens nacional. O sistema permite inserir, alterar e listar dados de clientes, autocarros, atividades, viagens e reservas. Além disso, fornece estatísticas e automatismos como a geração de códigos e atribuição de autocarros a atividades.
Semelhante a Animação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos (20)
Interface gráfico para gestão de uma agência de viagens
Animação Foto-Realista de Fluidos Utilizando Métodos Lagrangeanos
1. UNIVERSIDADE EST´ACIO DE S´A
JO˜AO VICENTE PIRES DOS REIS FILHO
ANIMAC¸ ˜AO FOTO-REALISTA DE
FLUIDOS UTILIZANDO
M´ETODOS LAGRANGEANOS
Petr´opolis
2010
2. JO˜AO VICENTE PIRES DOS REIS FILHO
ANIMAC¸ ˜AO FOTO-REALISTA DE
FLUIDOS UTILIZANDO
M´ETODOS LAGRANGEANOS
Monografia apresentada `a Universidade Est´acio
de S´a como requisito parcial para a obten¸c˜ao do
grau de Bacharel em Sistemas de Informa¸c˜ao.
ORIENTADOR: Prof. D.Sc. Rodrigo Luis de Souza da Silva
Petr´opolis
2010
3. JO˜AO VICENTE PIRES DOS REIS FILHO
ANIMAC¸ ˜AO FOTO-REALISTA DE FLUIDOS UTILIZANDO
M´ETODOS LAGRANGEANOS
Monografia apresentada `a Universidade Est´acio
de S´a como requisito parcial para a obten¸c˜ao do
grau de Bacharel em Sistemas de Informa¸c˜ao.
Aprovada em 26 de fevereiro de 2010.
BANCA EXAMINADORA
Prof. D.Sc. Rodrigo Luis de Souza da Silva
Universidade Federal de Juiz de Fora
Prof. M.Sc. Rog´erio Albuquerque de Almeida
Universidade Est´acio de S´a
5. Agradecimentos
Primeiramente, agrade¸co a Deus por este dia, aqui concluindo mais uma etapa de minha
vida acadˆemica.
Aos meus orientadores professores Rodrigo Luis de Souza da Silva e Gilson Antˆonio
Giraldi por toda paciˆencia, tolerˆancia, for¸ca e principalmente pelos conhecimentos e exem-
plos cient´ıficos e matem´aticos. As s´abias sugest˜oes que me deram ao longo do caminho que
trilhei, fizeram com que esse se tornasse mais suave e melhor desenvolvido.
Aos meus pais, n˜ao s´o pelo carinho e suporte incondicionais, mas tamb´em pela intui¸c˜ao
do meu pai ao comprar nosso primeiro computador, quando eu ainda era crian¸ca, o que
despertou em mim a curiosidade pela inform´atica.
Aos meus verdadeiros amigos, Ana, Andr´e, Fernando e Germano pelo companheirismo,
lealdade, e por serem as pessoas sinceras com quem eu sempre posso contar.
A todos os demais amigos, familiares e professores que contribu´ıram de maneira direta
ou indireta, que porventura n˜ao foram citados, meus sinceros agradecimentos.
6. Resumo
Neste trabalho, ser´a apresentado um software para anima¸c˜ao computacional de fluidos.
Inicialmente, ser´a discutido o modelo matem´atico utilizado na simula¸c˜ao. Em seguida,
ser˜ao mostrados os dois modos de utiliza¸c˜ao do aplicativo criado: um em tempo real
para experimenta¸c˜ao dos parˆametros de anima¸c˜ao e outro em modo off-line com o obje-
tivo de alcan¸car um maior n´ıvel de realismo gr´afico. Aspectos de engenharia de software
tamb´em ser˜ao discutidos, tais como a metodologia de desenvolvimento utilizada e a etapa
de modelagem. Finalmente, ser˜ao apresentadas as conclus˜oes descrevendo a usabilidade e
potencialidade do aplicativo criado para gera¸c˜ao de anima¸c˜ao de fluidos.
Palavras-chave: Dinˆamica de Fluidos; Visualiza¸c˜ao Cient´ıfica; Renderiza¸c˜ao.
7. Abstract
In this work, a software for computational fluid animation will be presented. First, the
mathematical model used in the simulation will be discussed. Then, there will be shown
the two modes of utilization of the created software application: a real-time mode which
allows experimentation with the animation parameters and an off-line mode which aims
to achieve a greater level of graphics realism. Software engineering aspects will also be
discussed, such as the development methodology and the modeling phase. Finally, the
conclusions are shown focusing on the usability and potential of the application for fluid
animations.
Keywords: Fluid Dynamics; Scientific Visualization; Rendering.
9. Lista de Ilustra¸c˜oes
3.1 Malha regular utilizada para acelerar os c´alculos. . . . . . . . . . . . . . . 20
4.1 Interface Gr´afica com Usu´ario e Painel de Controle. . . . . . . . . . . . . . 25
4.2 Diversos Modos de Visualiza¸c˜ao do Fluido. . . . . . . . . . . . . . . . . . . 26
4.3 Dados do Modelo do Fluido sendo visualizados. . . . . . . . . . . . . . . . 27
4.4 Etapa de tra¸cado do raio. . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.1 Diagrama de Casos de Uso. . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2 Diagrama de Classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3 Diagrama de Sequˆencia: Inicializa¸c˜ao da Aplica¸c˜ao. . . . . . . . . . . . . . 40
5.4 Diagrama de Sequˆencia: Inicializa¸c˜ao do Fluido. . . . . . . . . . . . . . . . 41
5.5 Diagrama de Sequˆencia: Atualiza¸c˜ao do Fluido. . . . . . . . . . . . . . . . 43
5.6 Diagrama de Sequˆencia: Renderiza¸c˜ao em Off-line. . . . . . . . . . . . . . 45
6.1 Velocidade inicial das part´ıculas (em vermelho). . . . . . . . . . . . . . . . 47
6.2 Sequˆencia de imagens do primeiro exemplo de anima¸c˜ao. Os tempos est˜ao
marcados em segundos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3 Sequˆencia de imagens do segundo exemplo de anima¸c˜ao. Os tempos est˜ao
marcados em segundos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
6.4 Sequˆencia de imagens do terceiro exemplo de anima¸c˜ao. Os tempos est˜ao
marcados em segundos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
10. Cap´ıtulo 1
Introdu¸c˜ao
Nas ´ultimas trˆes d´ecadas, t´ecnicas e modelos em dinˆamica de fluidos computacional (DFC)
vˆem sendo aplicados com sucesso em computa¸c˜ao gr´afica e gera¸c˜ao de efeitos visuais. A
anima¸c˜ao computacional de fluidos ´e uma sub-´area da Modelagem Baseada em F´ısica
(Physics Based Modeling). Nesta ´area, um grande desafio vem da complexidade do com-
portamento do fluido, que ´e regido a partir da intrincada intera¸c˜ao de v´arios fenˆomenos
como a convec¸c˜ao, difus˜ao, turbulˆencia e tens˜ao superficial [23]. Al´em disso, a anima¸c˜ao
computacional de fluidos ´e um campo multidisciplinar, ou seja, n˜ao exige apenas conheci-
mentos sobre a f´ısica dos fenˆomenos, mas tamb´em sobre computa¸c˜ao gr´afica e visualiza¸c˜ao
cient´ıfica [39, 11].
As pesquisas em anima¸c˜ao de fluidos se dividem basicamente em trˆes etapas [39].
Primeiramente, temos a busca de novos modelos em DFC que sejam mais eficientes do
ponto de vista da computa¸c˜ao gr´afica. Esta etapa envolve tanto a pesquisa de novos mo-
delos f´ısicos quanto o ajuste de modelos j´a conhecidos, sem perder de vista o fato de que o
objetivo final ´e a gera¸c˜ao de efeitos visuais, e n˜ao a descri¸c˜ao de fenˆomenos naturais [7, 11].
Uma vez resolvidas numericamente as equa¸c˜oes de fluidos, passa-se a fase de renderi-
za¸c˜ao, onde t´ecnicas de computa¸c˜ao gr´afica s˜ao aplicadas sobre os campos gerados, com o
objetivo de criar efeitos visuais, tais como transparˆencia, imagens refletidas na superf´ıcie
de um l´ıquido, ou mesmo, efeitos especiais que incluem deforma¸c˜ao de paisagens, incˆendios,
10
11. CAP´ITULO 1. INTRODUC¸ ˜AO 11
etc [17, 27, 18, 35].
Finalmente, as t´ecnicas adotadas devem ser incorporadas a um software, com inter-
faces gr´aficas convenientes, o qual permita o uso destes recursos (modelos de fluidos e
computa¸c˜ao gr´afica) por artistas gr´aficos e animadores (ver [38], como exemplo).
Neste trabalho, para a simula¸c˜ao e modelagem dos fluidos foi utilizado o m´etodo SPH
(Smoothed Particle Hydrodynamics), juntamente com as equa¸c˜oes de Navier-Stokes [23, 11].
O SPH foi escolhido devido suas vantagens, como por exemplo o fato de n˜ao depender de
uma malha tridimensional [3] previamente definida. Isto permite criar cenas dinˆamicas,
com fronteiras vari´aveis e novos objetos que entram na cena `a medida que esta se desen-
volve, sem um custo extra de regerar a malha sempre que tais altera¸c˜oes ocorrem.
Foi constru´ıdo um software que desempenha duas fun¸c˜oes. Primeiro, oferece um modo
de simula¸c˜ao com renderiza¸c˜ao em tempo real, que permite a realiza¸c˜ao de testes e ajustes
dos diversos parˆametros num´ericos e de modelagem dos fluidos, como a press˜ao, viscosidade,
entre outros. Com isso, os artistas gr´aficos ser˜ao capazes de fazer os ajustes necess´arios
para obter a anima¸c˜ao que desejarem.
A renderiza¸c˜ao em tempo real ´e baseada em m´etodos tradicionais de scanline rendering
e em t´ecnicas simplificadas [3]. Por exemplo, as part´ıculas do fluido s˜ao representadas
por pequenas esferas coloridas. Tamb´em ´e poss´ıvel a visualiza¸c˜ao de dados num´ericos
da simula¸c˜ao, tais como o gradiente de press˜ao, velocidade e acelera¸c˜ao das part´ıculas,
representados por pequenos vetores coloridos em fun¸c˜ao da intensidade de cada campo.
Campos escalares (densidade, m´odulo da velocidade, etc.) s˜ao visualizados utilizando-se
uma escala de cores.
A segunda fun¸c˜ao ´e um modo de renderiza¸c˜ao em off-line que utiliza o PBRT (Physically-
Based Ray Tracer); uma biblioteca baseada em f´ısica para renderiza¸c˜ao foto-realista. Neste
caso, s˜ao utilizadas t´ecnicas baseadas em ray-tracing, que ´e um m´etodo que simula o tra-
jeto que os raios de luz percorrem desde as fontes luminosas, passando pelas reflex˜oes e
refra¸c˜oes nos diversos objetos da cena, at´e chegar `a lente da cˆamera virtual. Apesar do seu
alto custo computacional, essas t´ecnicas s˜ao capazes de criar imagens foto-realistas com
maior grau de detalhamento [27].
12. CAP´ITULO 1. INTRODUC¸ ˜AO 12
Para diminuir o custo de processamento da renderiza¸c˜ao em off-line e melhor utilizar os
recursos computacionais dispon´ıveis atualmente, foram utilizadas t´ecnicas de multithreading
para possibilitar a renderiza¸c˜ao de v´arios quadros da anima¸c˜ao em paralelo, utilizando to-
dos os n´ucleos de processamento oferecidos pelos processadores atuais [13].
Este trabalho est´a estruturado como segue. No cap´ıtulo 2 ´e feita uma breve revis˜ao
sobre alguns trabalhos relacionados. Em seguida apresenta-se o m´etodo para simula¸c˜ao de
fluidos que foi utilizado. No cap´ıtulo 4, s˜ao mostradas as t´ecnicas de renderiza¸c˜ao presentes
no aplicativo desenvolvido. Continuando, ´e discutida no cap´ıtulo 5 a metodologia utilizada
no desenvolvimento do aplicativo. Finalmente, no cap´ıtulo 6 s˜ao apresentados os resultados
obtidos e no cap´ıtulo 7 s˜ao expostas as conclus˜oes e trabalhos futuros.
13. Cap´ıtulo 2
Trabalhos Relacionados
Os diferentes m´etodos encontrados na literatura para anima¸c˜ao de fluidos, baseados em
modelos de DFC, s˜ao fundamentados nas equa¸c˜oes de Navier-Stokes, com t´ecnicas de
discretiza¸c˜ao baseadas em diferen¸cas finitas impl´ıcitas [34] e expl´ıcitas [9], bem como em
m´etodos lagrangeanos tais como o M´etodo das Caracter´ısticas [34], Smoothed Particle
Hydrodynamics (SPH) [6] e Moving-Particle Semi-Implicit (MPS) [28].
O m´etodo SPH ´e livre de malhas (assim como o MPS) e vem sendo aplicado com sucesso
em simula¸c˜oes de fluidos compress´ıveis, para a descri¸c˜ao da dinˆamica de materiais, estudo
de explos˜oes, fenˆomenos de transporte, dentre outras aplica¸c˜oes [22]. O SPH utiliza um
sistema de part´ıculas e n´ucleos de interpola¸c˜ao para a discretiza¸c˜ao das equa¸c˜oes de Navier-
Stokes. Implementa¸c˜oes deste m´etodo para arquiteturas paralelas foram desenvolvidas com
o objetivo de melhorar a performance do mesmo [36, 30]. Do ponto de vista da computa¸c˜ao
gr´afica, o fato do SPH n˜ao depender de uma malha previamente definida ´e uma vantagem,
se comparado com os m´etodos cl´assicos. As cenas em um filme s˜ao em geral dinˆamicas,
com fronteiras vari´aveis em fun¸c˜ao de novos objetos que entram na cena `a medida que esta
se desenvolve. Desta forma, m´etodos que n˜ao fazem uso de malhas, podem ser vantajosos
por evitar o custo extra de regerar a malha sempre que tais altera¸c˜oes ocorrem. Essas van-
tagens vˆem despertando o interesse dos pesquisadores em computa¸c˜ao gr´afica. Nesta ´area,
encontramos aplica¸c˜oes do SPH para simuladores em medicina [24], anima¸c˜ao de fluidos so-
13
14. CAP´ITULO 2. TRABALHOS RELACIONADOS 14
bre superf´ıcies de terrenos [21], intera¸c˜ao fluido-fluido [25] e fluido-s´olido [33, 12], simula¸c˜ao
de fluidos multi-fase [16], simula¸c˜ao de superf´ıcies livres [4, 8, 2, 20]. Al´em disso, imple-
menta¸c˜oes em GPU vˆem sendo exploradas para melhorar o desempenho computacional das
aplica¸c˜oes [14].
Por exemplo, no campo de sistemas de treinamento de cirurgias m´edicas, em [24] foi
desenvolvida uma t´ecnica baseada no SPH para a simula¸c˜ao interativa do sangue. J´a no
campo da simula¸c˜ao de fluxos superficiais sobre terrenos, em [21] foram estudadas t´ecnicas
baseadas no SPH parar criar simula¸c˜oes f´ısicas realistas de rios. Essas t´ecnicas permitem
que a simula¸c˜ao seja feita em tempo real e, portanto, usada em jogos e ambientes de
realidade virtual. No tema envolvendo intera¸c˜ao fluido-s´olido o trabalho [33] descreve um
m´etodo baseado em SPH para simula¸c˜ao de l´ıquidos e s´olidos deform´aveis e sua intera¸c˜ao.
O modelo descrito por esse trabalho tamb´em pode ser utilizado para simula¸c˜ao de fluidos
multi-fase (l´ıquido-s´olido), como tamb´em demonstrado em [16]. A ´area de simula¸c˜ao de
superf´ıcies livres ´e importante para a anima¸c˜ao de cenas envolvendo mares, rios, inun-
da¸c˜oes, dentre outras. Podemos entender como superf´ıcie livre a regi˜ao do fluido que n˜ao
est´a em contato com a fronteira do dom´ınio de escoamento. Um exemplo interessante
desta linha de trabalhos pode ser encontrado em [20] onde ´e descrito um m´etodo SPH para
fluidos incompress´ıveis utilizado para anima¸c˜ao de ondas do mar. O m´etodo utiliza termos
de corre¸c˜ao, derivados de formula¸c˜oes variacionais, para garantir a incompressibilidade de
fluido.
Finalmente, t´ecnicas de renderiza¸c˜ao precisam ser utilizadas para garantir o n´ıvel de
realismo ou efeito visual desejado. A renderiza¸c˜ao foto real´ıstica pode ser feita atrav´es de
v´arios algoritmos, incluindo path tracing, bidirectional path tracing [15], Metropolis light
transport [35] e photon mapping [18]. Artigos de revis˜ao interessantes nessa ´area podem
ser encontrados em [1, 17].
Como um exemplo de um software j´a em uso na ´area de anima¸c˜ao computacional de
fluidos, pode ser citado o Realflow [31]. No entanto, ´e um aplicativo comercial cujo c´odigo
´e fechado, o que implica em custos para obten¸c˜ao de licen¸ca e limita¸c˜oes para incorporar
novas funcionalidades. Portanto, uma motiva¸c˜ao para desenvolvimento do aplicativo des-
15. CAP´ITULO 2. TRABALHOS RELACIONADOS 15
crito neste texto ´e oferecer uma alternativa de c´odigo aberto, que seja extens´ıvel a novas
funcionalidades.
O foco do presente trabalho ´e a gera¸c˜ao de anima¸c˜oes de fluidos realistas tanto do ponto
de vista f´ısico quanto de renderiza¸c˜ao. Assim, nosso trabalho envolve superf´ıcies livres e
t´ecnicas de ilumina¸c˜ao global. Al´em disso, estamos tamb´em interessados na anima¸c˜ao de
cenas envolvendo intera¸c˜ao fluido-solido.
16. Cap´ıtulo 3
M´etodo de Simula¸c˜ao
Este cap´ıtulo come¸ca com uma breve descri¸c˜ao do papel das simula¸c˜oes num´ericas em
computadores e dos procedimentos utilizados para resolver tais simula¸c˜oes, descrevendo
quais s˜ao as principais etapas de resolu¸c˜ao e como elas foram importantes na escolha do
m´etodo utilizado neste trabalho.
Com a ajuda do crescente poder computacional, as simula¸c˜oes num´ericas vˆem ganhando
destaque tanto na resolu¸c˜ao de problemas pr´aticos complexos da engenharia e ciˆencia
quanto na aproxima¸c˜ao dos mesmos criando representa¸c˜oes virtuais para outros fins, como
o entretenimento e a ilustra¸c˜ao gr´afica. A simula¸c˜ao num´erica traduz os aspectos mais
importantes de um problema f´ısico para uma descri¸c˜ao matem´atica discreta, que pode ser
usada pra recriar e resolver problemas e fenˆomenos do mundo real no computador.
Para se criar uma solu¸c˜ao para esse tipo de simula¸c˜ao, alguns passos s˜ao necess´arios.
Primeiramente modelos matem´aticos, possivelmente com algumas simplifica¸c˜oes, s˜ao cria-
dos para representar o fenˆomeno real observado. Geralmente esses modelos s˜ao expressos
atrav´es de equa¸c˜oes governantes com condi¸c˜oes iniciais e condi¸c˜oes de borda apropriadas.
As equa¸c˜oes governantes podem ser um conjunto de equa¸c˜oes diferenciais ordin´arias, de
equa¸c˜oes diferenciais parciais, de equa¸c˜oes de integra¸c˜ao ou de equa¸c˜oes em quaisquer ou-
tras formas, mas que sejam representa¸c˜oes de leis da f´ısica. As condi¸c˜oes de borda e iniciais
s˜ao necess´arias para se determinar o valor das vari´aveis do campo de simula¸c˜ao no espa¸co
16
17. CAP´ITULO 3. M´ETODO DE SIMULAC¸ ˜AO 17
e no tempo. [22]
Em seguida, para resolver numericamente as equa¸c˜oes governantes, ´e necess´ario a uti-
liza¸c˜ao de um m´etodo para a discretiza¸c˜ao do dom´ınio do problema. Em outras palavras,
´e preciso representar um problema do mundo real que ocorre em um espa¸co cont´ınuo de
uma forma discretizada, ou seja, com um n´umero finito de componentes, de maneira que o
computador seja capaz de guardar os dados da simula¸c˜ao em sua mem´oria e os processar.
Essa representa¸c˜ao ´e conhecida como o modelo computacional do problema a ser simulado
e ´e utilizada para as aproxima¸c˜oes num´ericas.
H´a dois tipos de descri¸c˜oes principais que podem ser usados na cria¸c˜ao deste modelo
computacional: a Euleriana e a Lagrangeana. Do ponto de vista das equa¸c˜oes governantes,
a descri¸c˜ao Euleriana ´e uma descri¸c˜ao espacial e ´e tipicamente representada pelo m´etodo das
diferen¸cas finitas [22]. Ela subdivide a geometria do dom´ınio em regi˜oes fixas (cubos, por
exemplo) e calcula os valores num´ericos atrav´es do tempo sempre nessas mesmas regi˜oes. J´a
a Lagrangeana ´e uma descri¸c˜ao material geralmente representada pelo m´etodo de elementos
finitos [22]. Neste caso, s˜ao distribu´ıdos pelo dom´ınio inicial do problema pontos de aferi¸c˜ao
dos valores num´ericos, que s˜ao mut´aveis no tempo, podendo acompanhar de forma mais
flex´ıvel eventuais mudan¸cas no formato geom´etrico do dom´ınio do problema, o que ´e uma
das grandes vantagens deste tipo de descri¸c˜ao para a simula¸c˜ao de fluidos.
Ap´os a discretiza¸c˜ao do dom´ınio, ´e feita uma discretiza¸c˜ao num´erica para modificar
opera¸c˜oes de integra¸c˜ao ou deriva¸c˜ao das equa¸c˜oes governantes de sua forma cont´ınua para
sua representa¸c˜ao discreta. A discretiza¸c˜ao num´erica ´e baseada na teoria de aproxima¸c˜ao de
fun¸c˜oes e a sua precis˜ao est´a intimamente ligada ao modo como o dom´ınio foi discretizado.
Em seguida, feitas ambas as discretiza¸c˜oes num´erica e do dom´ınio, o conjunto de
equa¸c˜oes originais das leis f´ısicas que regem a simula¸c˜ao ´e convertido num conjunto de
equa¸c˜oes alg´ebricas ou equa¸c˜oes diferenciais ordin´arias ou parciais, que podem ser re-
solvidas utilizando-se rotinas num´ericas j´a existentes, como por exemplo um esquema de
integra¸c˜ao como o Leapfrog [29, 5], que foi utilizado neste trabalho.
Finalmente, a ´ultima etapa para criar a simula¸c˜ao ´e codificar e implementar em uma lin-
guagem de programa¸c˜ao todas as etapas anteriormente descritas, levando em considera¸c˜ao
18. CAP´ITULO 3. M´ETODO DE SIMULAC¸ ˜AO 18
a precis˜ao num´erica, a performance, a robustez e a facilidade de uso.
A seguir, ser´a descrito em mais detalhes o m´etodo num´erico lagrangeano utilizado na
implementa¸c˜ao deste trabalho.
3.1 Smoothed Particle Hydrodynamics (SPH)
Nesta se¸c˜ao ser˜ao explicadas as ideias b´asicas do SPH, como a representa¸c˜ao do fluido
discretizada aproximada por part´ıculas e a utiliza¸c˜ao de n´ucleos de suaviza¸c˜ao.
O SPH representa o modelo f´ısico do fluido atrav´es de um sistema de part´ıculas, que
´e um conjunto finito de elementos. Cada part´ıcula se encontra numa posi¸c˜ao discreta do
espa¸co e cont´em propriedades como massa, densidade, press˜ao e velocidade.
A condi¸c˜ao inicial das part´ıculas (valor inicial de suas propriedades) pode ser variada
para se obter diferentes anima¸c˜oes. No entanto, ´e importante para a estabilidade da simu-
la¸c˜ao que a massa de todas as part´ıculas seja igual e constante durante cada simula¸c˜ao. J´a
as posi¸c˜oes iniciais dependem do formato geom´etrico do dom´ınio. As part´ıculas podem ser
distribu´ıdas em um grid regular dentro do espa¸co do dom´ınio ou em posi¸c˜oes aleat´orias.
Durante a simula¸c˜ao, o dom´ınio conta com condi¸c˜oes de borda (ou condi¸c˜oes de con-
torno) que definem como tratar part´ıculas que eventualmente saiam do dom´ınio. Al´em
disso, ´e importante notar que os fundamentos do SPH est˜ao na teoria de interpola¸c˜ao.
Assim, ele permite que quantidades de um campo definidas apenas em posi¸c˜oes discretas
possam ser avaliadas em qualquer posi¸c˜ao do espa¸co. Para isso, o SPH distribu´ı essas
quantidades numa vizinhan¸ca local de raio definido usando n´ucleos de suaviza¸c˜ao. Esses
n´ucleos s˜ao fun¸c˜oes matem´aticas utilizadas durante a atualiza¸c˜ao das propriedades das
part´ıculas em cada novo passo da simula¸c˜ao e definem como cada part´ıcula interage com
as suas vizinhas.
19. CAP´ITULO 3. M´ETODO DE SIMULAC¸ ˜AO 19
O movimento do fluido ´e descrito pelo SPH atrav´es das equa¸c˜oes de Navier-Stokes [23]:
𝜌
𝐷⃗𝑣
𝐷𝑡
= 𝜌
(
∂⃗𝑣
∂𝑡
+ ⃗𝑣 ⋅ ⃗∇⃗𝑣
)
= −⃗∇𝑝 + 𝜌⃗𝑔 + Δ⃗𝑣, (3.1)
onde ⃗𝑣 ´e a velocidade, 𝜌 ´e a densidade, 𝑝 ´e a press˜ao e ⃗𝑔 ´e a for¸ca da gravidade.
Para calcular a densidade, por exemplo, ´e utilizada a seguinte equa¸c˜ao:
⟨𝜌 (𝑥)⟩ =
𝑁∑
𝑗=1
𝑚𝑗𝑊 (𝑥 − 𝑥𝑗, ℎ) , (3.2)
onde 𝑁 ´e o n´umero de part´ıculas, 𝑚𝑗 ´e a massa da part´ıcula 𝑗 e 𝑊 ´e o n´ucleo de
suaviza¸c˜ao utilizado pelo SPH para a interpola¸c˜ao. A press˜ao e a viscosidade s˜ao calculadas
de forma an´aloga a densidade. Entretanto, para cada propriedade da part´ıcula pode ser
escolhido um n´ucleo de suaviza¸c˜ao diferente, sempre buscando uma maior estabilidade na
simula¸c˜ao.
3.2 Detalhes de Implementa¸c˜ao
O dom´ınio utilizado tem o formato de um paralelep´ıpedo, podendo conter uma esfera fixa
em seu interior, que desvia o fluido criando interessantes anima¸c˜oes. H´a trˆes tipos de
condi¸c˜oes de contorno suportadas. A primeira funciona como uma caixa fechada, onde
as part´ıculas “ricocheteiam”em todas as paredes do dom´ınio. Nas outras duas, para cada
part´ıcula que deixa o dom´ınio pela lateral direita, ´e criada uma nova part´ıcula na parede
oposta com a mesma velocidade da que saiu. O primeiro caso ´e a condi¸c˜ao n˜ao-peri´odica,
onde as novas part´ıculas aparecem em um lugar aleat´orio da parede oposta. J´a no segundo,
a condi¸c˜ao peri´odica, as novas part´ıculas reaparecem em uma posi¸c˜ao equivalente a que
elas sa´ıram.
Estruturas de dados adicionais podem ser adotadas para reduzir a complexidade dos al-
goritmos. Primeiramente, uma vez que os n´ucleos de suaviza¸c˜ao possuem suporte limitado,
dado pelo raio ℎ, pode-se usar uma malha regular (grid), com c´elulas (cubos) de lado ℎ, e
20. CAP´ITULO 3. M´ETODO DE SIMULAC¸ ˜AO 20
distribuir o conjunto de part´ıculas pela malha. Assim, dada uma part´ıcula 𝑖, as candidatas
a participarem com a mesma durante o c´alculo das quantidades em quest˜ao ou estar˜ao na
mesma c´elula da part´ıcula 𝑖, ou estar˜ao nas c´elulas vizinhas desta c´elula. Assim, o custo
computacional em um la¸co do esquema acima fica reduzido de 𝒪 (𝑛2
) para 𝒪 (𝑛𝑚), onde
𝑛 ´e o n´umero de part´ıculas e 𝑚 ´e a quantidade m´edia de part´ıculas, por c´elula, da malha
auxiliar (observe que 𝑛 ≫ 𝑚 de maneira geral). A Figura 3.1 ilustra a estrutura de dados
citada acima.
Figura 3.1: Malha regular utilizada para acelerar os c´alculos.
21. CAP´ITULO 3. M´ETODO DE SIMULAC¸ ˜AO 21
A simula¸c˜ao ´e inicializada de acordo com o Algoritmo 1. Posteriormente, ´e necess´aria
a execu¸c˜ao de v´arios passos a cada itera¸c˜ao do SPH, conforme descrito no Algoritmo 2.
Algoritmo 1 Inicializa¸c˜ao da simula¸c˜ao.
1: Constr´oi dois grids regulares;
2: 𝑑𝑥 ⇐ 1.4; {𝑑𝑥 ´e o espa¸camento entre as part´ıculas.}
3: 𝑥 ⇐ 𝑦 ⇐ 𝑧 ⇐ 𝑑𝑥 ÷ 2;
4: 𝑚𝑎𝑥𝑥 ⇐ 48;
5: 𝑚𝑎𝑥𝑦 ⇐ 20;
6: 𝑚𝑎𝑥𝑧 ⇐ 24;
7: enquanto 𝑧 < 𝑚𝑎𝑥𝑧 fa¸ca
8: enquanto 𝑦 < 𝑚𝑎𝑥𝑦 fa¸ca
9: enquanto 𝑥 < 𝑚𝑎𝑥𝑥 fa¸ca
10: se part´ıcula fora da esfera fixa no interior do dom´ınio ent˜ao
11: Cria part´ıcula na posi¸c˜ao (𝑥, 𝑦, 𝑧);
12: Aloca part´ıcula no primeiro grid regular;
13: fim se
14: 𝑥 ⇐ 𝑥 + 𝑑𝑥;
15: fim enquanto
16: 𝑦 ⇐ 𝑦 + 𝑑𝑥;
17: fim enquanto
18: 𝑧 ⇐ 𝑧 + 𝑑𝑥;
19: fim enquanto
20: 𝑡𝑒𝑚𝑝𝑜 ⇐ 0; {tempo que a simula¸c˜ao est´a rodando em milissegundos}
22. CAP´ITULO 3. M´ETODO DE SIMULAC¸ ˜AO 22
Algoritmo 2 Itera¸c˜ao da simula¸c˜ao.
1: enquanto simulando fa¸ca
2: 𝑡𝑒𝑚𝑝𝑜 ⇐ 𝑡𝑒𝑚𝑝𝑜 + 40; {avan¸ca 40 milissegundos no tempo}
3: para todas as c´elulas do primeiro grid fa¸ca
4: se essa c´elula do grid n˜ao estiver vazia ent˜ao
5: 𝐿 ⇐ Lista de part´ıculas vizinhas;
6: para 𝑃 = cada part´ıcula contida nessa c´elula do grid fa¸ca
7: AtualizaPart´ıcula(𝑃, 𝐿); {ver Algoritmo 3}
8: fim para
9: fim se
10: fim para
11: para todas as c´elulas do primeiro grid fa¸ca
12: se essa c´elula do grid n˜ao estiver vazia ent˜ao
13: para 𝑃 = cada part´ıcula contida nessa c´elula do grid fa¸ca
14: Realoca part´ıcula no segundo grid regular;
15: fim para
16: Limpa essa c´elula do primeiro grid;
17: fim se
18: fim para
19: Troca o primeiro grid com o segundo;
20: fim enquanto
23. CAP´ITULO 3. M´ETODO DE SIMULAC¸ ˜AO 23
O Algoritmo 3 demonstra como cada part´ıcula ´e atualizada. ´E nessa hora que os n´ucleos
de suaviza¸c˜ao descritos na se¸c˜ao 3.1 s˜ao usados, e para que isso seja poss´ıvel precisamos
montar uma lista de part´ıculas vizinhas a atual, que estejam dentro do raio de cada n´ucleo.
Em geral, o raio escolhido para todos os n´ucleos ´e 4, que tamb´em normalmente ´e igual ao
tamanho da lateral de cada cubo usado no grid em que as part´ıculas s˜ao alocadas, pois
isso facilita a busca das vizinhas que far˜ao diferen¸ca significativa no c´alculo.
Algoritmo 3 M´etodo AtualizaPart´ıcula (part´ıcula, lista de vizinhas).
1: 𝑃 = part´ıcula;
2: Atualiza a densidade de 𝑃;
3: Atualiza a press˜ao em 𝑃;
4: Calcula a for¸ca exercida pela press˜ao;
5: Calcula a for¸ca exercida pela gravidade;
6: Calcula a for¸ca exercida pela viscosidade;
7: Calcula a acelera¸c˜ao de 𝑃 somando as for¸cas que atuam sobre 𝑃;
8: Atualiza a velocidade de 𝑃 baseado na acelera¸c˜ao de 𝑃;
9: Atualiza a posi¸c˜ao de 𝑃 baseado na velocidade de 𝑃;
10: Trata das colis˜oes com a esfera e com a fronteira do dom´ınio;
24. Cap´ıtulo 4
M´etodo de Renderiza¸c˜ao
Neste cap´ıtulo ser˜ao descritos os dois modos de renderiza¸c˜ao presentes no software, que
s˜ao o modo em tempo real e o modo em off-line.
4.1 Renderiza¸c˜ao em Tempo Real
Para renderiza¸c˜ao em tempo real, foi usado o jME (Java Monkey Engine), uma biblioteca
gr´afica livre e de c´odigo aberto, baseada em grafos de cena para ter alta performance na
renderiza¸c˜ao de jogos e simula¸c˜oes [19]. Tal biblioteca ´e implementada utilizando como
base o OpenGL, uma biblioteca gr´afica de mais baixo n´ıvel de abstra¸c˜ao. Desta forma,
o jME ´e capaz de fazer a renderiza¸c˜ao acessando os recursos de acelera¸c˜ao de v´ıdeo das
placas gr´aficas [26].
A seguir, ser˜ao descritos detalhes deste tipo de renderiza¸c˜ao, como a interface gr´afica
que ´e exibida aos usu´arios e as v´arias formas de visualiza¸c˜ao dispon´ıveis, tanto as que tˆem
como principal foco exibir o fluido ilustrativamente quanto as focadas na exibi¸c˜ao de dados
num´ericos da simula¸c˜ao extra´ıdos a partir do modelo do fluido.
24
25. CAP´ITULO 4. M´ETODO DE RENDERIZAC¸ ˜AO 25
4.1.1 Interface Gr´afica com Usu´ario
A interface ´e ilustrada na Figura 4.1. Ela ´e composta por menus e por um painel de
controle que apresenta quatro telas. A primeira delas permite que sejam feitos ajustes nos
parˆametros num´ericos da simula¸c˜ao, tais como o esquema num´erico utilizado, parˆametros
do SPH, condi¸c˜oes iniciais das part´ıculas e do dom´ınio e condi¸c˜oes de borda. Na segunda
pode ser feito o controle do fluxo da simula¸c˜ao (inici´a-la, paus´a-la, etc). A terceira permite
fazer um ajuste fino nos dados que s˜ao exibidos em tempo real e escolher o modo de
visualiza¸c˜ao do fluido desejado. A quarta tela serve para configurar os parˆametros da
renderiza¸c˜ao em off-line e tamb´em para iniciar e controlar a mesma.
Figura 4.1: Interface Gr´afica com Usu´ario e Painel de Controle.
26. CAP´ITULO 4. M´ETODO DE RENDERIZAC¸ ˜AO 26
4.1.2 Modos de Visualiza¸c˜ao do Fluido
A Figura 4.2 mostra os diversos modos que o fluido pode ser observado em tempo real. Os
trˆes primeiros d˜ao destaque ao modelo computacional do fluido renderizando as part´ıculas
das seguintes formas: pontos, esferas ou esferas transparentes. O quarto modo busca
destacar de forma simplificada a superf´ıcie do fluido, utilizando para gerar a malha usada
na renderiza¸c˜ao um algoritmo oferecido pelo jME [19] chamado Marching Tetrahedron, que
´e similar ao Marching Cubes discutido em [11].
(a) Pontos. (b) Esferas.
(c) Esferas transparentes. (d) Isosuperf´ıcie.
Figura 4.2: Diversos Modos de Visualiza¸c˜ao do Fluido.
27. CAP´ITULO 4. M´ETODO DE RENDERIZAC¸ ˜AO 27
4.1.3 Visualizando Dados do Modelo do Fluido
Como exemplificado pela Figura 4.3, dados num´ericos tanto de campos escalares quanto
vetoriais podem ser visualizados em tempo real. Dados escalares, como por exemplo a
densidade, s˜ao exibidos atrav´es de um degrade de cores utilizado na hora de se renderizar
as part´ıculas. Outros dados como o gradiente de press˜ao, velocidade e acelera¸c˜ao das
part´ıculas s˜ao mostrados como pequenos vetores coloridos. Essas op¸c˜oes s˜ao de grande
interesse pois permitem uma depura¸c˜ao apurada do comportamento num´erico do fluido.
(a) Densidade codificada em cores. (b) Vetores das for¸cas de press˜ao.
(c) Vetores de velocidade. (d) Vetores de acelera¸c˜ao.
Figura 4.3: Dados do Modelo do Fluido sendo visualizados.
28. CAP´ITULO 4. M´ETODO DE RENDERIZAC¸ ˜AO 28
4.2 Renderiza¸c˜ao em Off-line
Para renderiza¸c˜ao em off-line, tamb´em foi utilizada uma biblioteca livre e de c´odigo aberto,
o PBRT, que implementa um sistema de renderiza¸c˜ao baseado em ray-tracing para a s´ıntese
de imagens realistas, usando modelos f´ısicos para intera¸c˜ao da luz com os objetos [27].
Neste trabalho, utilizamos um m´etodo de renderiza¸c˜ao que tem como base os m´etodos
cl´assicos de tra¸cado de raios (Whitted’s ray tracing) [37]. Nesses m´etodos, os dados de
entrada s˜ao: (a) Posi¸c˜ao do observador; (b) Posi¸c˜ao e orienta¸c˜ao do plano de proje¸c˜ao e
da janela de visualiza¸c˜ao; (c) Geometria da cena; (d) Propriedades materiais dos objetos
da cena; (e) Propriedades das fontes de luz.
Com essas informa¸c˜oes, aplica-se um modelo f´ısico para intera¸c˜ao entre a luz e os objetos
da cena, bem como algoritmos de visibilidade para resolver quest˜oes de sombreamento e
superf´ıcies escondidas [32]. Conforme descrito em [27], a equa¸c˜ao b´asica do modelo f´ısico
tem a forma:
𝐿𝑜 (𝑝, 𝜔𝑜) = 𝐿𝑒 (𝑝, 𝜔𝑜) +
∫
𝑆2
𝐿𝑖 (𝑝, 𝜔𝑖) 𝑓 (𝑝, 𝜔𝑜, 𝜔𝑖) 𝑑𝜔𝑖, (4.1)
onde 𝐿𝑜 (𝑝, 𝜔𝑜) ´e a radiˆancia refletida no ponto 𝑝 de uma superf´ıcie, na dire¸c˜ao 𝜔𝑜,
𝐿𝑒 (𝑝, 𝜔𝑜) ´e a radiˆancia emitida pelo objeto no ponto 𝑝, na dire¸c˜ao 𝜔𝑜, 𝐿𝑖 (𝑝, 𝜔𝑖) ´e a radiˆancia
incidente na dire¸c˜ao 𝜔𝑖 e 𝑓 ´e uma fun¸c˜ao que modela o espalhamento de luz da superf´ıcie no
ponto 𝑝. A integral no segundo membro da equa¸c˜ao (4.1) ´e tomada sobre a esfera unit´aria
𝑆2
centrada no ponto 𝑝, para computar a parcela de radiˆancia total refletida na dire¸c˜ao
𝜔𝑜.
Partindo desses elementos, para cada pixel da janela de visualiza¸c˜ao o algoritmo tra¸ca
um raio passando pelo pixel e pela posi¸c˜ao do observador. Este raio atua como um raio de
luz virtual, refletindo e refratando nos objetos da cena, at´e um limite pr´e-estabelecido de
reflex˜oes. Uma vez terminado o tra¸cado de um raio, efetua-se recursivamente o c´alculo da
radiˆancia total ao longo do raio. Nesta etapa a equa¸c˜ao (4.1) ´e resolvida para cada ponto
de interse¸c˜ao encontrado, acumulando-se o resultado, segundo uma express˜ao do tipo:
29. CAP´ITULO 4. M´ETODO DE RENDERIZAC¸ ˜AO 29
𝐿𝑜 (𝑝𝑗, 𝜔𝑜) = 𝐿𝑒 (𝑝𝑗, 𝜔𝑜) +
∫
𝑆2
𝐿𝑖 (𝑝𝑗, 𝜔𝑖) 𝑓 (𝑝𝑗, 𝜔𝑜, 𝜔𝑖) 𝑑𝜔𝑖, 𝑗 = 1, 2, ..., 𝑁, (4.2)
onde 𝑁 ´e o n´umero de pontos encontrados durante a etapa de tra¸cado do raio (ver
Figura 4.4). Assim, temos as seguintes etapas:
1. Tra¸car um raio a partir da posi¸c˜ao do observador passando pelo pixel;
2. Intersect´a-lo com os objetos da cena;
3. Calcular a radiˆancia ao longo do raio;
4. Atribuir a cor ao pixel.
Figura 4.4: Etapa de tra¸cado do raio.
Algumas sequˆencias animadas com quadros gerados utilizando-se esta t´ecnica ser˜ao
mostrados nos Resultados, no Cap´ıtulo 6.
30. Cap´ıtulo 5
Metodologia de Desenvolvimento do
Aplicativo
A metodologia utilizada no desenvolvimento deste aplicativo se baseia no paradigma de
programa¸c˜ao orientado a objetos, bem como em padr˜oes de projetos de software. J´a a
modelagem do software foi feita utilizando a linguagem UML (Unified Modelling Lan-
guage) [10].
Essas metodologias foram escolhidas por serem atuais e permitirem mapear facilmente
conceitos do mundo real no software, reutilizar solu¸c˜oes para problemas de softwares recor-
rentes e tamb´em por oferecer a possibilidade de se produzir toda a documenta¸c˜ao seguindo
um modelo padronizado [10].
5.1 Modelagem do Software
A linguagem UML define um conjunto de nota¸c˜oes gr´aficas e diagramas que ajudam na
descri¸c˜ao e no projeto de sistemas de software, particularmente daqueles constru´ıdos uti-
lizando o estilo orientado a objetos (OO). A importˆancia de se utilizar tais nota¸c˜oes
padronizadas est´a na comunica¸c˜ao e no entendimento, j´a que um diagrama bem feito
ajuda a transmitir ideias sobre um projeto de uma forma concisa, ajudando a lidar com a
30
31. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 31
complexidade do modelo do software [10].
Sendo assim, o foco dos diagramas desenvolvidos para este trabalho est´a na simpli-
cidade, permitindo uma descri¸c˜ao direta de como o software foi constru´ıdo e de suas
funcionalidades. Para isto, foram confeccionados os diagramas mais interessantes para
ilustrar nosso aplicativo, que s˜ao os diagramas de casos de uso, de classes e os diagramas
de sequˆencia das intera¸c˜oes principais (inicializa¸c˜ao da aplica¸c˜ao e do fluido, a atualiza¸c˜ao
do fluido no decorrer do tempo e a renderiza¸c˜ao off-line em paralelo) [10].
5.1.1 Diagrama de Casos de Uso
Os casos de uso s˜ao uma t´ecnica para captar requisitos funcionais de um sistema, ou seja,
para descrever as intera¸c˜oes tipicas entre os usu´arios e o sistema, fornecendo uma narrativa
sobre como o sistema ´e utilizado [10].
Pode-se observar na Figura 5.1 que o nosso sistema ´e composto por dez casos de uso,
que ser˜ao descritos a seguir.
Figura 5.1: Diagrama de Casos de Uso.
32. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 32
Configurar resolu¸c˜ao e se a simula¸c˜ao ser´a aberta no modo tela cheia ou n˜ao
Assim que o aplicativo ´e iniciado, o usu´ario precisa escolher se deseja utiliz´a-lo em tela
cheia ou apenas como uma janela comum na ´area de trabalho. Em ambos os casos, a
resolu¸c˜ao da imagem precisa ser definida.
Configurar parˆametros f´ısicos da simula¸c˜ao
Atrav´es da interface gr´afica com o usu´ario (GUI) exibida pelo software, o usu´ario ´e capaz
de ajustar v´arios parˆametros f´ısicos do modelo do fluido, tais como: o esquema num´erico
(solver) utilizado para solucionar as equa¸c˜oes de Navier-Stokes, a condi¸c˜ao de fronteira do
dom´ınio de simula¸c˜ao, a velocidade inicial do fluido, o tamanho do dom´ınio de simula¸c˜ao,
dentre outros.
Configurar parˆametros da visualiza¸c˜ao em tempo real
Tamb´em ´e poss´ıvel ajustar atrav´es da GUI as caracter´ısticas da renderiza¸c˜ao em tempo
real. Por exemplo, a representa¸c˜ao gr´afica das part´ıculas do modelo do fluido (pontos
ou esferas) e a visualiza¸c˜ao dos dados num´ericos da simula¸c˜ao (gradientes de densidade,
press˜ao, velocidade, etc).
Configurar parˆametros para renderiza¸c˜ao em off-line
Al´em disso, o usu´ario pode especificar os parˆametros utilizados no modo de renderiza¸c˜ao
com o PBRT, tais como as caracter´ısticas das fontes luminosas, a opacidade da superf´ıcie
do fluido, quantos quadros de anima¸c˜ao se deseja gerar, dentre outros.
Renderizar uma anima¸c˜ao em off-line
O usu´ario pode requisitar a renderiza¸c˜ao de um ´unico quadro ou de uma sequˆencia completa
em off-line. Em seguida, o aplicativo leva de alguns minutos a v´arias horas, de acordo com
o que for requisitado, para completar a tarefa. As imagens dos quadros que j´a est˜ao prontas
v˜ao sendo salvas em disco.
33. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 33
Ajustar disposi¸c˜ao dos elementos da GUI
A interface gr´afica do programa ´e configur´avel e o usu´ario pode dispor os seus elementos
da forma mais conveniente para sua utiliza¸c˜ao.
Salvar parˆametros no disco
Tanto os parˆametros f´ısicos da simula¸c˜ao quanto os parˆametros da renderiza¸c˜ao em off-line
podem ser gravados em disco, o que facilita a sua posterior reutiliza¸c˜ao.
Carregar parˆametros salvos no disco
O usu´ario pode utilizar separadamente os v´arios parˆametros de simula¸c˜ao e renderiza¸c˜ao
salvos previamente. Isto permite a cria¸c˜ao de novos resultados, por exemplo, combinando-
se o comportamento f´ısico de um determinado fluido com as caracter´ısticas de renderiza¸c˜ao
da superf´ıcie livre de outro.
Mover a cˆamera
O usu´ario pode posicionar a cˆamera de forma a encontrar o ˆangulo ideal para destacar o
comportamento desejado do fluido. ´E importante notar que ambos os modos de rende-
riza¸c˜ao compartilham a mesma cˆamera.
Controlar o fluxo da simula¸c˜ao
O usu´ario pode executar a simula¸c˜ao, paus´a-la, reinici´a-la ou at´e mesmo requisitar o avan¸co
de um passo de simula¸c˜ao no tempo.
34. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 34
5.1.2 Diagrama de Classes
Este ´e um dos diagramas mais amplamente utilizados e permite ilustrar a hierarquia de
classes do software juntamente com os v´arios tipos de relacionamentos est´aticos existentes
entre elas [10]. Na Figura 5.2 se encontra o diagrama de classes do nosso aplicativo. A
seguir, discutiremos as funcionalidades de cada classe.
Figura 5.2: Diagrama de Classes.
Classe Main
Esta classe ´e respons´avel pela inicializa¸c˜ao do aplicativo, o que envolve a inicializa¸c˜ao
e configura¸c˜ao da engine gr´afica utilizada e a cria¸c˜ao da janela e de outros recursos
necess´arios, como por exemplo, um objeto da classe SimulationGameState e outro da
classe GuiGameState.
Classe SimulationGameState
Esta classe ´e respons´avel pelo controle, atualiza¸c˜ao e renderiza¸c˜ao da simula¸c˜ao em tempo
real. Para realizar tais tarefas, ela se comunica constantemente com a engine gr´afica. Du-
rante sua inicializa¸c˜ao, ela cria os objetos geom´etricos que ser˜ao utilizados para representar
o fluido (conjunto de pontos, conjunto de esferas e a isosuperf´ıcie para a superf´ıcie livre) e
tamb´em objetos auxiliares, que servem para depurar o comportamento do fluido, tais como
35. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 35
vetores para visualiza¸c˜ao dos campos de velocidade e acelera¸c˜ao e caixas para representar
os limites do dom´ınio de simula¸c˜ao e a malha utilizada para organizar as part´ıculas. Al´em
disso, tamb´em ´e respons´avel pela cria¸c˜ao do objeto ParticleSystem que representa o fluido.
Classe GuiGameState
Esta classe ´e respons´avel pela cria¸c˜ao e gerenciamento da interface gr´afica com o usu´ario
e por inicializar os menus e o ControlPanel.
Classe ControlPanel
Um objeto da classe ControlPanel ´e criado pelo GuiGameState e representa e controla a
janela do painel de controle, que ´e utilizado pelo usu´ario para configurar os parˆametros de
simula¸c˜ao e de renderiza¸c˜ao, para controlar o fluxo da simula¸c˜ao e para iniciar o processo
de renderiza¸c˜ao em off-line.
Classe AbstractSettings
Esta classe abstrata serve de base para outras duas (SimulationSettings e RenderingSettings)
que s˜ao respons´aveis por armazenar dados de configura¸c˜ao. Ela cont´em as funcionalidades
b´asicas para esta tarefa, como por exemplo m´etodos para a serializa¸c˜ao e leitura de objetos
e vari´aveis para arquivos de texto.
Classe SimulationSettings
Esta classe serve como interface para salvar e recuperar em disco todos os dados relativos
a simula¸c˜ao, como por exemplo, os parˆametros relacionados `as condi¸c˜oes iniciais e os
parˆametros f´ısicos e num´ericos do fluido.
36. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 36
Classe RenderingSettings
Esta classe serve como interface para salvar e recuperar em disco todos os dados relativos a
renderiza¸c˜ao em off-line, como por exemplo o tamanho dos quadros gerados, as condi¸c˜oes
de ilumina¸c˜ao, posi¸c˜ao da cˆamera, entre outros.
Classe ParticleSystem
Esta ´e a principal classe para a implementa¸c˜ao do SPH e representa o modelo f´ısico do
fluido. Ela cria as estruturas de dados que representam as part´ıculas do fluido e tamb´em
os solvers que ser˜ao utilizados para atualizar a posi¸c˜ao das mesmas e dar movimento ao
fluido. Al´em disso, ´e capaz de exportar uma malha de densidades para ser renderizada
via isosuperf´ıcie. Coleta tamb´em estat´ısticas sobre o fluido, como a densidade e velocidade
m´edia das part´ıculas.
Classe RegularSpatialSubdivision
Esta classe ´e respons´avel pela subdivis˜ao espacial utilizada para otimizar o calculo da
dinˆamica das part´ıculas. Ela representa uma malha 3d de c´elulas regulares (objetos do
tipo RegularCell) onde as part´ıculas podem ser alocadas. ´E utilizada para tornar mais
r´apida a busca de part´ıculas vizinhas, que ´e necess´aria para a aplica¸c˜ao dos n´ucleos de
suaviza¸c˜ao feita pelos solvers.
Classe RegularCell
Representa uma ´unica c´elula da malha regular descrita acima. Esta classe cont´em uma
lista de part´ıculas que est˜ao no interior da c´elula e tamb´em um vetor indicando a posi¸c˜ao
da c´elula no espa¸co.
37. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 37
Classe Particle
Representa uma ´unica part´ıcula do fluido e cont´em tanto o estado atual da mesma quanto
o estado futuro enquanto o mesmo ainda est´a sendo calculado. Esses estados s˜ao represen-
tados por objetos do tipo ParticleState. Tamb´em armazena a densidade de repouso e as
for¸cas de press˜ao e viscosidade e a acelera¸c˜ao aplicada na itera¸c˜ao anterior.
Classe ParticleState
Guarda o estado de uma determinada part´ıcula em um dado momento. Esse estado ´e
composto por dois vetores (de posi¸c˜ao e de velocidade) e tamb´em pelos valores escalares
de densidade e press˜ao.
Classe SphSolverFactory
Esta classe ´e respons´avel por abstrair a cria¸c˜ao dos v´arios tipos de solvers dispon´ıveis. Ela
´e utilizada pelo ParticleSystem e cria o solver que ser´a utilizado baseada nos parˆametros
passados pelo mesmo. Desta forma, e em conjunto com a classe AbstractSphSolver, novos
solvers implementando diferentes esquemas num´ericos podem facilmente ser acoplados `a
aplica¸c˜ao.
Classe AbstractSphSolver
A classe AbstractSphSolver define uma interface padr˜ao que cada tipo de solver deve
implementar para poder ser utilizado pelo ParticleSystem. Al´em disso, oferece uma im-
plementa¸c˜ao padr˜ao para v´arias das fun¸c˜oes que s˜ao comuns `a maioria dos solvers, como
por exemplo, o c´alculo da densidade em um determinado ponto do espa¸co, a aplica¸c˜ao dos
n´ucleos de suaviza¸c˜ao e o tratamento b´asico das condi¸c˜oes de fronteira.
38. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 38
Classe DefaultSphSolver
Esta classe implementa o solver padr˜ao, que utiliza o m´etodo de integra¸c˜ao leapfrog, com ou
sem mem´oria, para atualizar as part´ıculas. S˜ao calculadas a densidade, press˜ao, acelera¸c˜ao
e velocidade de cada part´ıcula, levando em conta for¸cas de press˜ao, viscosidade e gravidade.
Classe AlternativeSphSolver
Esta classe implementa um solver alternativo que utiliza um m´etodo de primeira ordem.
Ele calcula diretamente a posi¸c˜ao seguinte da part´ıcula e tamb´em sua densidade e press˜ao.
Para isto, leva em conta as for¸cas derivadas da press˜ao e da gravidade.
Classe OfflineRenderingManager
Esta classe utiliza o padr˜ao Singleton, ou seja, s´o pode existir uma ´unica instˆancia sua em
um dado momento do tempo. Ela ´e respons´avel por iniciar e gerenciar todo o processo
de renderiza¸c˜ao em off-line, criando e sincronizando as v´arias threads que s˜ao utilizadas
simultaneamente para realiz´a-lo.
Classe RenderingTask
Cada RenderingTask ´e respons´avel por executar o processamento de um ´unico quadro
durante a renderiza¸c˜ao em off-line. Os v´arios RenderingTasks s˜ao criados e alocados em
alguma thread dispon´ıvel pelo OfflineRenderingManager.
Classe SceneDescriptionWriter
Um objeto SceneDescriptionWriter, que ´e acionado por uma RenderingTask, tem a fun¸c˜ao
de exportar a cena a ser renderizada para o formato de arquivo utilizado pelo PBRT.
Classe ProcessRunner
Um objeto do tipo ProcessRunner ´e criado por cada RenderingTask com o objetivo de efe-
tivamente executar o processo externo do PBRT para renderizar um determinado quadro.
39. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 39
5.1.3 Diagramas de Sequˆencia
Este tipo de diagrama descreve as intera¸c˜oes de um grupo de objetos em um determinado
cen´ario da aplica¸c˜ao, ilustrando o comportamento dinˆamico e colaborativo dos mesmos
para realizar uma determinada tarefa [10].
A seguir, ser˜ao descritos os diagramas de sequˆencia dos principais cen´arios do software.
Inicializa¸c˜ao da Aplica¸c˜ao
O diagrama de sequˆencia que ilustra a inicializa¸c˜ao da aplica¸c˜ao pode ser visto na Figura 5.3.
A classe Main come¸ca inicializando um objeto do tipo SimulationGameState, que cria os
objetos geom´etricos necess´arios para a visualiza¸c˜ao dos dados num´ericos da simula¸c˜ao. Em
seguida, a classe Main cria um objeto do tipo GuiGameState, que ´e respons´avel por montar
a interface gr´afica com o usu´ario (GUI). Para isto, al´em de criar uma barra de menus, ´e
criado um objeto ControlPanel, respons´avel por exibir o painel de controle principal da
aplica¸c˜ao. Este, por sua vez, cria um objeto SimulationSettings e outro RenderingSettings
que ficar˜ao em sincronia com os dados exibidos e alterados pela interface. Ap´os isso, o
ControlPanel desencadeia o processo de inicializa¸c˜ao da simula¸c˜ao, que por sua vez inicia-
liza o modelo do fluido. Este processo pode ser visto com mais detalhes na Figura 5.4. Em
seguida, a classe Main marca ambos SimulationGameState e GuiGameState como ativos,
para que estes comecem a ser atualizados e seus elementos renderizados na tela.
40. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 40
Figura 5.3: Diagrama de Sequˆencia: Inicializa¸c˜ao da Aplica¸c˜ao.
41. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 41
Inicializa¸c˜ao do Fluido
Na Figura 5.4 est´a descrita a sequˆencia para a inicializa¸c˜ao do fluido. Primeiramente ´e
criado um objeto ParticleSystem que representar´a o modelo do fluido. Este, por sua vez,
requisita que o SphSolverFactory crie um solver adequado para a simula¸c˜ao que se deseja
realizar. Em seguida, cria um objeto RegularSpatialSubdivision que por sua vez monta
todas as c´elulas utilizadas para a subdivis˜ao espacial. Finalmente, o ParticleSystem cria
as part´ıculas do fluido e as aloca na malha auxiliar, concluindo assim as etapas necess´arias
para prepara¸c˜ao do modelo do fluido para a simula¸c˜ao.
Figura 5.4: Diagrama de Sequˆencia: Inicializa¸c˜ao do Fluido.
42. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 42
Atualiza¸c˜ao do Fluido
A Figura 5.5 descreve um passo da atualiza¸c˜ao do fluido no tempo. Este passo come¸ca com
o objeto SimulationGameState atualizando o modelo f´ısico do fluido. Para isto, ele come¸ca
varrendo a malha auxiliar e para cada c´elula da mesma, coleta as part´ıculas vizinhas.
Em seguida, ele requisita que o objeto do tipo Solver em uso no momento atualize cada
part´ıcula da c´elula sendo processada. Depois as part´ıculas s˜ao realocadas na malha auxiliar
com base nas suas novas posi¸c˜oes. Por ´ultimo, o SimulationGameState atualiza tanto os
objetos geom´etricos utilizados na renderiza¸c˜ao do fluido quanto os usados para visualiza¸c˜ao
dos campos vetoriais.
43. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 43
Figura 5.5: Diagrama de Sequˆencia: Atualiza¸c˜ao do Fluido.
44. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 44
Renderiza¸c˜ao em Off-line
Pode-se observar na Figura 5.6 o processo de renderiza¸c˜ao em off-line, que come¸ca com
uma requisi¸c˜ao feita pelo usu´ario atrav´es do ControlPanel. Este ´e respons´avel por atualizar
o objeto RenderingSettings para que o mesmo reflita as configura¸c˜oes mais recentes feitas
pelo usu´ario atrav´es da interface. Em seguida, ele cria uma SceneDescriptionWriter e pede
para que o OfflineRenderingManager inicie a gera¸c˜ao da sequˆencia de imagens. Este ´ultimo
inicializa v´arios objetos RenderingTask, um para cada quadro a ser renderizado. Depois
disto, solicita para a classe ExecutorService a cria¸c˜ao de um grupo de threads (contendo
um thread para cada CPU dispon´ıvel no sistema) que ser˜ao respons´aveis pela renderi-
za¸c˜ao. Em seguida, come¸ca a submeter RenderingTasks para os threads dispon´ıveis. Cada
thread come¸ca requisitando que o SceneDescriptionWriter escreva a cena de um determi-
nado quadro em disco. Depois, inicializa um objeto ProcessRunner que ser´a respons´avel
por executar o PBRT. Terminada a renderiza¸c˜ao, o SceneDescriptionWriter limpa os ar-
quivos que j´a foram utilizados do disco e a RenderingTask ´e conclu´ıda.
45. CAP´ITULO 5. METODOLOGIA DE DESENVOLVIMENTO DO APLICATIVO 45
Figura 5.6: Diagrama de Sequˆencia: Renderiza¸c˜ao em Off-line.
46. Cap´ıtulo 6
Resultados
Os exemplos deste cap´ıtulo foram simulados utilizando-se a Equa¸c˜ao (3.1) com os parˆame-
tros da Tabela 6.1. Em cada simula¸c˜ao usou-se 4393 part´ıculas, com um dom´ınio na forma
de paralelep´ıpedo que se estende do ponto 𝑝1 = (0, 0, 0) at´e o ponto
𝑝2 = (48, 20, 24) contendo uma esfera fixa (e r´ıgida) em seu interior. Em todos os ca-
sos exibidos, a condi¸c˜ao inicial ´e definida distribuindo-se part´ıculas uniformemente em
uma por¸c˜ao do dom´ınio, espa¸cadas 1.4 unidades de medida em cada dire¸c˜ao coordenada.
A velocidade tem intensidade inicial que segue o perfil parab´olico definido pela express˜ao:
𝑣𝑥 = −
(
𝑦 −
𝑦𝑚𝑎𝑥
2
)2
+ (3.5 × 𝑦𝑚𝑎𝑥) (6.1)
onde 𝑦 ´e a altura inicial de cada part´ıcula e 𝑦𝑚𝑎𝑥 ´e a altura inicial m´axima de qualquer
part´ıcula. A velocidade inicial tem vetor diretor ⃗𝑣 = (1, 0, 0), sendo portanto paralela ao
eixo 𝑥 (ver Figura 6.1). A condi¸c˜ao de contorno utilizada foi a n˜ao-peri´odica, conforme
descrito na se¸c˜ao 3.2.
46
47. CAP´ITULO 6. RESULTADOS 47
Parˆametros de simula¸c˜ao Exemplo 1 Exemplo 2 Exemplo 3
Coeficiente de press˜ao 10.0 10.0 10.0
Coeficiente de gravidade −5.0 −5.0 −5.0
Viscosidade 40.0 40.0 10.0
Coeficiente de atrito 0.2 0.2 0.1
Massa de cada part´ıcula 20.0 20.0 10.0
Tabela 6.1: Parˆametros utilizados nas simula¸c˜oes deste cap´ıtulo.
Figura 6.1: Velocidade inicial das part´ıculas (em vermelho).
Na etapa de renderiza¸c˜ao, usou-se a classe “Direct Lighting” do PBRT, que implementa
o m´etodo descrito pela equa¸c˜ao (4.1), com os seguintes parˆametros para o fluido:
∙ Cor da superf´ıcie: 𝑟 = 0.0, 𝑔 = 0.0, 𝑏 = 1.0;
∙ Coeficientes de reflex˜ao especular: 𝑟 = 1.0, 𝑔 = 1.0, 𝑏 = 1.0;
∙ Coeficientes de reflex˜ao difusa: 𝑟 = 0.1, 𝑔 = 0.1, 𝑏 = 0.1;
∙ Opacidade: 1.0 (totalmente opaco) para o primeiro exemplo e 0.28 (transparente)
para os demais exemplos.
48. CAP´ITULO 6. RESULTADOS 48
As paredes do dom´ınio s˜ao totalmente transparentes e a cor da esfera ´e branca (𝑟 = 𝑔 =
𝑏 = 1.0) com material totalmente opaco. H´a duas fontes luminosas direcionais: uma est´a a
45∘
em rela¸c˜ao ao eixo 𝑦 girando no sentido hor´ario; e outra, sob estas mesmas condi¸c˜oes,
est´a a 225∘
. Ambas as fontes apontam para o centro da superf´ıcie do fluido.
A Figura 6.2 mostra uma sequˆencia de imagens obtida na primeira anima¸c˜ao. Neste
caso, usou-se uma viscosidade alta, o que resultou em comportamento similar ao de
“gelatina”. Uma vez que o fluido ´e totalmente opaco neste caso, n˜ao h´a efeitos de
transparˆencia. Contudo, h´a efeitos de reflex˜ao, particularmente, pode-se perceber o re-
flexo da esfera no fluido. Efeitos de sombra tamb´em podem ser observados, tanto do fluido
sobre ele mesmo quanto da esfera sobre o fluido.
𝑡 = 0𝑠 𝑡 = 2.5𝑠 𝑡 = 5𝑠
𝑡 = 8𝑠 𝑡 = 16.5𝑠 𝑡 = 32𝑠
Figura 6.2: Sequˆencia de imagens do primeiro exemplo de anima¸c˜ao. Os tempos est˜ao
marcados em segundos.
49. CAP´ITULO 6. RESULTADOS 49
A Figura 6.3 mostra outra sequˆencia de quadros gerada pela aplica¸c˜ao que foi desen-
volvida. Neste caso, o fluido ´e transparente e o fundo tem cor amarela (𝑟 = 1.0, 𝑔 = 1.0, 𝑏 =
0.0). O fluido continua viscoso e as fontes de luz est˜ao na mesma posi¸c˜ao do caso anterior,
observando-se novamente efeitos de sombra. Os reflexos s˜ao bem menos percept´ıveis neste
caso em fun¸c˜ao da transparˆencia.
𝑡 = 0𝑠 𝑡 = 2.5𝑠 𝑡 = 5𝑠
𝑡 = 8𝑠 𝑡 = 16.5𝑠 𝑡 = 32𝑠
Figura 6.3: Sequˆencia de imagens do segundo exemplo de anima¸c˜ao. Os tempos est˜ao
marcados em segundos.
50. CAP´ITULO 6. RESULTADOS 50
O ´ultimo exemplo mostra um fluido transparente, com viscosidade reduzida, utilizando
duas fontes extensas de ilumina¸c˜ao, ou seja, n˜ao-pontuais. Neste caso, nota-se claramente
maior riqueza de detalhes, como efeitos de penumbra, que s˜ao decorrentes desse tipo de
ilumina¸c˜ao (ver Figura 6.4).
𝑡 = 0𝑠 𝑡 = 2.5𝑠 𝑡 = 5𝑠
𝑡 = 8𝑠 𝑡 = 16.5𝑠 𝑡 = 32𝑠
Figura 6.4: Sequˆencia de imagens do terceiro exemplo de anima¸c˜ao. Os tempos est˜ao
marcados em segundos.
51. Cap´ıtulo 7
Conclus˜oes e Trabalhos Futuros
Neste trabalho, descrevemos um modelo para anima¸c˜ao de fluidos usando o SPH para a
simula¸c˜ao e a biblioteca PBRT para a renderiza¸c˜ao. Na se¸c˜ao de resultados, demonstra-
mos a potencialidade do m´etodo para a anima¸c˜ao de fluidos com realismo tanto visual
quanto f´ısico. O m´etodo ainda ´e computacionalmente caro, particularmente em fun¸c˜ao da
biblioteca PBRT.
A solu¸c˜ao desenvolvida possibilita que artistas gr´aficos manipulem de forma intuitiva
os v´arios parˆametros de simula¸c˜ao e renderiza¸c˜ao necess´arios para a gera¸c˜ao de anima¸c˜oes
via dinˆamica computacional de fluidos.
A arquitetura do sistema foi desenvolvida visando a facilidade de manuten¸c˜ao e flexi-
bilidade, deixando o mesmo preparado para futuras extens˜oes. Por exemplo, ´e poss´ıvel
acoplar novos solvers ou novas bibliotecas para renderiza¸c˜ao em off-line facilmente.
Nos trabalhos futuros, vamos otimizar tanto a etapa de renderiza¸c˜ao quanto a de simu-
la¸c˜ao, com a implementa¸c˜ao de m´etodos customizados para gera¸c˜ao de efeitos visuais ainda
melhores.
51
52. Referˆencias
[1] N. Adabala e S. Manohar. Techniques for realistic visualization of fluids: A survey. Comput.
Graph. Forum, 21(1):65–81, 2002.
[2] B. Ataie-Ashtiani, G. Shobeyri, e L. Farhadi. Modified incompressible sph method for
simulating free surface problems. Fluid Dynamics Research, In Press, Uncorrected Proof,
2008.
[3] E. Azevedo. Computa¸c˜ao Gr´afica - Teoria e Pr´atica. Editora Campus, 2003.
[4] M. Becker e M. Teschner. Weakly compressible sph for free surface flows. Em SCA ’07: Pro-
ceedings of the 2007 ACM SIGGRAPH/Eurographics symposium on Computer animation,
pages 209–217, Aire-la-Ville, Switzerland, Switzerland, 2007. Eurographics Association.
[5] C.-W. Chiu, J.-H. Chuang, C.-C. Lin, e J.-B. Yu. Modeling highly-deformable liquid. Em
International Computer Symposium, 2002.
[6] M. Desbrun e M. Cani-Gascuel. Active implicit surface for animation. Em GI ’98: Pro-
ceedings of Graphics Interface 1998. Canadian Human-Computer Communications Society,
1998.
[7] O. Deusen, D. S. Ebert, R. Fedkiw, F. K. Musgrave, P. Prusinkiewicz, D. Roble, J. Stam,
e J. Tessendorf. The elements of nature: interactive and realistic techniques. Em ACM
SIGGRAPH 2004 Course Notes, page 32, 2004.
[8] J. Fang, A. Parriaux, M. Rentschler, e C. Ancey. Improved sph methods for simulating free
surface flows of viscous fluids. Applied Numerical Mathematics, In Press, Corrected Proof,
2008.
[9] N. Foster e D. Metaxas. Modeling the motion of a hot, turbulent gas. Em SIGGRAPH ’97:
Proceedings of the 24th annual conference on Computer graphics and interactive techniques,
pages 181–188, New York, NY, USA, 1997. ACM Press/Addison-Wesley Publishing Co.
[10] M. Fowler. UML Essencial: Um breve guia para a linguagem-padr˜ao de modelagem de
objetos. Bookman, 2005. 3a edi¸c˜ao.
[11] G. A. Giraldi, A. L. A. JR., A. A. F. Oliveira, e R. A. Feij´oo. Anima¸c˜ao de flui-
dos via t´ecnicas de visualiza¸c˜ao cient´ıfica e mecˆanica computacional. Technical report,
Laborat´orio Nacional de Computa¸c˜ao Cient´ıfica (LNCC), Petr´opolis, RJ, Brasil, 2005.
http://virtual01.lncc.br/˜giraldi/TechReport/Fluid-Animation2005.pdf.
[12] O. G´enevaux, A. Habibi, e J. michel Dischler. Simulating fluid-solid interaction. Em in
Graphics Interface, pages 31–38, 2003.
[13] B. Goetz, T. Peierls, J. Bloch, J. Bowbeer, D. Holmes, e D. Lea. Java Concurrency in
Practice. Addison-Wesley Professional, May 2006.
[14] T. Harada, S. Koshizuka, e Y. Kawaguchi. Smoothed particle hydrodynamics on gpus. pages
63–70, 2007.
52
53. REFERˆENCIAS 53
[15] P. S. Heckbert. Adaptive radiosity textures for bidirectional ray tracing. Em SIGGRAPH
’90, pages 145–154, 1990.
[16] X. Y. Hu e N. A. Adams. A multi-phase sph method for macroscopic and mesoscopic flows.
J. Comput. Phys., 213(2):844–861, 2006.
[17] A. Iglesias. Computer graphics for water modeling and rendering: a survey. Future Gener.
Comput. Syst., 20(8):1355–1374, 2004.
[18] H. W. Jensen e P. H. Christensen. Efficient simulation of light transport in scences with
participating media using photon maps. Em SIGGRAPH ’98, pages 311–320. ACM, 1998.
[19] jMonkeyEngine, February 2010. http://www.jmonkeyengine.com.
[20] A. Khayyer, H. Gotoh, e S. Shao. Corrected incompressible sph method for accurate water-
surface tracking in breaking waves. Coastal Engineering, 55:236–250, March 2008. Issue
3.
[21] P. Kipfer e R. Westermann. Realistic and interactive simulation of rivers. Em GI ’06:
Proceedings of Graphics Interface 2006, pages 41–48. Canadian Human-Computer Commu-
nications Society, 2006.
[22] G. R. Liu e M. B. Liu. Smoothed Particle Hydrodynamics: A Meshfree Particle Method.
World Scientific Publishing Company, December 2003.
[23] M. M¨uller, D. Charypar, e M. Gross. Particle-based fluid simulation for interactive appli-
cations. Em SCA ’03: Proceedings of the 2003 ACM SIGGRAPH/Eurographics symposium
on Computer animation, pages 154–159, Aire-la-Ville, Switzerland, Switzerland, 2003. Eu-
rographics Association.
[24] M. M¨uller, S. Schirm, e M. Teschner. Interactive blood simulation for virtual surgery based
on smoothed particle hydrodynamics. Technol. Health Care, 12(1):25–31, 2004.
[25] M. M¨uller, B. Solenthaler, R. Keiser, e M. Gross. Particle-based fluid-fluid interaction. Em
SCA ’05: Proceedings of the 2005 ACM SIGGRAPH/Eurographics symposium on Computer
animation, pages 237–244, New York, NY, USA, 2005. ACM.
[26] OpenGL, February 2010. http://www.opengl.org.
[27] M. Pharr e G. Humphreys. Physically Based Rendering: From Theory to Implementation.
Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2004.
[28] S. Premoze, T. Tasdizen, J. Bigler, A. Lefohn, e R. T. Whitaker. Particle-based simulation
of fluids, 2003. EUROGRAPHICS.
[29] W. H. Press, S. A. Teukolsky, W. T. Vetterling, e B. P. Flannery. Numerical Recipes in C:
The Art of Scientific Computing. Cambridge University Press, New York, NY, USA, 1992.
[30] G. J. Pringle, S. P. Booth, H. M. P. Couchman, F. R. Pearce, e A. D. Simpson. Towards
a portable, fast parallel ap3m-sph code: Hydra mpi. Em Proceedings of the 8th European
PVM/MPI Users’ Group Meeting on Recent Advances in Parallel Virtual Machine and Mes-
sage Passing Interface, pages 360–369, London, UK, 2001. Springer-Verlag.
[31] RealFlow, February 2010. http://www.realflow.com.
[32] D. F. Rogers. Procedural elements for computer graphics. McGraw-Hill, Inc., New York,
NY, USA, October 1997.
[33] B. Solenthaler, J. Schl¨afli, e R. Pajarola. A unified particle model for fluid-solid interactions.
Computer Animation and Virtual Worlds, 18(1):69–82, 2007.
[34] J. Stam. Stable fluids. Em SIGGRAPH ’99: Proceedings of the 26th annual conference on
Computer graphics and interactive techniques, pages 121–128, August 1999.
[35] E. Veach e L. J. Guibas. Metropolis light transport. Em SIGGRAPH ’97, pages 65–76,
1997.
54. REFERˆENCIAS 54
[36] K. D. Vertanen. A parallel implementation of a fluid flow simulation using
smoothed particle hydrodynamics. Technical report, Oregon State University, 1999.
http://www.keithv.com/papers/parallel sph simulation.pdf.
[37] T. Whitted. An improved illumination model for shaded display. Commun. ACM, 23(6):343–
349, 1980.
[38] P. Witting. Computational fluid dynamics in a traditional animation environment. Em
SIGGRAPH ’99: Proceedings of the 26th annual conference on Computer graphics and in-
teractive techniques, pages 129–136, New York, NY, USA, 1999. ACM Press/Addison-Wesley
Publishing Co.
[39] A. V. Xavier. Anima¸c˜ao de fluidos via autˆomatos celulares e sistemas de part´ıculas. Master’s
thesis, Laborat´orio Nacional de Computa¸c˜ao Cient´ıfica (LNCC), Petr´opolis, RJ, Brasil, 2006.