Loading
Nota de Estudos
Study Reminders
Support
Text Version

Introdução às Transformações de Modelagem

Set your study reminders

We will email you at these times to remind you to study.
  • Monday

    -

    7am

    +

    Tuesday

    -

    7am

    +

    Wednesday

    -

    7am

    +

    Thursday

    -

    7am

    +

    Friday

    -

    7am

    +

    Saturday

    -

    7am

    +

    Sunday

    -

    7am

    +

Olá e bem-vindo a palestra número 10 no curso Computer Graphics. Estávamos discutindo sobre o pipeline gráfico. Para relembrar, em computação gráfica o que fazemos, geramos imagens 2D em uma tela de computador e o processo de geração dessas imagens 2D envolve um conjunto de estágios, juntos esses estágios constituem o pipeline gráfico.
Hoje, vamos começar a discussão sobre a segunda etapa, que é a modelagem, também chamada de transformação geométrica.
Então, o que existe nesta etapa?
Agora, quando falamos em representar objetos nas palestras anteriores, o que implicitamente referimos é que os objetos foram representados individualmente. Agora, quando estamos definindo esses objetos individualmente, estamos usando implicitamente um sistema de coordenadas que é tipicamente chamado de sistema de coordenadas local ou de objeto. Assim, para cada definição de objeto estamos tendo uma coordenada local ou de objetos. Agora, dentro deste sistema de coordenadas estamos definindo o objeto.
O que isso significa? Isso significa que, na hora de definir objetos, na verdade não estamos nos incomodando muito com a forma de objeto, tamanho e posição em relação a outros objetos. Então, definimos um objeto, mas em essência pode haver vários objetos em que este objeto em particular pode ter um tamanho relativo ou posição relativa ou uma orientação relativa. Mas, quando estamos definindo o objeto em sua própria coordenada local, não estamos prestando muita atenção a esses fatores.
Mas, quando vamos compor uma cena, que constitui todos os objetos que definimos, os objetos precisam ser montados juntos. Agora, quando estamos falando de montar os objetos, o que ela significa? Significa que os objetos devem ser colocados de uma forma que diz que a cena geral se torna perceptível. Então, o formato de objeto, tamanho, orientação agora é muito importante. Por isso, quando estamos definindo objetos em sua própria coordenada essas coisas não são importantes, mas quando estamos montando elas, torna-se importante.
Por isso, quando estamos tentando compor uma cena tomando conta da forma relativa, tamanho, orientação e posição dos objetos com relação a outros objetos, estamos novamente assumindo implicitamente outro sistema de coordenadas, ou seja, tipicamente chamado de cenário ou mais popularmente o sistema de coordenadas mundo. Então, mais cedo lidamos com sistema de coordenadas local ou objeto, agora, temos que lidar com outro sistema de coordenadas popularmente conhecido como sistema de coordenadas mundial.
E como eu disse, no sistema de coordenadas mundiais, as formas, tamanhos, posições, orientações desses objetos individuais precisam ser cuidadas, para que possamos construir a cena. Então, aqueles se tornam muito importantes agora, no sistema de coordenadas mundial.
Como podemos fazer isso? Então, mais cedo nós definimos objetos em seu próprio sistema de coordenadas sem se incomodar com a forma relativa, tamanho, posição, orientação, etc. Agora, vamos montá-los juntos na cena de coordenadoria mundial. E agora, temos que pensar sobre essas formas, tamanhos, orientações de divisórias, para que a cena se torne perceptível. Podemos fazer isso aplicando algumas operações, realizando algumas operações.
Essas operações transformarão os objetos de sua coordenada local para coordenadoria mundial. Por isso, para criar as cenas reunindo os objetos juntos, que por sua vez são definidos em seu próprio sistema de coordenadas, o que precisamos fazer, precisamos realizar algumas operações para transformar os objetos de sua descrição de coordenadas locais para a descrição de coordenadoria mundial.
Agora, essas operações ou a transformação se dá na segunda etapa do pipeline gráfico. Vejamos um exemplo. Aqui temos 2 objetos, este é o objeto 1 na figura mais à esquerda e o objeto 2 na figura do meio. Agora, queremos criar este objeto mostrado na figura da mão direita. Então, como você pode ver neste objeto neste objeto geral o que temos, temos esses cilindros, quantas instâncias 1, 2, 3, 4 e a outra forma quantas instâncias 1, 2 e 3.
Sendo assim, temos 4 instâncias deste objeto e 3 instâncias deste objeto. E a forma como esses objetos são definidos em seu próprio sistema de coordenadas não são os mesmos da forma como eles são definidos nesta cena, que está do lado direito. Aqui como você pode ver aqui a orientação é diferente, a orientação é de tamanho diferente também é diferente em todas as quatro instâncias. O mesmo vale para os demais objetos, as instâncias do outro objeto.
Então, essas coordenadas onde os objetos estão originalmente definidos são as coordenadas locais ou de objetos. A coordenada aqui representada pelo eixo principal X, Y, Z na figura da mão direita é a coordenada mundial. Aqui estamos montando várias instâncias das definições de objetos originais para construir o objeto geral. E como você pode ver aqui, a fim de fazer isso, é muito importante que os objetos sejam colocados em local adequado, em orientação adequada e tamanho adequado. Então, esse é o trabalho da transformação que se passa na segunda etapa.
Agora, uma vez que essas transformações alteram algumas propriedades geométricas ou se passa na geometria da definição de objeto, por isso chamamos estas como transformações geométricas. Também é conhecida como transformações de modelagem.
Agora, essas transformações de modelagem implicam aplicar algumas operações na definição de objeto em coordenadoria local para transformá-las como um componente da cena coordenadora mundial. Então, isso é o que podemos falar mais formalmente sobre a transformação de modelagem que está aplicando algumas operações na definição de objeto para transformá-las como um componente na cena de coordenadoria mundial.
Quais são essas operações; na verdade, pode haver muitas operações desse tipo. Em breve veremos quais são essas operações.
Mas todas as operações podem ser derivadas de um conjunto de operações básicas. Assim, embora possamos, em princípio, aplicar muitas operações, mas essas operações podem ser pensadas como derivadas de um conjunto de operações básicas.
Agora, vamos ter um olhar para essas operações básicas. Existem na verdade 4 operações tão básicas, tradução, rotação, escalonamento e cisalhamento. Tradução todos nós sabemos, o que ele faz, ele traduz objeto de uma posição para outra posição. Em rotação, o que fazemos? Giramos os objetos por algum ângulo ou em sentido horário ou anti-horário em torno de algum eixo.
Com escalar o que podemos fazer? Podemos reduzir ou aumentar o tamanho do objeto. E, finalmente, com shearing, podemos mudar a forma do objeto. Pode-se notar aqui que a shearing está em um sentido mais rigoroso, não uma transformação básica e pode ser derivada como uma composição de rotação e escala. No entanto, pela simplicidade, vamos supor que esta é uma transformação básica e vamos criá-la em conformidade. Então, então, vamos recapitear. Então, temos 4 transformações básicas, tradução, rotação, escalonamento e cisalhamento. Entre elas, a shearing altera a forma do objeto; o escalonamento altera o tamanho do objeto, a tradução e a rotação altera a posição e a orientação do objeto. Agora, estou supondo que você tenha alguma ideia dessas operações e você pode saber que essas operações alteram as propriedades geométricas dos objetos em termos de alteração de sua forma, tamanho e localização. Já que, esse é o caso, por isso chamamos essas transformações como transformadores geométricos. Assim, podemos chamar as operações realizadas na segunda fase como transformação de modelagem ou transformação geométrica. Agora, vamos entrar em uma discussão um pouco mais profunda sobre cada uma dessas transformações. Comecemos pela tradução.
O que acontece na tradução? Como você pode ver, suponhamos que tenhamos um ponto original aqui neste quadro de referência, que é denotado por P com coordenada x e y. Através da tradução podemos reposicionar o ponto a P tracejado com novas coordenadas x tracejado e y amassado. Por isso, essencialmente estamos deslocando este ponto para outro ponto por uma quantidade tx e ty para obter o novo ponto e esse deslocamento se dá ao longo da direção x e y. Por isso, usando este conhecimento podemos realmente derivar a nova coordenada com relação à antiga coordenada. Como vai parecer? Assim, a nova coordenada, a nova coordenada x será x mais a quantidade de deslocamento ao longo da direção x e a nova coordenada y será a coordenada y original mais a quantidade de deslocamento ao longo da direção y. Portanto, essas são derivações simples, e simples de formular. E estas são as relações entre as novas e as antigas x e y coordenadas dos pontos.
Agora, esses deslocamentos podem ser pensados de maneiras diferentes. Portanto, se estamos caminhando ao longo de eixo x positivo ou eixo y positivo, então chamamos de deslocamento positivo. Se estamos avançamos ao longo do eixo x negativo ou eixo y negativo, chamamos de deslocamento negativo. Assim, o sinal da quantidade tx ou ty será diferente para deslocamentos positivos ou negativos.
Agora, vamos deslocar nossa atenção para a rotação. Agora, em caso de rotação, não temos deslocamentos horizontais ou verticais, em vez disso temos deslocamento angular. Em outras palavras, o ponto se move de uma posição para outra em uma pista circular sobre algum eixo. Por isso, aqui, estamos tendo deslocamento angular e o ponto está se movimentando em torno de algum eixo. Seguimos alguma convenção tipicamente, ou seja, se o movimento for no sentido anti-horário, então é positivo ângulo de rotação. Então considere este exemplo aqui, nós temos o ponto original aqui. E agora, estamos tendo o ponto após rotação, ele deve ser denotado por x tracejado, y tracejado e o ângulo de rotação é de largura. Agora, uma vez que caminhamos no sentido anti-horário, estamos chamando de ângulo de rotação positivo. Se estamos nos movendo em sentido horário, então nós tipicamente consideramos que para ser um ângulo de rotação negativo. Essa é uma convenção tipicamente seguida. E em caso de rotação de 2D, geralmente supomos que a rotação ocorre em torno do eixo Z. No entanto, mais adiante veremos para a rotação 3D o que são as convenções.
Agora, tentemos derivar a relação entre as coordenadas novas e antigas. Então, a coordenada antiga é (x, y), a nova coordenada é (x ', y'). Agora, como você pode ver, podemos representar x como (r cos o), agora r é o raio da trilha circular e o é o ângulo entre o eixo x e o ponto original e y é (r sin o). Agora, como podemos ver x 'é se traçamos uma linha como esta, então podemos representar x' como {(r cos o) + raio}. Agora, se expandirmos então vamos conseguir {r cos porque o Cos Cos-r sin o pecado de pecado}.
Já que (r cos o) é x, portanto, é (x cos os raios) e já que (r sin o) é y, assim será (y sin coisa). Então, similarmente por y ', podemos ter uma expressão similar {x sin luxo + y cos fixo}. Esses dois são relações entre a velha coordenada do ponto e as novas coordenadas do ponto. E como eu já mencionei, o movimento angular anti-horário é tipicamente considerado como positivo, caso contrário, é negativo. Agora, em caso de movimento angular negativo, alteramos o sinal do ângulo de deslocamento. Em vez de usar, usaremos-nos-coisa. Essa é a única mudança que vamos fazer.
Por isso, aprendemos sobre tradução e rotação. Como podemos aplicar essas transformações nos pontos? A forma como derivamos, eles se aplicaram a um ponto. Para um objeto temos muitos pontos. Sendo assim, a aplicação única a um ponto não será suficiente. Então o que precisamos fazer? Nós simplesmente aplicamos em todos os pontos que compõem a superfície. Agora, você pode estar pensando que isso é impossível porque lá talvez infinita número de pontos em uma superfície. No entanto, podemos realmente fazer isso aplicando as transformações a todos os vértices em uma representação de lista de vértice ou todos os pontos de controle para uma superfície de spline.
Assim, quando vamos aplicá-lo, pensamos essencialmente em alguma representação, pode ser uma representação de lista de vértice como em caso de representação de mesh, ou pode ser um conjunto de pontos de controle como em caso de representação de spline, e aplicamos as transformações em cada um desses pontos são para que o objeto inteiro seja transformado. E como já citei anteriormente, que aplicando desta forma, podemos alterar a orientação do objeto utilizando rotação e posição utilizando tradução. Assim, aplicando-se rodízio em todos os vértices ou todos os pontos de controle, podemos alterar a orientação do objeto e aplicando a tradução em todos os vértices ou todos os pontos de controle, podemos alterar a posição.
A terceira transformação básica é o escalonamento. O que acontece em escalonamento? Ele muda o tamanho. Agora, as mudanças podem ocorrer de ambas as formas, ou pode diminuir ou pode aumentar. Assim, tanto o aumento como a diminuição do tamanho do objeto é possível com o escalonamento. Agora, matematicamente como o escalonamento é definido? Ele é definido como uma operação de multiplicação de coordenadas de objetos por alguma grandeza escalar. Agora, essas grandezas escalares são conhecidas como fatores de escalação. Por isso, essencialmente estamos multiplicando fatores de escalação para os valores de coordenadas para escalar para cima ou para baixo os objetos. Scale up significa aumentar o tamanho do objeto, escala para baixo significa diminuir o tamanho do objeto. Então, ao nível de um ponto, como podemos entendê-lo? Por isso, dado um ponto P, simplesmente multiplicamos a coordenada x com um fator de escala ao longo da direção x e um fator de escala ao longo da direção y, multiplicamos isso para a coordenada y para obter o novo ponto (x ', y'). Então, a relação entre as coordenadas antigas e novas vai parecer algo assim. Por isso, a nova coordenada x 'pode ser representada em termos de x desta forma, e a nova coordenada y' pode ser representada em termos de y desta forma, em que sx e sy são os dois fatores de escalação ao longo das direções x correspondentes.
Por exemplo, aqui temos um objeto e estamos usando fator de escala ao longo de x direção para ser um terceiro e fator de escala ao longo de y direção a ser a metade. Agora, se eu multiplicar esses fatores de escalonamento para as coordenadas x e y dos vértices, obtenho 4 novos vértices como mostrado aqui nesta figura da direita. Agora esses vértices juntos representarão o objeto. Uma vez que os fatores de escala são menores que 1, isso significa que estamos escalando para baixo ou diminuindo o tamanho.
Então, como em caso de tradução ou rodízio, aqui também, fizemos a mesma coisa. Ou seja, aplicamos as operações de escalonamento para todos os pontos que definem o objeto. Agora, se estamos usando a representação da mesh, então esses pontos são essencialmente os vértices da lista de vértice. Se estamos usando uma representação spline, então esses pontos são essencialmente o conjunto de pontos de controle. E aplicamos fator de escalonamento a cada um desses pontos para obter os novos objetos, os novos pontos que definem o objeto.
Aqui, devemos notar uma coisa. Assim, se estamos usando o mesmo fator de escalação ao longo de ambos x e y direção, então esse tipo de escalação é chamado de escalonamento uniforme. Caso contrário, o que fazemos é o escalonamento diferenciado. No exemplo, vimos que o fator de escala ao longo de x direção é um terço e ao longo da direção é a metade para que eles sejam diferentes, por isso seguimos de fato o escalonamento diferenciado no exemplo.
Agora, quando o fator de escala é, quando dizemos sx é maior que 1 então ao longo da direção x estamos escalando para cima, quando sy é maior que 1, então ao longo da direção y estamos escalando para cima ou aumentando o tamanho. Agora, quando ambos são maiores que 1, então, ao longo de ambas as direções estamos aumentando o tamanho. Da mesma forma, quando sx é menor que 1, estamos reduzindo ou escalando para baixo o tamanho ao longo x direção.
Da mesma forma, quando sy é menor que 1, estamos reduzindo ou escalando para baixo o tamanho ao longo da direção y, quando ambos são menos de 1 minutos então estamos escalando para baixo ao longo de ambas as direções simultaneamente. E é claro, se sx igual a 1 ou sy igual a 1, então não há alteração de tamanho. Um ponto importante a ser observado aqui é que, durante o escalonamento o objeto pode ficar reposicionado, como vimos no exemplo. Assim, o vértice original estava em (3, 2) aqui estava em (9, 2) aqui estava em (9, 4) e foi em (3, 4). Agora após o escalonamento, aplicando os fatores de escala ao longo de x e y direções, obtivemos um novo objeto definido pelos 4 vértices. Quais são as coordenadas? Nós temos (1, 1) então aqui temos (3, 1) aqui temos (3, 2) e aqui temos (1, 2). Agora, como você pode ver os vértices ficaram reposicionados. Sendo assim, esse é um dos efeitos do escalonamento.
Um efeito está mudando o tamanho; o outro efeito é ele pode levar ao reposicionamento dos objetos. A transformação básica final está em xeque.
O que acontece em tosse? Aqui nós basicamente mudamos a forma do objeto. Até agora as transformações que aprendemos lidam com a mudança da posição, da orientação e do tamanho. Agora, a final e a quarta transformação básica shearing permitem que mudemos a forma também.
Como você pode ver neste exemplo, por isso temos um objeto aqui, que depois de tostar é transformado para este objeto com uma mudança de forma? Agora, como o escalonamento, shearing também se refere essencialmente à multiplicação de fatores de cisalhamento ao longo das direções x e y sobre o objeto original ou sobre o ponto original. Então, se o ponto original é x, então nós multiplicamos com o fator shearing para obter o ponto transformado x'. E o mesmo é verdadeiro para y também.
Mas, a relação é um pouco mais complicada do que o escalonamento. Aqui, o novo ponto é obtido por adição mais multiplicação. Por isso, o novo ponto é uma adição da velha coordenada e um termo que é uma multiplicação da velha coordenada com o fator de cisalamento ao longo desse eixo. Mas observe aqui que para obter x ', a nova coordenada x, utilizamos old x coordenada e também velha coordenada y e o fator shearing ao longo da direção x.
Da mesma forma, para obter nova coordenada de y usamos a coordenada velha y e também a velha coordenada x e o fator de cisalhaço ao longo da direção y. Então essa é a diferença, um pouco mais complicado do que o escalonamento. E permite que mudemos a forma do objeto. Agora, a relação é estabelecida entre antigos e novos pontos. Como nos casos anteriores, anterior 3 transformações, em caso de cisteamento também, podemos realmente aplicar as operações em todos os pontos na superfície para mudar a forma de toda a superfície. Se estamos seguindo uma representação de malha, a superfície será representada em termos de suas latas, na forma de uma lista de vértice. Por isso, aplicamos cuidados em todos os vértices.
Se estamos usando uma representação spline, então a superfície será representada em termos de uma grade de ponto controlada e aplicamos o compartilhamento em todos esses pontos controlados no grid para obter todas as nossas transformações. Como o escalonamento, aqui também pode acontecer o reposicionamento. Vejamos este exemplo novamente deixe-nos considerar um vértice, isto é 9 e 2, este vértice (9, 2) muda para como você pode ver aqui (10, 2). Outro vértice (9, 4) também muda e torna-se (11, 4). Da mesma forma, você pode ver os outros vértices, como aqui ele se torna (4, 2). Considerando que, mais cedo, foi (3, 2). Este vértice torna-se (5, 4) a partir daqui que foi (3, 4). No entanto, você pode notar que não é necessário que todos os vértices mudem de posição.
Assim, todos os vértices podem não se reposicionar durante uma transformação tostada. Também você pode ver aqui que não é obrigatório realizar xear ao longo de ambos os eixos simultaneamente. Como você pode ver aqui que ao longo do eixo o fator de cisalhar é 0. Assim, não estamos a tostar ao longo do eixo, enquanto que estamos a cistetar ao longo do eixo x. Assim, tanto o escalonamento quanto o cisalhamento têm essa propriedade que podem reposicionar o objeto; podem reposicionar todos ou alguns dos pontos que definem o objeto.
Então, essas são as quatro transformações básicas. E quando na verdade estamos tentando transformar um objeto podemos aplicar essas transformações básicas em sequência, em múltiplos números, de maneiras diferentes para obter a transformação desejada. Agora, deve-se notar aqui um ponto que, para realizar a transformação, derivamos algumas equações, as equações que mostram a relação entre o velho e o novo ponto. Por isso, se quisermos realizar a transformação, temos que aplicar essas equações nos pontos antigos para conseguir os novos pontos.
Na verdade, essas equações não são muito calmas e convenientes para o uso para construir bibliotecas gráficas ou pacotes. Se estamos tentando projetar um sistema gráfico modular então essas transformações representadas na forma de equações podem não ser uma boa maneira de representar as transformações. Exigimos representações alternativas e essas representações estão aí sob a forma de matrizes. E também teremos muitas vantagens se usarmos matrizes, em especial no contexto da construção de sistemas modulares.
Por isso, na próxima palestra, discutiremos a representação matricial e por que ela é útil para representar transformações.