[Música] o [Música] olá a todos sejam muito bem vindos à nossa segunda aula na disciplina de computação gráfica que no curso de engenharia da computação da univesp é hoje a gente vai falar um pouco sobre a produção de modelos geométricos ou a criação de modelos geométricos né é que serviram de base e depois pra projeção para a transformação desses modelos em imagem então voltando aqui é o nosso problema clássico de computação gráfica né da transformação de dados e imagem então a gente vai trabalhar um pouco hoje com modelagem geométrica é e veja que dependendo da
cena que você tiver a região entre a pode ser bastante complicado né é como exemplo essa cena que com milhares de peças mecânicas e e tem cílios e móveis e até mesmo ri pessoas envolvidas na cena e você tem uma geometria complicadíssima é de modo que a modelagem geométrica muitas vezes podem ser muito mais complicado do que o próprio processo de projeção e os próprios modelos de iluminação dependendo da cena que você quer compor bom a modelagem sólidos geométricos algumas características necessárias à rigidez né não quero que é a partir de transformações geométricas esses sonhos
mundo em sua forma o a sua consistência né a fitur é como a gente já tinha mencionado no país de menos quanto o universo é necessário que o meu objeto e tenha uma quantidade é ou seja definido por uma quantidade infinita de símbolos para que caiba na memória do computador né seja eficiente do computador que simula não seja uma quantidade não seja muito grande a homogeneidade ou seja eu não quero ir e objetos pendurados no meu solo objetos além acoplados ao meu solo vai ficar a representação vai ser difícil de fazer é determinismo de fronteira
é uma qualidade importante né nos modelos sejam quero é a partir de um modelo poderia identificar ou quando estou dentro ou quando estou fora do objeto geométrico por exemplo se você pensar numa esfera é importante que eu tenho um meio eficiente de classificar-se um ponto está dentro fora ou na fronteira ltda sincera e assim de outros modelos também é uma característica importante que é o fechamento sobre operações que eu vou fazer uma operação de interseção com os meus objetos geométricos é muito importante que é a interseção de objetos geométricos continuou e sendo um objeto realmente
o que a união é o que a subtração de objetos geométricos continue sendo um objeto geométrico então essa propriedade é chamada de fechamento e sobre operações nós temos aí duas possibilidades de representação de objetos geométricos a partir de equações matemáticas né então você pode ter uma representação que ele chama de representação paramétrica por exemplo se eu tenho uma circunferência aqui eu posso representar essa circunferência a partir do seu centro ea partir do seu raio né eu vou construir o percorrer os pontos essa dessa conferência através de um parâmetro que é o parâmetro teta que para
cada valor de teta é tendo ohio e os cintos circunferência eu consigo um ponto em cima da circunferência então é muito simples a partir da representação paramétrica de um é percorrer os pontos do meu objeto percorrer a superfície do objeto uma outra possibilidade é a representação implícita que há hoje eu tenho uma equação e não necessariamente o consigo tirar uma variável em função da outra e nesse momento eu tenho uma dificuldade maior é no percorri momento dos pontos no seu objeto porém eu tenho uma facilidade na representação ponto conjunto ou seja dado um ponto eu
consigo avaliar esse ponto na minha função implícita e dizer com muita facilidade esse ponto está dentro fora ou exatamente em cima do objeto que é o que ocorre aqui nossa representação da circunferência avaliando qualquer ponto aqui na minha equação de circunferência eu tenho condições de dizer se o ponto pertence ou não a circunferência é o resultado dessa equação se deu o maior do que é o quadrado é porque o ponto está fora da circunferência se deu menor do que é enquadrado o ponto está dentro da circunferência e se deu exatamente em um quadrado eu tô
em cima da circunferência além disso é a representação implícita tem outros dos benefícios né essa simples permite que você faça operações no objeto simples com o objetivo de construir um objeto mais complicado então eu posso fazer intercessão de objetos união de objetos simples ou mesmo subtração de objetos mais simples de modo a obter um objeto ou um sólido mais complicado né são alguns exemplos né e essa técnica é conhecida com o csg que vem da palavra em inglês construction of geometry onde a ideia é você obter aqui um objeto mais complexo a partir da interseção
união e subtração de objetos mais simples uma outra vantagem da representação implícita é que a superfície pode ser bastante complicada que nós podemos ver que uma taça onde foi derramado líquido vermelho que o líquido doce transbordou ea superfície representado que representa esse líquido está sendo definida por uma função implícita uma função bem mais complicado do que uma função de circunferência mas no entanto uma função em pista então exatamente o ritmo que eu queria discutir com vocês hoje é o ritmo de como converter uma função implícita em um objeto geométrico otimizável e pela computação gráfica outra
vantagem aqui da representação implícita é que as operações boi anos operações de união interseção em subtração ficam relativamente simples de serem feitas por exemplo qual a eu tenho duas funções implícitas e eu quero é obter a união dessas duas funções ou a união dos dois objetos definidos para essas funções basta considerar o valor mínimo dessas duas funções se eu quero a intercessão basta considerar o máximo entre f 1 f dores e se eu quero a subtração por exemplo f-1 - f2 basta considerar é o máximo de f1 e - f2 operações matemáticas muito simples que
me permitem fazer operações boliviana sair com os meus objectos matemáticos nessa outra vantagem da representação implícita então vamos ao nosso objetivo que dá aula de hoje então digamos que eu tenho uma superfície eu vou dar um exemplo bidimensional mas tudo que eu falar para 2 de vale para 3d também então digamos que eu tenho uma superfície qualquer definida por uma função implícita no nosso caso aqui uma circunferência e a circunferência ou seja o bordo da circunferência que é determinado exatamente por néné pela imagem inversa do zero aqui seja um dos pontos que avaliados na função
da circunferência dão exatamente 0 os pontos fora da circunferência quando avaliados na função lugar maiores do que zero e os pontos internos circunferência quando avaliados na função vou na menor do que quiser então nosso objetivo é é a partir dessa função construiu uma aproximação dessa conferência por segmento de reta nosso primeiro passo agora é pensar no algoritmo capaz de gerar um conjunto de segmentos que aproxima razoavelmente essa circunferência então nós os é primeira coisa é quadricular que o espaço geométrico onde essa a sua função foi definida veja que a partir de agora dos nosso nossa
grade da nossa malha de quadradinhos a gente tem pontos muito bem definidos que são exatamente a intercessão aqui nesses quadradinhos três pontos em azul aqui fáceis de encontrar quem basta somar que o delta x1 delta y albano inicial e o nosso primeiro objetivo então é avaliar a função em cima desses pontos aqui que são que estão no quadrangular uma vez feito isso a gente vai classificar esses pontos em pontos aqui dentro e fora dessa conferência é um outro passo é que veja eu transformei aqui cada quadradinho num uma união de 23 anos fez uma triangulação
no meu domínio aqui e agora que eu tenho os pontos classificados entre pontos dentro e fora do domínio fora do objeto geométrico eu gostaria que de procurar as arestas do triângulo dos triângulos questão é que tem um ponto dentro e um ponto fora do meu objeto é e para isto basta olhar o sinal da função nesses pontos né os pontos em azul que não tem sinal positivo e os pontos em vermelho vão ter sinal negativo então eu vou percorrer cada um dos triângulos aqui do meu domínio e identificar estas curioso é que tem um vértice
positivo e um verde negativo então feito isso eu vou é é temporariamente dentro dessa esta encontrando aqui os vértices aqui que fazem a intercessão do dos triângulos com o meu nome à superfície o meu objeto geométrico uma vez encontrado esses pontos na interseção basta conectar esses pontos por segmentos de retas e eu vou ter uma aproximação do meu objeto tão boa o tão fina quanto foi o meu quadriculado que o meu médico lado né ou seja se eu diminuir bastante o a resolução do meu quadriculado eu vou ter uma aproximação é mais perfeita do meu
objeto geométrico essa é uma maneira de encontrar em uma aproximação liminar dada uma função implícita é pra 3d vale o mesmo procedimento só que ao invés tão de quadrados e triângulos é você vai usar cubos e tetraedros você vai dividir o cubo em censos at t trans depende da sua divisão e avaliar então fui à pista em cada um dos vértices do tetra é bom e agora nós vamos passar aqui um pequeno desafio pra vocês que faz parte da aula o objetivo é que vocês implementem essa versão bidimensional aqui utilizando o software lázaros que nós
comentamos aí na primeira aula então imagino que você já deve ter achado o software instalado no seu computador então nós vamos passar aqui um pequeno cujo objetivo é que você continue a desenvolver é tão pequeno ambiente e desenvolvimento é nós temos basicamente um campus e que vai á a aparecer onde vai aparecer um sistema de eixos e nós temos dois botões aqui é com o título aqui the plot exp né que vem da representação explícita esse aqui já está feito né eu vou rapidamente que demonstrar para vocês aqui vai gerar 1 um executável né e
quando a gente clicar no botão aqui lote respito vai aparecer aqui tá fora de padrão mas se você tiver um até lá quadradinho vai aparecer uma circunferência mas mais redonda do que essa né o objetivo então é que você complete a programação aqui do plot em pium é que deve nesse botão aqui deve acontecer o que então vai ter um procedimento aqui pra mudar a cor do lápis a equipe azul você vai ter os eixos plotados aqui né eu vim aqui pra gente tinha dito é e tenho aqui o plot curve pina é que é
um procedimento que você deve implementar é eu separei algumas curvas implícitas para você testar que tá aqui ó na primeira delas é essa função e que é x ao quadrado mais opção ao quadrado menos quatro né a conferência de centro 0 e raio 2 igualzinha a nossa circunferência que estava na onu na representação para a métrica o objetivo é que ao final da sua programação apareça essa circunferência na tela na cor azul e você vai poder então depois salvar imagem e compartilhar com os colegas além do fórum de discussão não é o objetivo que apareça
alguma coisa se mirar a isso aqui está aqui mas o software deve ser flexível o suficiente para que o troque as minhas funções implícitas para funções mais complicadas né por exemplo se eu colocar uma função aqui mais complicada deve aparecer uma figura é mais complexa na terra né parecida com o que vocês vão ver agora nessa execução aqui do programa isso é uma coisa mas não parece uma pedra que porta o morro sei lá né mas o objetivo é que funcione em princípio para qualquer função implícita e não apenas para a circunferência que nós tínhamos
aí a conexão determinada eu vou deixar essas três equações e objetivo que vocês possam além do fórum as três figuras em gerados por essas três situações não por hoje é só muito obrigado e até a próxima aula [Música] [Música] [Música] [Música]