• No results found

O estudo dos métodos de representação geométrica é relevante devido às possibilidades, mas, principalmente, às limitações e restrições que podem im- por à criação de geometria e à implementação de recursos avançados de visuali- zação e interação.

Os modelos tridimensionais utilizados nos sistemas de computação re- presentam digitalmente um objeto físico sólido (Requicha e Rossignac, 1992). A computação gráfica dispõe de diversos métodos para a representação de mode- los tridimensionais, selecionados de acordo com as aplicações pretendidas. As implementações das representações de sólidos digitais exploram bases matemá- ticas herdadas da geometria algébrica e topológica, além de estruturas de dados clássicas, como as árvores de dados. Nos aplicativos geométricos, há três opções básicas para representação dos sólidos (Requicha e Rossignac, 1992):

 Por seu invólucro: representação de bordas (boundary representa-

tion – B-Rep) (seção 3.3.3.1).

 Por uma sequência de operações em sólidos elementares: represen- tação construtiva (constructive solid geometry – CSG) (seção 3.3.3.2).  Por grids volumétricos: subdivisão espacial (seção 3.3.3.3).

Além das estruturas de representação dos objetos, os aplicativos pos- suem mais dois componentes principais: métodos de análise e de manipulação dos objetos (operações) e ferramentas de criação de conteúdo (Requicha e Ros- signac, 1992).

É comum nos aplicativos a manutenção simultânea de ao menos dois tipos de representação, pois cada tipo possui métodos específicos para o proces-

samento e manipulação da informação. Algumas operações são mais viáveis ou mais simples de serem executadas em um determinado tipo de representação geométrica. A conversão de um tipo em outro não é sempre trivial e, em alguns casos, pode ser inviável (Hoffmann e Vanecek Jr., 1991). Dentre as operações mais importantes destacam-se a detecção de colisão e as operações booleanas (união, subtração e interseção), técnicas fundamentais à visualização das estrutu- ras internas, mas que demandam cuidados no momento da síntese dos modelos. Requicha e Rossignac (1992), em um trabalho consagrado, revisam os modelos de representação existentes, brevemente descritos a seguir.

3.3.3.1 Modelos tipo B-Rep

Boa parte dos aplicativos de modelagem tridimensional utiliza repre- sentações B-Rep de seus objetos. As B-Rep utilizam malhas, já discutidas ante- riormente (seção 3.3.2), armazenando os elementos básicos que constituem a envoltória do sólido e as relações entre eles (FIG. 41c). Os elementos geomé- tricos básicos são os vértices, as arestas e as faces. Outros mecanismos arma- zenam a topologia, ou seja, a relação entre os elementos geométricos. Da combinação de geometria e topologia, tem-se uma representação do tipo B-Rep (Hoffmann e Vanecek Jr., 1991). Quando se procede à visualização do interior do objeto através de secções, observa-se a parte interna das faces, prejudican- do a percepção do objeto como um sólido. Para evitar isso, alguns aplicativos mantêm representações alternativas, reconstroem o perímetro do sólido ou utili- zam algoritmos de visualização para corrigir o problema visual. Desta maneira, realizar cortes e operações booleanas (união, interseção e subtração) demanda identificar as curvas de interseção entre as faces dos dois sólidos, além da classificação das partes internas e externas de cada face, resultando em um novo sólido.

3.3.3.2 Modelos tipo CSG

A geometria sólida construtiva (constructive solid geometry – CSG) descreve um sólido em termos de operações básicas realizadas em volumes pri- mitivos, que constituem a unidade básica deste tipo de representação (FIG. 41a). A estrutura utilizada é a árvore de dados (octree), composta por nós que repre- sentam a sequência de operações realizadas e armazenam as primitivas utiliza-

das. As operações disponíveis são as transformações básicas (translação, rota- ção e escala) e as booleanas (adição, subtração e interseção). As primitivas mais comuns são os cubos, esferas, cones, cilindros e toroides, mas outras podem ser obtidas por operações simples, tais como extrusões lineares e radiais. A execu- ção de operações booleanas em sólidos CSG é trivial, já que fazem parte do cer- ne deste tipo de representação. A avaliação das superfícies é uma operação mais complexa, sendo necessário percorrer a árvore de dados e identificar as faces limítrofes das primitivas. Essa avaliação é necessária principalmente para execu- tar a conversão de um modelo CSG para um B-Rep.

3.3.3.3 Modelos tipo subdivisão espacial

Nesta representação, o objeto preenche posições em um grid tridimen- sional (FIG. 41b), obtido pela divisão do espaço com células poliédricas regulares ou irregulares, preferencialmente de tamanho uniforme (Hoffmann e Vanecek Jr, 1991). As células mais adotadas são do tipo cúbico, que, conforme o nível de de- talhamento necessário nas bordas, são divididas recursivamente. O modelo é re- presentado pela estrutura de dados denominada árvore hierárquica (octree), representando quais setores contém maior número de células. É nítido que, em alguns casos, as bordas podem ficar “voxelizadas” (um “pixel” tridimensional), o que confere um aspecto visual irregular, muitas vezes indesejado.

FIGURA 41 – Modelos de representação: a) representação de borda (B-Rep); (b) geometria sólida construtiva (CSG); (c) subdivisão espacial. Fonte: Xu (2014) (adaptado).

De fato, o tamanho das árvores de dados é diretamente proporcional à área superficial dos modelos e à resolução das bordas (Navazo, 1986). Desta

maneira, o tamanho dos modelos é sensível à rotação e à complexidade da forma do objeto. Um problema clássico desse método é a dificuldade em obter informa- ções sobre as bordas do objeto, pois é necessário encontrar os nós que contém células de borda. Cada face se estende por muitos nós da árvore, e, normalmen- te, se usam representações de borda alternativas para a execução de operações que envolvam as faces do objeto.

Operações booleanas podem ser executadas facilmente; porém, os sólidos resultantes podem conter imprecisões, devido tanto a diferenças dimen- sionais entre as células como a diferenças de orientação dos grids dos dois sóli- dos envolvidos. As operações booleanas são executadas percorrendo as árvores e identificando os nós que ocupam a mesma posição. Como as células dos dois sólidos dificilmente coincidem em tamanho e forma, os nós são recursi- vamente subdivididos de maneira a atingir a resolução necessária para executar a operação.

3.3.3.4 Operações de visualização em sólidos

Cortes e representações do espaço negativo são operações funda- mentais para a boa compreensão de modelos internamente complexos ou com muita oclusão (FIG. 42), tal como estruturas cristalinas. Muitas vezes, estes pro- cedimentos também impõem grandes desafios de implementação, especialmen- te quando são utilizados múltiplos planos ou volumes de corte. Os métodos utilizados dependem do tipo de representação adotada pelo aplicativo, mas normalmente são utilizadas operações booleanas. A visualização de cortes é comumente feita a partir de um ou mais planos de corte, definidos pelo usuário. Também é possível definir um objeto de corte, sendo o cubo e a esfera os mais utilizados. Após a escolha do objeto, procede-se à realização de uma ou mais operações booleanas entre o sólido de interesse e o objeto de corte. Caso o vo- lume de interesse seja composto por diversos objetos, é executada uma opera- ção por objeto. No caso de representações do tipo B-Rep, verifica-se a interseção entre os planos de corte e as faces do sólido. Após essa operação, é necessário computar as faces resultantes da interseção e integrar um novo sóli- do. Alguns algoritmos computam apenas as interseções e não recomputam as faces, gerando resultados visuais indesejáveis, como já discutido, pois é possí- vel observar as faces internas dos objetos. Quando rapidez de visualização é

imprescindível, são utilizados algoritmos aproximados, devido ao custo compu- tacional das operações booleanas.

FIGURA 42 – Exemplos de técnicas para lidar com oclusão em modelos tridimen- sionais: (a) corte; (b) transparência. Fonte: Dassault Systemes Solidworks Corpo- ration ([s.d.]) (adaptado).

Nos modelos CSG, a operação de corte é feita diretamente, sendo exe- cutada em cada primitiva intersecionada pelos planos de corte, incluindo na árvore de dados tanto o objeto de corte como a operação de interseção. O custo de cada operação é baixo, mas o processo pode demorar caso existam muitas primitivas para processar. Finalmente, no caso dos modelos de subdivisão espacial, busca-se os nós intersecionados pelos planos de corte. Para agilizar o processo, é possível adotar uma simplificação na operação, evitando a recursão nos nós que demandam maior resolução – o que, por outro lado, prejudica a qualidade de visualização.

RELATERTE DOKUMENTER