Prévia do material em texto
COMPUTAÇÃO GRÁFICA E PROCESSAMENTO DE IMAGENS OBJETIVOS DE APRENDIZAGEM > Apresentar os sólidos uni, bi e tridimensionais. > Descrever a representação de objetos por meio de faces poligonais e objetos tridimensionais. > Analisar as diferentes formas de representação dos objetos. Introdução O desenvolvimento de objetos gráficos depende da modelagem matemática dos objetos presentes no mundo físico, em que você vive. Esse processo inicia com a observação do mundo físico, passa para a aplicação de modelos matemáticos e resulta na representação de objetos, que precisam ser armazenados em uma estrutura de dados (GOMES; VELHO, 2015). Para representar graficamente uma bola ou uma caixa, por exemplo, é ne- cessário primeiro criar um modelo usando valores, ângulos, vetores e fórmulas matemáticas. De acordo com o objeto a ser representado, ou criado somente para o espaço tridimensional digital, sua forma de representação pode variar. Neste capítulo, você vai estudar os conceitos de sólidos uni, bi e tridimensionais, bem como conhecer as representações de objetos que utilizam faces poligonais e objetos tridimensionais. Por fim, vai ver as diferentes formas de representação dos objetos. Objetos e cenas tridimensionais Roni Francisco Pichetti Sólidos, uni, bi e tridimensionais Na área da computação gráfica, a modelagem de sólidos se trata de um conjunto de teorias, técnicas e sistemas que possibilitam criar um sólido com suas propriedades geométricas (AZEVEDO; CONCI; VASCONCELOS, 2022). Os sólidos, também chamados de objetos volumétricos, podem ser utilizados em diferentes áreas do conhecimento, como na saúde. Equipamentos de ressonância magnética, de uso médico, medem e calculam a profundidade de uma cena, por exemplo. Sólidos também são úteis para representar a descrição de peças mecânicas por meio de imagens tridimensionais (GOMES; VELHO, 2015). Um exemplo de sólido é apresentado na Figura 1. Figura 1. Representação tridimensional de três engrenagens. Fonte: Pixabay.com/TheDigitalArtist. Em computação gráfica, sólido é tudo aquilo que tem uma forma própria, um subconjunto fechado e limitado do espaço tridimensional. Nesse caso, fechado se refere à teoria de conjuntos: um corpo ou qualquer objeto é chamado de fechado quando tem todos os seus pontos de contorno. Por exemplo, seu corpo tem uma pele, que limita o que faz parte dele e onde começa o mundo exterior. É o mesmo que acontece com o sólido. Ele tem “bordas” bem delimitadas, que definem seu início e seu fim. Já limitado se refere ao sólido que tem uma dimensão finita, ou seja, ele não é infinito (AZEVEDO; CONCI; VASCONCELOS, 2022). Sólidos são semelhantes a uma imagem, mas carregam informações geo- métricas e topológicas de objetos do espaço. Por isso, precisam de técnicas Objetos e cenas tridimensionais2 como o processamento digital de geometria, útil para descrever os diferentes métodos e técnicas necessárias para resolver problemas que envolvam objetos gráficos sólidos (GOMES; VELHO, 2015). Para saber mais sobre o processamento digital de geometria de imagens, leia o artigo “Contagem de objetos utilizando técnicas de processamento digital de imagem: morfologia matemática”, de Sousa et al., publicado em 2020. Depois de você entender a definição de sólido, é importante esclarecer mais alguns pontos. Na maioria das vezes, o sólido é utilizado para dar a ideia de algo tridimensional (3D), de um objeto que existe no mundo físico e que é palpável. Mesmo assim, há sólidos que podem ser considerados unidimensionais (1D), como um fio, ou bidimensionais (2D), como folhas de metal ou de papel (AZEVEDO; CONCI; VASCONCELOS, 2022). Há momentos em que um próprio objeto em 3D em uma cena ou animação gráfica pode ser considerado 2D, quando uma de suas dimensões não for considerada, seja por não acontecer nada nela, seja por ter tamanho des- prezível, como no caso em que a dimensão for 100 vezes menor do que as demais. O mesmo pode acontecer se for considerada apenas uma dimensão de um objeto 3D, caso uma dimensão concentre as informações necessárias para a cena, ou as outras duas sejam muito pequenas em relação à primeira (AZEVEDO; CONCI; VASCONCELOS, 2022). Existem, portanto, sólidos uni, bi e tridimensionais. Porém geralmente os sólidos uni ou bidimensionais representam parte de um objeto sólido que em sua totalidade tem três dimensões, exceto se a cena em 3D necessitar de sólidos como fios em 1D ou folhas em 2D, por exemplo. Veja na Figura 2 um exemplo de sólido unidimensional (linha reta), bidimensional (quadrado visto de cima) e tridimensional (cubo). Figura 2. Exemplo de sólido uni, bi e tridimensional. Objetos e cenas tridimensionais 3 Além de sólidos, é possível modelar líquidos, gazes, materiais flexíveis e outras coisas sem uma forma única e própria (roupas, tecidos, plásticos e outros) por meio da computação gráfica. Esses modelos estão em constante desenvolvimento e pesquisa (AZEVEDO; CONCI; VASCONCELOS, 2022). A modelagem de sólidos envolve a geração de objetos que, mesmo que não sejam reais, possam ser construídos ou virem a existir no mundo físico. Por isso, não são simples desenhos. Essa característica considera o desen- volvimento de sólidos realizáveis (REIS; JOSÉ, 2014). Para conhecer um exemplo de sólido não realizável, busque em seu navegador pelos termos “garrafa de Klein” e “Secretaria da educação e do esporte do Paraná” e acesse o vídeo disponível na página. Criada pelo matemático Felix Klein, em 1884, a garrafa de Klein é uma superfície não orientável, fechada, resultante da identificação dos bordos de duas Faixas de Möbius, uma com uma semi-torção à direita e outra com uma semitorção à esquerda. Sendo uma superfície em que se pode mover de fora para dentro e vice-versa sem que se mude de superfície (PARANÁ, 2019, documento on-line). Em outras palavras, ao modelar um sólido em computação gráfica, são considerados vários fatores para que ele realmente seja fechado e limitado e que possa ser construído de alguma forma, seja por meio de impressoras de objetos 3D, seja com a utilização desses sólidos gráficos em projetos de arquitetura ou engenharia, por exemplo. As principais propriedades que precisam ser levadas em conta para mo- delar um sólido realizável são apresentadas no Quadro 1. Quadro 1. Propriedades de sólidos realizáveis Propriedade Descrição Rigidez Não pode variar, independentemente de sua localização e orientação no espaço. Finitude Deve ter dimensões finitas em uma porção do espaço (limitado). Homogeneidade Deve ter as mesmas propriedades em todos os seus pontos. Determinismo de limites Deve ser possível descrever o limite, interior e exterior do objeto (fechado). (Continua) Objetos e cenas tridimensionais4 Propriedade Descrição Descritibilidade Deve ser descrito por um determinado número de características (físicas, químicas, biológicas, etc.). Fechamento de operações Sua utilização em operações geométricas deve resultar em um objeto válido. Fonte: Adaptado de Azevedo, Conci e Vasconcelos (2022). A propriedade da rigidez garante que o sólido realizável não varie, mesmo que passe por transformações geométricas, como rotação e translação, ou se houver alguma mudança nos sistemas de coordenadas (AZEVEDO; CONCI; VASCONCELOS, 2022). É importante deixar claro que a translação tem como característica adicionar valores às coordenadas originais de um objeto, para obter seu deslocamento. Já na rotação, todos os pontos que compõem um objeto são girados de um ângulo constante em relação a um ponto de refe- rência inicial (PAULA FILHO, 2011). Para que as transformações geométricas possam ser colocadas em prá- tica, é preciso definir um ponto de observação, que pode ser fixo ou variar conforme o andamento de uma animação gráfica. Por isso, a rigidez é tão importante, pois o sólido não será criado para que fique em uma única posição, mas para ser movimentado. Ele não pode perder seu formato inicial duranteesse processo (WRIGHT JR. et al., 2011). Como vimos, a finitude é uma característica básica de um sólido, o que garante que ele tenha um limite de fim em suas dimensões. A homogenei- dade exige que todos os pontos que formam o objeto tenham as mesmas características. Já o determinismo dos limites, por sua vez, prevê que o sólido seja fechado, que sejam definidos previamente os limites entre o interior e o exterior do objeto gráfico. A descritibilidade, por sua vez, permite que o objeto seja descrito por meio de suas propriedades, sejam elas físicas ou químicas, por exemplo. Por fim, o fechamento sobre operações serve como uma “contraprova”, visto que o objeto criado precisa ser válido e resultar em valores válidos ao passar por operações geométricas (AZEVEDO; CONCI; VASCONCELOS, 2022). Os sólidos uni, bi e tridimensionais podem ser representados de diferentes formas, mas todas elas precisam ter algumas características em comum. Essas características são apresentadas no Quadro 2. (Continuação) Objetos e cenas tridimensionais 5 Quadro 2. Propriedades das formas de representação dos sólidos Propriedade Descrição Validade O modelo só pode representar sólidos válidos. Unicidade Cada sólido válido pode ter apenas um modelo. Não ambiguidade Cada modelo precisa corresponder a somente um sólido válido. Completude O modelo precisa ser completo, contendo todas as informações necessárias sobre ele para que diferentes funções possam ser executadas. Concisão O modelo precisa ocupar o menor espaço de memória de armazenamento possível. Simplicidade O modelo deve ser criado de forma simples e direta, sem que seja necessária nenhuma característica especial de hardware. Eficiência As operações do modelo precisam ser de fácil aplicação e apresentar respostas rápidas. Fechamento sobre operações As operações de descrição e manipulação precisam preservar a validade do modelo. Fonte: Adaptado de Azevedo, Conci e Vasconcelos (2022). Em resumo, para que um objeto gráfico seja caracterizado como sólido, ele precisa ser válido, e essa validade deve ser comprovada matematicamente. Da mesma forma, o sólido precisa ser único e representado por apenas um modelo, ao mesmo tempo que um modelo pode tratar de um só sólido. Os modelos, por sua vez, precisam ser completos, com todas as informações necessárias para reproduzir o sólido, seja no mundo real ou em outra aplicação. Apesar de bem completos, eles devem ocupar o menor espaço em memória possível, o que garante a sua simplicidade e eficiência. Por fim, mais uma vez reforça-se a importância do sólido ser fechado, que não mude mesmo que seja manipulado. Representação de objetos com faces poligonais e objetos tridimensionais Polígonos são figuras planas fechadas e formadas por muitos segmentos de retas e ângulos. Têm áreas delimitadas por poligonais fechadas, em que o Objetos e cenas tridimensionais6 primeiro e o último vértice se encontram. O polígono mais simples e comum é o triângulo. É possível construir polígonos com muito mais de três lados (ou faces), como é o caso do triângulo, para representar outros formatos de objetos gráficos. Um polígono será chamado de regular se ele tiver ângulos (e lados) iguais (PAULA FILHO, 2011). As faces poligonais geralmente são divididas em dois tipos principais: tesselação e poliedros. Tesselação, ou revestimento, é a cobertura de uma área plana, como o chão de uma sala. Ela é repetida pela quantidade de vezes necessária para que não se deixem espaços vazios no “piso”. As calçadas, por exemplo, são feitas com pedras. Para que a calçada fique completa, é preciso encaixar pedras até a superfície ficar totalmente coberta (REIS; JOSÉ, 2014). A tesselação possibilita muitas formas de criação, dependendo, para isso, da utilização de polígonos regulares. Para cobrir uma área com polígonos regulares com tesselação, só podem ser utilizados triângulos equiláteros, quadrados e hexágonos (veja a Figura 3). Isso porque somente no caso desses tipos de polígonos seus ângulos internos multiplicados por um número inteiro resultam em um múltiplo de 360 graus (AZEVEDO; CONCI; VASCONCELOS, 2022). Figura 3. Tesselação, ou revestimento: triângulos, quadrados e hexágonos. Fonte: Azevedo, Conci e Vasconcelos (2022, p. 128). A maioria dos softwares de modelagem e jogos de realidade virtual em- pregam a representação por faces triangulares. Isso acontece pois ela uti- liza menos memória, consome menos tempo de renderização e se adapta a qualquer tipo de contorno. Outro ponto forte dessa representação é que ela pode ser implementada automaticamente por funções de OpenGL ou Java 3D (AZEVEDO; CONCI; VASCONCELOS, 2022). Outra classe importante de objetos gráficos utilizados na representação de sólidos é chamada de poliedro. Os poliedros são compostos por muitos lados. São limitados por um conjunto de polígonos cujos lados pertencem Objetos e cenas tridimensionais 7 a um número par de polígonos. Esses lados são chamados de arestas do poliedro (REIS; JOSÉ, 2014). Quando um poliedro é topologicamente equivalente a uma esfera, ele é classificado como um poliedro simples. Poliedros simples podem ser defor- mados em uma esfera, por serem compostos de um só bloco componente ou de uma única parte (AZEVEDO; CONCI; VASCONCELOS, 2022). Poliedros são utilizados para triangular um espaço 3D. Quando isso acon- tece é criada uma superfície poliédrica. Como é possível posicionar triângulos em muitos graus e ângulos no espaço, deve-se ter cuidado para que eles sejam posicionados corretamente e que a superfície poliédrica realmente crie a topologia do objeto triangulado (GOMES; VELHO, 2015). O estudo e a utilização de triângulos para criar superfícies poliédricas ocorre porque o triângulo é um modelo de objeto muito utilizado em mate- mática, o que garante que existam muitos resultados já validados para esse tipo de modelo. Além disso, as triangulações são mais fáceis de representar e manipular no computador. Outro fator importante é sua simplicidade. Confira a seguir as vantagens das faces triangulares (GOMES; VELHO, 2015). � Planaridade: são sempre curvas poligonais planas, o que facilita os cálculos em sua aplicação nas superfícies poliédricas. � Sistema de coordenadas: são associados a um sistema de coordenadas lineares, que pode ser usado para definir atributos da superfície. � Extensibilidade: podem se estender a valores infinitos no grupo de número naturais, relacionado ao conceito de complexos simpliciais. É importante deixar claro que qualquer polígono pode ser subdividido em triângulos. Por isso, não se perde nada ao restringir o uso exclusivo de faces triangulares na construção dessas superfícies. As superfícies poliédricas podem ser definidas com polígonos arbitrários, que tenham qualquer for- mato, desde que sejam compatíveis em sua formação (interseção de arestas e vértices) (GOMES; VELHO, 2015). Vale lembrar que as faces de um objeto em 3D são seus diferentes “lados” ou “paredes”, ou seja, são polígonos delimitados por arestas. Já as arestas são as linhas formadas pelo encontro de duas faces, que unem vértices. Os vértices são os pontos de encontro entre as arestas no espaço tridimensional, conforme detalhado na Figura 4 (PAULA FILHO, 2011). Objetos e cenas tridimensionais8 Figura 4. Pirâmide 3D. Na Figura 5 as faces da pirâmide são representadas por f, as arestas por e, e os vértices por v. O poliedro do exemplo tem cinco faces, oito arestas e cinco vértices. Figura 5. Pirâmide quadrangular. Fonte: Adaptada de Gomes e Velho (2015). Esses conceitos são muito importantes, por estarem diretamente rela- cionados ao próximo assunto a ser abordado: as estruturas de dados. Aqui, você conhecerá conceitos sobre estruturas de dados básicas, baseadas em faces, vértices ou arestas, assim como estruturas mais completas, como winged-edge (borda alada) e half winged-edge (meia borda alada). Para manipular um modelo geométrico no computador, é preciso ter emmãos informações topológicas e geométricas sobre o modelo. A representação da superfície é vista como um banco de dados geométrico que recebe mui- tas informações. Essas informações visam a responder algumas perguntas, como quais arestas incidem com cada vértice, quais polígonos compartilham uma aresta ou um vértice, quais arestas delimitam um polígono e qual é a visualização da superfície utilizando todas as faces, arestas e vértices do objeto. Esses dados são organizados de acordo com diferentes estruturas (GOMES; VELHO, 2015). Objetos e cenas tridimensionais 9 As estruturas de dados de modelos geométricos servem para responder a essas perguntas de forma eficiente, por meio de um armazenamento or- ganizado das informações necessárias, possibilitando mais rapidez e con- sistência nas operações geométricas. Também permitem realizar operações topológicas, como subdivisão, criação e agrupamento de faces, arestas e vértices (AZEVEDO; CONCI; VASCONCELOS, 2022). A estrutura de dados baseada em faces também é chamada de codificação explícita, porque ela codifica explicitamente cada polígono da superfície por meio de uma lista de faces com suas coordenadas. Esse método é ex- tremamente simples, porém tem algumas desvantagens. Uma delas é não considerar que geralmente os vértices presentes em uma superfície poliédrica são partilhados por dois ou mais triângulos. Isso provoca uma ocupação des- necessária de armazenamento e, ao visualizar a malha poligonal, cada aresta compartilhada é desenhada duas vezes, o que torna o resultado ineficiente (GOMES; VELHO, 2015). Veja no Quadro 3 como seria essa estrutura quando aplicada a uma pirâ- mide 3D como a apresentada na Figura 6. Quadro 3. Codificação explícita da superfície poligonal de uma pirâmide Codificação F1 = ((x1, y1, z1), (x5, y5, z5), (x2, y2, z2)) F2 = ((x3, y3, z3), (x2, y2, z2), (x5, y5, z5)) F3 = ((x3, y3, z3), (x4, y4, z4), (x5, y5, z5)) F4 = ((x1, y1, z1), (x4, y4, z4), (x5, y5, z5)) F5 = ((x1, y1, z1), (x2, y2, z2), (x3, y3, z3), (x4, y4, z4)) Fonte: Adaptado de Gomes e Velho (2015). A estrutura de dados baseada em vértices, ou codificação com lista de vértices, utiliza uma lista de vértices pela qual é possível definir a referência de cada polígono da superfície. Comparada à estrutura baseada em faces, essa codificação gera economia de espaço, porque cada vértice é armaze- nado apenas uma vez. Outra vantagem é que, ao alterar as coordenadas de um vértice nesse tipo de estrutura, todos os polígonos nele incidentes Objetos e cenas tridimensionais10 são atualizados automaticamente, o que facilita a manipulação interativa da superfície em questão. Como desvantagem, ainda é difícil determinar os polígonos que compartilham uma aresta e, na representação gráfica do objeto, as arestas compartilhadas também são desenhadas duas vezes (GOMES; VELHO, 2015). A única exigência desse tipo de estrutura de armazenamento é que a des- crição das faces seja consistente. Os vértices limites das faces são descritos sempre no mesmo sentido (horário ou anti-horário) do exterior do objeto para todas as suas faces (AZEVEDO; CONCI; VASCONCELOS, 2022). Observe no Quadro 4 a lista de vértices e de faces utilizada por essa estrutura de dados, aplicada novamente a uma pirâmide 3D. Quadro 4. Codificação com lista de vértices da superfície poligonal de uma pirâmide Lista de Vértices Lista de Faces V1 = ((x1, y1, z1) F1 = (V1, V5, v2) V2 = (x2, y2, z2) F2 = (V3, V2, V5) V3 = (x3, y3, z3) F3 = (v3, V4, v5) V4 = (x4, y4, z4) F4 = (V1, V4, V5) V5 = (x5, y5, z5) F5 = (V1, V2, V3, V4) Fonte: Adaptado de Gomes e Velho (2015). Já a estrutura de dados baseada em arestas, ou codificação com lista de arestas, traz ainda mais flexibilidade do que a anterior. Ela utiliza uma codificação que acrescenta uma lista de arestas à lista de vértices. As faces são definidas por referências às arestas, não somente aos vértices. Para isso, são necessárias três listas: uma lista de vértices, uma lista de arestas e uma lista de faces, que sempre são referenciadas pela lista anterior. Nesse caso, tem-se acesso a todas as arestas a partir da lista de arestas, não somente percorrendo o limite de cada um dos polígonos, como pode ser observado no Quadro 5 (GOMES; VELHO, 2015). Objetos e cenas tridimensionais 11 Quadro 5. Codificação com lista de arestas da superfície poligonal de uma pirâmide Lista de vértices Lista de arestas Arestas → vértices Lista de faces Faces → arestas V1 = ((x1, y1, z1) E1 → V1, V2 F1 → (V1, V5, v2) V2 = (x2, y2, z2) E2 → V2, V3 F2 → (V3, V2, V5) V3 = (x3, y3, z3) E3 → V3, V4 F3 → (v3, V4, v5) V4 = (x4, y4, z4) E4 → V4, V1 F4 → (V1, V4, V5) V5 = (x5, y5, z5) E5 → V1, V5 F5 → (V1, V2, V3, V4) E6 → V2, V5 E7 → V3, V5 E8 → V4, V5 Fonte: Adaptado de Gomes e Velho (2015). Essa estrutura permite a descrição das faces por meio de uma sequência de arestas fechadas. Como detalhado na estrutura anterior, neste caso a ordem das arestas nas faces também deve ter sempre a mesma orientação (AZEVEDO; CONCI; VASCONCELOS, 2022). As estruturas de dados apresentadas até aqui têm muitas restrições quanto à topologia das faces e da geometria do objeto gráfico. Por isso, para casos complexos, existem as codificações mais completas, como a winged-edge e a half winged-edge. A estrutura de dados winged-edge foi criada por Baumgart em 1975 para melhorar os algoritmos de remoção de superfícies escondidas e sombrea- mento de imagens gráficas. Nela, as informações das faces vizinhas e das arestas seguintes são adicionadas aos dados das arestas. Como cada aresta pertence a duas faces, duas novas arestas podem descrever essas faces (AZEVEDO; CONCI; VASCONCELOS, 2022). Essa codificação, portanto, utiliza três tabelas: a primeira tabela com as coordenadas de cada vértice; a segunda com as coordenadas de cada aresta (sendo que, para cada aresta, são relacionados um vértice inicial e um vértice final, além de um identificador para o sentido da aresta, que deixa claro se ela está no sentido horário ou anti-horário); e a tabela de faces, com o identificador da face e a aresta inicial. Objetos e cenas tridimensionais12 A winged-edge foi atualizada e melhorada ao longo dos anos, a fim de aumentar a variedade de objetos que possam ser modelados. Uma das mudanças foi feita por Mäntylä em 1988, que propôs a half winged-edge. Ela considera que uma aresta é formada por duas semiarestas, ou duas partes de aresta. Cada uma dessas partes é adjacente somente a uma face do objeto gráfico, sendo necessário armazenar apenas uma referência para uma face em cada uma das half winged-edge. Para diminuir ainda mais o armazenamento, mantêm-se somente as referências para as partes anterior e posterior da sequência de semiarestas que compõem a face (AZEVEDO; CONCI; VASCONCELOS, 2022). Portanto, o sentido das arestas é muito im- portante nessas duas últimas estruturas de armazenamento apresentadas. Formas de representar objetos Há diferentes maneiras de representar superfícies definidas parametrica- mente. Grande parte delas se utiliza de decomposição, ou divisão, da super- fície em partes menores, para que sejam reagrupadas quando necessário (GOMES; VELHO, 2015). Nesta seção, você conhecerá as principais formas de representação de objetos gráficos: enumeração da ocupação espacial; de- composição do espaço em octrees; decomposição do espaço em quadtrees; quadtrees e octrees lineares; e representação implícita. A representação por enumeração da ocupação espacial decompõe o sólido em “pedaços”. Como se estivesse sendo feita uma tesselação do espaço. Nesse caso, entre os sólidos regulares existentes, apenas o cubo possibilita um preenchimento total do espaço por repetições infinitas dele mesmo. Por isso, na representação por enumeração da ocupação espacial, o espaço é subdivido em cubos. Esses cubos são chamados de voxels, que formam uma grade tridimensional (AZEVEDO; CONCI; VASCONCELOS, 2022). Confira um exemplo dessetipo de representação na Figura 6. Figura 6. Exemplo de representação por ocupação espacial. Fonte: Azevedo, Conci e Vasconcelos (2022, p. 135). Objetos e cenas tridimensionais 13 Essa representação torna fácil determinar se dois objetos se interferem e fácil realizar as operações booleanas (união, diferença e intersecção) de sólidos. Para determinar se um ponto específico pertence ou não ao sólido, é só conferir se ele pertence a algum dos voxels. Também é fácil obter a propriedade de massa e volume do objeto. Para isso, basta saber o volume de uma das partes e multiplicá-lo pelo número total de divisões ocupadas (AZEVEDO; CONCI; VASCONCELOS, 2022). Uma desvantagem da enumeração da ocupação espacial é que, na re- presentação de objetos complexos ou muito detalhados, é necessária uma grande quantidade de memória disponível. Esse tipo de modelagem por voxel chegou a ser utilizada em alguns jogos digitais, porém foi abandonada por seu alto custo de armazenagem e representação realística (AZEVEDO; CONCI; VASCONCELOS, 2022). A representação por decomposição do espaço em octrees (árvore com oito filhos) pode ser considerada um caso especial de subdivisão espacial. A subdivisão espacial, de forma geral, decompõe uma superfície em subsu- perfícies, que passam a ter uma descrição paramétrica. Cada uma dessas subsuperfícies é representada com uma estruturação da decomposição. A reconstrução da superfície original é feita utilizando-se a estruturação da decomposição aliada a um método de reconstruir a parametrização de cada “pedaço” (GOMES; VELHO, 2015). No caso específico da decomposição do espaço em octrees, o primeiro passo é dividir o objeto gráfico com um cubo e depois dividi-lo em oito cubos menores de igual tamanho (octantes). Por fim, cada um desses cubos é classificado como (AZEVEDO; CONCI; VASCONCELOS, 2022): � cheio: se o objeto em questão ocupar todo o cubo; � vazio: caso o objeto não ocupe nenhuma parte do cubo; � cheio-vazio: caso o objeto ocupe somente uma parte do cubo. Quando um octante é classificado como cheio-vazio, ele é dividido no- vamente em oito partes iguais, para que a classificação possa ser refeita em cada uma dessas subpartes. O algoritmo que utiliza esse tipo de repre- sentação repete esse processo até que todos os cubos pertençam às duas primeiras classes: cheio ou vazio. Por isso, com essa técnica, os voxels podem ter dimensões variáveis. Esse tipo de representação facilita as operações de união e interseção de objetos, assim como a operação de rotação de 90 graus em torno de qualquer um dos três eixos de um objeto 3D (AZEVEDO; CONCI; VASCONCELOS, 2022). Objetos e cenas tridimensionais14 Observe na Figura 7 o objeto a ser representado, a representação em oito partes e um grande cubo com oito cubos menores. Figura 7. Exemplo de representação por octree. Fonte: Adaptada de Azevedo, Conci e Vasconcelos (2022). Da mesma forma que a representação anterior, a decomposição do espaço em quadtrees (árvores com quatro filhos) também envolve o objeto gráfico em um grande cubo para depois dividi-lo. A diferença é que essa estrutura de armazenamento divide o plano em quatro partes iguais, para, a partir daí, classificar cada parte da mesma forma que as octrees. As vantagens e desvantagens do seu uso são as mesmas da enumeração espacial e das octrees. Além disso, elas permitem uma representação mais detalhada do que as octrees, utilizando menos memória (AZEVEDO; CONCI; VASCONCELOS, 2022). Já as quadtrees e octrees lineares utilizam uma notação sem ponteiros e na forma de um endereço até cada nó do objeto. Na notação linear, cada nó caracterizado como cheio é representado como uma sequência de dígitos, que são seus endereços, por meio da árvore. Essa sequência localiza o nó cheio em uma posição de 0 a 3 nas quadtrees, ou de 0 a 7 nas octrees. Cada endereço tem o número de dígitos que corresponde aos níveis usados na representação. Nesse caso, para identificar as partes do objeto, são utilizados tantos dígitos quanto os níveis de subdivisão da árvore de dados. Os nós cheios Objetos e cenas tridimensionais 15 que não estão no nível mais baixo podem ser representados por um dígito adicional, como no fim do endereço (AZEVEDO; CONCI; VASCONCELOS, 2022). Na Figura 8 você pode ver um exemplo de representação linear com quatro níveis de divisão, em que os endereços terão no máximo quatro dígitos. A numeração dos quadrantes é de 0 a 3. Figura 8. Exemplo de representação linear. Fonte: Azevedo, Conci e Vasconcelos (2022, p. 138). Veja na Figura 8 que o quadrante 1 é totalmente vazio, mesmo em seus níveis de divisão. Por isso, não haverá nenhum endereço que inicie com 1, diferentemente do que acontece com o endereço 2, que está completamente cheio já na primeira divisão da figura em quatro quadrantes. Os endereços 0 e 3 têm o maior nível de divisão, pois somente parte deles está cheia (AZEVEDO; CONCI; VASCONCELOS, 2022). Por fim, a representação implícita prevê a utilização de expressões mate- máticas que estão implícitas nos próprios sólidos modelados. Elas podem ser armazenadas e utilizadas na modelagem, ou mesmo combinadas com outras formas de representação, como para gerar novos objetos por combinações ou Objetos e cenas tridimensionais16 por união de objetos. Em outras palavras, esse tipo de representação apro- veita o fato de que muitas formas têm equações perfeitamente conhecidas e simples e as coloca em prática. Se os sólidos forem esferas, cilindros elípticos ou outros, usar as equações implícitas de acordo com a forma de cada um é uma maneira simples de armazenar, operar e até de renderizar cada um deles de forma eficiente (AZEVEDO; CONCI; VASCONCELOS, 2022). Ao trabalhar com superfícies implícitas, é possível definir os conceitos e atributos de maneira implícita ou então procurar uma representação não implícita da superfície. Por exemplo, o cálculo da visibilidade e da iluminação de uma superfície implícita pode ser realizado sem a neces- sidade de ter uma representação não implícita, com um método como o de traçado de raios. O cálculo de uma representação não implícita dá acesso a um maior número de ferramentas para estudar a superfície em questão (GOMES; VELHO, 2015). Conheça mais conceitos e exemplos de estruturas de dados de objetos gráficos no artigo “Comparação de estruturas de dados para subdivisões planares baseada em transições”, de Andrade Neto e Guedes, publicado em 2006. Neste capítulo, você estudou conceitos de sólidos, ou objetos volumé- tricos, unidimensionais (1D), bidimensionais (2D) e tridimensionais (3D) e sua aplicação na computação gráfica. Em seguida, acompanhou diferentes maneiras de representar objetos tridimensionais com faces poligonais, como poliedros, que são compostos por vários lados, e tesselação, ou revestimento, que é a cobertura de uma área plana. Por fim, você conheceu técnicas de representação de objetos. A representação por enumeração da ocupação espacial decompõe o sólido em partes. A decomposição do espaço em octrees é considerada um caso especial de subdivisão espacial. A decomposição do espaço em quadtrees divide o plano em quatro partes iguais. Já as quadtrees e octrees lineares usam uma notação sem ponteiros, na forma de um endereço até cada nó do objeto. Por fim, a representação implícita, como o nome sugere, usa expressões matemáticas implícitas nos próprios sólidos modelados. Objetos e cenas tridimensionais 17 Referências AZEVEDO, E.; CONCI, A.; VASCONCELOS, C. Computação gráfica: teoria e prática: geração de imagens. Rio de Janeiro: Alta Books, 2022. v. 1. GOMES, J.; VELHO, L. Fundamentos da computação gráfica. São Paulo: IMPA, 2015. PARANÁ. Secretaria da Educação. Garrafa de Klein. Curitiba: Secretaria da Educação, 2019. Disponível em: http://www.matematica.seed.pr.gov.br/modules/video/showVideo. php?video=6938. Acesso em: 6 jun. 2022. PAULA FILHO, W. P. Multimídia: conceitos e aplicações. 2. ed. Rio de Janeiro: LTC,2011. REIS, B.; JOSÉ, M. F. Projetos gráficos: fundamentos 2D e 3D. São Paulo: Érica, 2014. WRIGHT JR., R. S. et al. OpenGL superbible: comprehensive tutorial and reference. 5th ed. Boston: Pearson Education, 2011. Leituras recomendadas ANDRADE NETO, P. R.; GUEDES, A. L. P. Comparação de estruturas de dados para sub- divisões planares baseada em transições. RITA, 2006. Disponível em: http://www. inf.ufrgs.br/~comba/cmp189-files/estruturas_de_dados.pdf. Acesso em: 6 jun. 2022. CORRIGAN, J. Computação gráfica: segredos e soluções. Rio de Janeiro: Ciência Mo- derna, 1994. SOLOMON, C.; BRECKON, T. Fundamentos de processamento digital de imagens: uma abordagem prática com exemplos em Matlab. Rio de Janeiro: LTC, 2013. SOUSA, M. H. S. et al. Contagem de objetos utilizando técnicas de processamento digital de imagem: morfologia matemática. Brazilian Journal of Development, v. 6, n. 8, p. 57432-57440, 2020. Os links para sites da web fornecidos neste capítulo foram todos testados, e seu funcionamento foi comprovado no momento da publicação do material. No entanto, a rede é extremamente dinâmica; suas páginas estão constantemente mudando de local e conteúdo. Assim, os editores declaram não ter qualquer responsabilidade sobre qualidade, precisão ou integralidade das informações referidas em tais links. Objetos e cenas tridimensionais18