Objeto composto booleano

Um objeto booleano combina dois outros objetos ao executar uma operação booleana.

Dica: ProBooleano é uma implementação melhorada, atualizada e mais completa do objeto composto booleano. Em geral, é recomendado que você utilize o ProBooleano em vez de uma operação booleana para combinar objetos 3D.

Operando A (esquerda); Operando B (direita)

Estas são as operações booleanas para a geometria:

União

O objeto booleano contém os volumes de ambos os objetos originais. A parte da interseção ou sobreposição da geometria é removida.

Interseção

O objeto booleano contém somente o volume comum para ambos os objetos originais (em outras palavras, onde eles estão sobrepostos).

Subtração (ou diferença)

O objeto booleano contém o volume de um objeto original com o volume da interseção removido.

Os dois objetos originais são designados operandos A e B.

É possível fazer uma camada na visualização de pilha para que um único objeto possa incorporar muitas operações booleanas. Ao navegar através da visualização de pilha, é possível rever os componentes de cada operação booleana e fazer alterações.

Subtração: A-B (acima); B-A (abaixo)

União (acima); Interseção (abaixo)

Operações booleanas com objetos que tenham materiais atribuídos a eles

A maioria das primitivas usam diversos IDs de material em suas superfícies. Por exemplo, uma caixa utiliza IDs de material 1–6 em seus lados. Se você atribuir seis submateriais a um Material múltiplo/subobjeto, o 3ds Max atribuirá automaticamente um para cada lado. Se você atribuir dois submateriais a um material múltiplo/subobjeto, o 3ds Max irá atribuir o primeiro material aos lados 1, 3 e 5, e o segundo aos lados 2, 4 e 6.

Quando você cria uma operação booleana de objetos que tenham materiais atribuídos a eles, o 3ds Max combina os materiais da seguinte forma:

Para obter mais informações, consulte a caixa de diálogo Opções para anexar material.

Soluções ao trabalhar com operações booleanas

O algoritmo booleano causou comportamento inesperado em versões anteriores. As soluções são aqui discutidas.

Topologia da superfície

A operação booleana exige que a topologia da superfície dos operandos esteja intacta: isso significa nenhuma face ausente ou sobreposta e nenhum vértice não soldado. A superfície deve ser fechada e contínua.

A operação booleana corrige operandos que não cumpram este requisito. No entanto, a correção automática pode não ser exatamente o que você deseja e, assim, em alguns casos, pode ser mais seguro corrigir as superfícies manualmente.

Para verificar os buracos na geometria, use o modificador STL-Check ou utilitário Medição.

Para preencher os buracos, use o modificador Capear buracos.

Normais de face

Operações booleanas requerem que os normais da face da superfície sejam consistentes. Normais invertidos podem produzir resultados inesperados. Superfícies em que algumas faces estão voltadas para uma direção e outras faces adjacentes estão invertidas também são problemáticas, sendo normalmente encontradas em geometrias importadas de programas de CAD. A operação booleana corrige essas faces da melhor forma possível. Novamente, pode fazer mais sentido corrigir isso manualmente.

Utilize viewports sombreados para procurar problemas de normais, observando objetos que apareçam dentro e fora ou aparentem estar incorretos. Também é possível ativar a opção Mostrar na implementação Malha editável (face) Propriedades da superfície Grupo de normais. Corrija as normais aqui ou com um Modificador de normal.

Elementos de sobreposição

Como as operações booleanas dependem de uma clara compreensão do que está no interior e no exterior de uma malha, as malhas que se sobrepõem podem produzir resultados inválidos. Por exemplo, se você usa o utilitário Retrair com dois objetos sobrepostos sem ativar o recurso de operação booleana, o objeto resultante não será um bom operando booleano. Isso também é um problema para a Primitiva do bule(com todas as peças ativadas) que se sobrepõem.

Se você precisar usar um objeto como um operando booleano, poderá reconstruí-lo como uma única malha de não sobreposição ao separar os componentes e combiná-los com operandos booleanos.

Trabalhando com malhas invertidas

A operação booleana nem sempre produz o resultado ideal em "malhas invertidas" (malhas que foram colocadas dentro e fora por terem suas normais invertidas). O problema é que a área dentro da malha invertida é vista corretamente como "exterior", mas a área externa também pode ser vista como “exterior”. Para solucionar isso, em vez de inverter a malha, faça uma grande caixa ou outra primitiva centralizada na malha (mas não a tocando) e subtraia a malha dela utilizando uma operação booleana. Em seguida, converta-a em uma malha editável e exclua as faces da caixa. Isso produz uma malha corretamente invertida que funciona corretamente com uma operação booleana.

Alinhamento

Se dois operandos booleanos estiverem perfeitamente alinhados sem interseção, a operação booleana poderá produzir o resultado incorreto. Embora isso seja raro, se ocorrer, você pode eliminá-lo fazendo com que os operandos se sobreponham ligeiramente.

Complexidade relativa entre operandos

A operação booleana funciona melhor quando dois operandos são de complexidade similar. Se você quiser subtrair texto (um objeto complexo de várias faces e vértices) a partir de uma caixa sem quaisquer segmentos, o resultado será muitas faces longas e finas propensas a erros de renderização. O aumento do número de segmentos da caixa produz resultados melhores. Tente manter uma complexidade similar entre os operandos.

Faces coplanares/bordas colineares

Anteriormente, a operação booleana exigia que os objetos se sobrepusessem. Se dois objetos não se sobrepuserem, mas simplesmente tocarem uma borda em outra borda ou uma face em outra face, a operação booleana irá falhar.

A operação booleana permite objetos de não sobreposição. Faces/bordas e vértices coincidentes não são mais um problema. É possível utilizar objetos completamente alojados em outro objeto, onde nenhuma borda faça interseção, para criar operações booleanas.

Consulte também Utilitário retrair para criar operações booleanas com vários objetos.

Procedimentos

Para criar um objeto booleano:

  1. Selecione um objeto. Este objeto torna-se um operando A.
  2. Clique em operação booleana. O nome do operando A aparece na lista de Operandos na implementação de Parâmetros.
  3. Na implementação Selecionar operação booleana, selecione o método de cópia para o operando B: fazer referência, mover, copiar ou instância. (Esses métodos são descritos na seção de implementação Selecionar operação booleana, mais adiante neste tópico).
  4. Na implementação dos parâmetros, escolha a operação booleana a ser executada: união, interseção, subtração (A-B) ou subtração (B-A). Também é possível selecionar uma das operações de corte, descritas mais tarde na seção do grupo de Operação.
  5. Na implementação Selecionar operação booleana, clique em Selecionar Operando B.
  6. Clique na viewport para selecionar o operando B. O 3ds Max executará a operação booleana.

    Os objetos do operando permanecem como subobjetos do objeto booleano. Ao modificar os parâmetros de criação dos subobjetos de operando da operação booleana, posteriormente, é possível alterar a geometria do operando para trocar ou animar o resultado booleano.

Por exemplo, para criar e modificar um único objeto que contenha várias operações booleanas:

    Suponha que deseje criar uma caixa com dois buracos. Um buraco é para ser cortado por uma esfera e o segundo por um cilindro. Se quiser fazer alterações na esfera ou no cilindro posteriormente, será possível seguindo-se estas etapas:

  1. Crie uma operação booleana seguindo as etapas das seções anteriores. O objeto original (caixa) será convertido em uma operação booleana e será designado ao operando A. O segundo objeto (esfera) será convertido no operando B.
  2. Desmarque o objeto booleano. Construa o cilindro, se já não existir.
  3. Selecione o objeto booleano; e em Objetos compostos, clique em Operação booleana novamente.
  4. Clique em Selecionar operando B e clique no cilindro na viewport. Ele será convertido no operando B.
  5. No Painel Modificar, selecione o Operando B dos parâmetros da lista de Operandos. Se você desejar ver o operando B, selecione Exibir/Atualizar Grupo de exibição Operandos ou Resultado + Operandos ocultos.

    Se desejar animar o cilindro ou os parâmetros do cilindro, é possível acessá-los na visualização da pilha modificadora.

  6. Se desejar modificar os parâmetros da esfera, selecione a caixa na lista de operandos.
  7. Haverá agora duas entradas etiquetadas como booleanas na exibição da pilha. Selecione a entrada inferior. A esfera será exibida na lista de operandos.
  8. Selecione a esfera na lista de operandos. Os parâmetros da esfera estarão disponíveis clicando no nome da esfera na exibição da pilha modificadora.
  9. Use esta técnica para alterar os parâmetros ou animar qualquer operando em várias operações booleanas.

Também é possível navegar em várias operações booleanas através da Vista de trilha. Clicar no operando na Vista de trilha oferecerá acesso direto para a sua entrada na visualização da pilha modificadora. Em objetos complexos com muitas operações booleanas, este é um método mais fácil do que o descrito acima.

Interface

Selecionar implementação booleana

Ao selecionar o operando B, ele é atribuído como Fazer referência, Mover (o próprio objeto), Copiar ou Instância, de acordo com sua seleção na implementação Selecionar operação booleana para objetos booleanos. Baseie sua seleção em como deseja utilizar a geometria da cena após criar a operação booleana.

Como você costuma criar objetos booleanos a partir de objetos sobrepostos, se o objeto B não for removido (caso não use a opção Mover), ele frequentemente obstruirá sua visão da operação booleana completa. É possível mover o objeto booleano ou o objeto B para ver melhor o resultado.

Selecionar operando B

Utilize este botão para selecionar o segundo objeto a completar a operação booleana.

Fazer referência/Copiar/Mover/Instância

Permite especificar como o operando B é transferido para o objeto booleano. Ele pode ser transferido como uma referência, uma cópia, uma instância ou ser movido.

  • Utilize a ferramenta Fazer referência para sincronizar as alterações induzidas do modificador no objeto original com o operando B, mas não vice-versa.
  • Utilize a ferramenta Copiar quando desejar reutilizar a geometria do operando B para outras finalidades na cena.
  • Utilize a ferramenta Instância para sincronizar a animação do objeto booleano com as alterações animadas do objeto original B e vice-versa.
  • Utilize a ferramenta Mover (padrão) se você tiver criado a geometria do operando B somente para criar uma operação booleana e não tiver outro uso para ela.

    A geometria do objeto B torna-se parte do objeto booleano, independentemente de qual método de cópia for utilizado.

Desenvolvimento de parâmetros

Grupo de operandos
[lista de operandos]
Exibe os operandos atuais.
Nome
Editar este campo para alterar o nome dos operandos. Selecione um operando na lista de Operandos e ele também aparecerá na caixa Nome.
Extrair operando
Extrai uma cópia ou uma instância do operando selecionado. Escolha um dos operandos na janela da lista para ativar este botão.
Nota: Este botão fica disponível somente no painel Modificar. Não é possível extrair um operando enquanto o painel Criar estiver ativo.
Instância/Copiar
Permite especificar como o operando é extraído: como uma instância ou uma cópia.
Grupo de operação
  • União O objeto booleano contém o volume de ambos os objetos originais. A parte da interseção ou sobreposição da geometria é removida.
  • Interseção O objeto booleano contém somente o volume que foi comum para ambos os objetos originais (em outras palavras, onde eles foram sobrepostos).
  • Subtração (A-B) Subtrai o volume de interseção do operando B do operando A. O objeto booleano contém o volume do operando A com o volume de interseção subtraído dele.
  • Subtração (B-A ) Subtrai o volume de interseção do operando A do operando B. O objeto booleano contém o volume do operando B com o volume da interseção subtraído dele.
  • Cortar Corta o operando A com o operando B, mas não adiciona nada à malha do operando B. Funciona como o Modificador Fatiar, mas ao invés de usar uma meta-alça plana, a ferramenta Cortar utiliza a forma do operando B como plano de corte. A ferramenta Cortar trata a geometria do objeto booleano como volume, ao invés de sólido fechado. A ferramenta não adiciona a geometria do operando B no operando A. As interseções do operando B definem as áreas de corte para alterar a geometria no operando A.

    Há quatro tipos de corte:

    • Refinar Adiciona novos vértices e bordas ao operando A onde o operando B faz interseção com as faces do operando A. O 3ds Max refina a geometria resultante do operando A com faces adicionais dentro da área de interseção do operando B. Os cortes de face pela interseção são subdivididos em novas faces. Você pode utilizar esta opção para refinar a caixa com texto a fim de atribuir um ID de material separado para o objeto.
    • Dividir Funciona como a ferramenta Refinar, mas também adiciona um segundo ou duplo conjunto de vértices e bordas ao longo do limite onde o operando B corta o operando A. A divisão produz dois elementos que pertencem à mesma malha. Utilize Dividir para dividir um objeto em duas partes ao longo dos limites de outro objeto.
    • Remover dentro Exclui todas as faces do operando A dentro do operando B. Esta opção modifica e exclui as faces do operando A dentro da área em interseção com o operando B. Funciona como a opção de subtração, com a exceção de que o 3ds Max não adiciona nenhuma face do operando B. Utilize Remover dentro para excluir áreas específicas da sua geometria.
    • Remover fora Exclui todas as faces do operando A fora do operando B. Esta opção modifica e exclui as faces do operando A fora da área em interseção com o operando B. Funciona como a opção de interseção, com a exceção de que o 3ds Max não adiciona nenhuma face do operando B. Utilize Remover para excluir áreas específicas da sua geometria.

Implementação de Exibição/Atualização

Exibir grupo

Visualizar o resultado de uma operação booleana pode ser complicado, especialmente se quiser modificá-la ou animá-la. As opções de Exibição na implementação dos parâmetros booleanos ajudam a visualizar como a operação booleana é construída.

Os controles de exibição não têm efeito até que você tenha criado a operação booleana.

  • Resultado Exibe o resultado da operação booleana; isto é, o próprio objeto booleano.
  • Operandos Exibe os operandos em vez do resultado booleano.
    Dica: Quando os operandos são difíceis de visualizar em uma viewport, é possível utilizar a lista de operandos para selecionar um ou outro. Clique no nome do operando A ou B para selecioná-lo.
  • Resultados + Operandos ocultos Exibe os operandos ocultos como estrutura de arame.

    A geometria do operando permanece parte de um objeto composto booleano, ainda que não seja visível ou renderizável. O operando é exibido como uma geometria de estrutura de arame em todas as viewports.

Exibindo os operandos

Exibindo o resultado (A–B)

Exibindo o operando oculto após A–B

Exibindo o operando oculto após B–A

Atualizar grupo

Por padrão, as operações booleanas são atualizadas quando os operandos são alterados. Uma cena que contenha uma ou mais operações booleanas complexas e animadas pode retardar o desempenho. As opções de atualização fornecem métodos alternativos para melhorar o desempenho.

  • Sempre Atualiza as operações booleanas imediatamente ao alterar um operando, incluindo o objeto original de um operando B com instância ou referenciado. Este é o comportamento padrão.
  • Durante a renderização Atualiza as operações booleanas somente ao renderizar a cena ou ao clicar em Atualizar. Com esta opção, as viewports nem sempre mostram a geometria atual, mas é possível forçar uma atualização quando necessário.
  • Manualmente Atualiza as operações booleanas somente ao clicar em Atualizar. Com esta opção, as viewports e a saída de renderização nem sempre mostram a geometria atual, mas é possível forçar uma atualização quando necessário.
Atualizar

Atualiza a operação booleana. O botão Atualizar não fica disponível quando a opção Sempre estiver selecionada.