BR112012007559B1 - Método implementado por computador para visualizar/renderizar um modelo de computador - Google Patents

Método implementado por computador para visualizar/renderizar um modelo de computador Download PDF

Info

Publication number
BR112012007559B1
BR112012007559B1 BR112012007559-4A BR112012007559A BR112012007559B1 BR 112012007559 B1 BR112012007559 B1 BR 112012007559B1 BR 112012007559 A BR112012007559 A BR 112012007559A BR 112012007559 B1 BR112012007559 B1 BR 112012007559B1
Authority
BR
Brazil
Prior art keywords
component
computer
components
connection
zone
Prior art date
Application number
BR112012007559-4A
Other languages
English (en)
Other versions
BR112012007559A2 (pt
Inventor
Tue Jakobsen
Jesper Martin Erstvang
Jakob Sprogoe Jakobsen
Original Assignee
Lego A/S
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lego A/S filed Critical Lego A/S
Publication of BR112012007559A2 publication Critical patent/BR112012007559A2/pt
Publication of BR112012007559B1 publication Critical patent/BR112012007559B1/pt

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/10Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

otimização de geometria dependente de conectividade para renderi-zação em tempo real. a presente invenção refere-se a um método implementado por computador para visualizar/renderizar um modelo de computador, o modelo de computador compreendendo uma pluralidade de componentes, em que o método compreende: armazenar uma plurali-dade de peças de pelo menos um de uma pluralidade de componentes, cada peça in-cluindo informação de geometria para visualizar/renderizar a peça, armazenar informação indicativa de posição e orientação de uma pluralidade de componentes em um sistema de coordenadas, determinar uma relação espacial entre os componentes individuais, determi-nar para o pelo menos um componente um número de peças armazenadas para uso para visualizar/renderizar o componente, baseado na relação espacial determinada entre os componentes individuais. usando a relação espacial entre os componentes para determi-nar o número de peças para uso para visualizar/renderizar um componente, o conheci-mento sobre a geometria de componentes individuais e as conexões dos componentes com outros componentes pode ser usado para encontrar as peças ocultas que podem ser removidas.

Description

Campo da Invenção
[0001] A presente invenção refere-se a um método para visuali- zar/renderizar um modelo de computador. Especificamente, a invenção refere-se a um método de computação eficaz par visuali- zar/renderizar um modelo de computador.
Antecedentes da Invenção
[0002] Gráficos de computador 3D são usados e uma ampla faixa de campos tais como projetos auxiliados por computador (CAD) e jogos de computador. Os gráficos de computador 3D podem ser usados para gerar vistas em perspectiva de modelos 3D. Isto pode ser usado em um processo de projeto como é o caso com CAD ou para fins de entretenimento como é o caso com jogos de computador. Um problema comum voltado para gráficos de computador 3D são os grandes recursos de computação necessários. Este é especificamente um problema para gráficos de computador 3D em tempo real, uma vez que a falta de recursos de computação resultará em uma taxa de quadro diminuída com uma experiência do usuário diminuída.
[0003] A pesquisa intensiva em computação é igualada por um aumento análogo na complexidade dos modelos de computador. Isto é tanto o caso para CAD, onde grandes estruturas são projetadas, bem como jogos de computador, onde um nível de detalhe aumentado resulta em modelos mais complexos. Um grupo comum de objetos para representar com gráficos de computador 3D são os produtos compósitos. Produtos compósitos são os produtos compreendidos de um número de componentes físicos menores.
[0004] Exemplos de produtos compósitos compreendendo um grande número de componentes incluem máquinas grandes, carros, aviões e outros veículos, edifícios, bem como os produtos que são vendidos e transportados desmontados, tais como mobílias, modelos de brinquedo, etc. Um exemplo particular de produtos que são compostos de um grande número de componentes menores inclui conjuntos de construção de brinquedo incluindo uma pluralidade de elementos de construção de brinquedo interconectáveis.
[0005] Existem vários tipos conhecidos de conceitos de modela gem de tais conjuntos de construção de brinquedo. Os conceitos es-pecialmente modulados e semimodulados são muito populares na medida em que eles proveem uma experiência de brincadeira interessante e desafiadora. Tipicamente, estes conceitos proveem um conjunto de elementos de construção pré-fabricados que podem ser interconec- tados um com os outros de alguma forma predeterminada por meio de elementos de conexão ou outros meios de acoplamento dos elementos pré-fabricados. Os elementos de construção pré-fabricados podem assemelhar-se a objetos bem conhecidos adaptados para uma tarefa de modelagem específica. Assim, por exemplo, na construção de um modelo de uma casa, os elementos de construção podem assemelhar- se a tijolos de parede, telhas de telhado, portas e janelas. Uma vantagem de selecionar os elementos de construção deste modo é que o jogo é colocado dentro do sistema e o trabalho envolvido com a construção de um modelo de uma casa é reduzido significativamente comparado a uma situação onde todos os detalhes da casa devem ser definidos cada vez que um novo modelo deve ser feito. No entanto, a liberdade completa na construção de uma casa ou outro objeto é trocada para simplicidade de construção do modelo.
[0006] Por exemplo, os conjuntos de construção de brinquedo, disponíveis sob o nome LEGO, compreendem uma pluralidade de tipos diferentes de elementos de construção interconectáveis tendo pro- trusões e cavidades correspondentes como elementos de conexão. Os elementos de conexão são dispostos de acordo com os padrões de grade regulares, deste modo permitindo uma ampla variedade de in- terconexões entre os elementos de construção.
[0007] Um modo conhecido de reduzir a carga de computação ne cessária para visualizar/renderizar um modelo de computador é a escolha de obstrução. A escolha de obstrução trabalha descobrindo as faces ocultas de uma dada perspectiva de visualização. Algoritmos de escolha de obstrução conhecidos, no entanto, são lentos e precisam ser executados sempre que a visão muda. Isto é especialmente um problema para projeto auxiliado por computador e jogos de computador uma vez que a visão neste aplicativo moda tipicamente frequentemente resultando em uma carga de computação grande causada pelo algoritmo de escolha de obstrução.
[0008] Permanece, assim, um problema visualizar/renderizar pro dutos compósitos de um modo computacionalmente eficaz.
Sumário
[0009] Um primeiro aspecto da invenção refere-se a um método implementado por computador para visualizar/renderizar um modelo de computador, o modelo de computador compreendendo uma pluralidade de componentes em que o método compreende: - armazenar uma pluralidade de peças de pelo menos uma da pluralidade de componentes, cada peça incluindo informação de geometria para visualizar/renderizar a peça, - armazenar a informação indicativa de respectivas posições e orientações de uma pluralidade de componentes em um sistema de coordenadas, - determinar uma relação espacial entre aqueles individuais dos componentes baseados na informação armazenada indicativa das respectivas posições e orientações da pluralidade de componentes, - determinar, para pelo menos um componente e baseado na relação espacial determinada entre os componentes individuais, um número de peças armazenadas a ser usadas para visualizar/renderizar dito componente.
[00010] O modelo de computador pode representar qualquer objeto tal como um produto compósito, por exemplo, um modelo de brinquedo ou, alternativamente, um produto não compósito, por exemplo, um caractere digital. O modelo de computador pode ter quaisquer dimensões tais como bidimensionais ou tridimensionais. O modelo de computador pode ainda ser animado ao longo do tempo. A animação do modelo de computador pode envolver o modelo completo ou os componentes selecionados do modelo. Um componente pode ser qualquer subgrupo do modelo tal como um elemento de construção de brinquedo quando o modelo de computador representa um modelo de brinquedo construído de elementos de construção de brinquedo ou, alternativamente, um grupo de faces de um elemento de construção de brinquedo. Uma peça pode ser qualquer subgrupo de um componente tal como um cilindro saliente sobre um elemento de construção de brinquedo ou, alternativamente, um grupo de faces de um cilindro sali-ente.
[00011] Em uma modalidade, os subgrupos são subgrupos apropriados significando que um componente não pode ser o modelo completo, e uma peça não pode ser o componente completo.
[00012] Em uma modalidade, os subgrupos não são restritos para serem subgrupos apropriados significando que um componente pode ser o modelo completo, e uma peça pode ser o componente completo.
[00013] Uma peça pode compreender a informação de geometria, definindo a geometria da peça. A informação de geometria pode ser armazenada em qualquer formato tal como uma malha poligonal, superfícies NURBS ou superfícies Patch. A peça pode compreender ainda as propriedades do material da peça tais como propriedades de textura, propriedades de reflexão, propriedades de refração, ajustes de transparência e propriedades de sombreamento.
[00014] A informação indicativa da posição e orientação de um componente pode ser a posição e orientação do componente em qualquer informação global ou local de sistemas de coordenadas descrevendo sua posição em uma relação a outro modelo, componente, peça ou semelhante, por exemplo, como descrito em WO04034333.
[00015] O número de peças para uso na visualização/renderização de um componente pode ser qualquer número incluindo os casos especiais quando todas as peças do componente são usadas e quando nenhuma peça é usada.
[00016] O resultado de visualizar/renderizar um modelo de computador pode ser a criação de uma imagem ou uma série de imagens. A(s) imagem(ns) pode(m) ser bidimensionais. A(s) imagem(ns) po- de(m) ser mostradas diretamente em uma tele e/ou salvadas em um arquivo digital.
[00017] Subdividindo os componentes em uma pluralidade de peças e usando a relação espacial entre os componentes para determinar o número de peças a usar para visualizar/renderizar um componente, o conhecimento sobre a geometria de componentes individuais e as conexões dos componentes com outros componentes podem ser usadas para encontrar as peças ocultas que podem ser removidas sem ter impacto visual sobre o modelo.
[00018] Isto torna possível encontrar peças ocultas sem usar algoritmos de rastreamento de raios computacionalmente complexos, deste modo tornando o método apropriado para uso em tempo real. Usando a relação espacial entre os componentes individuais e não a relação espacial entre a câmera virtual e os componentes como é o caso em algoritmos de escolha de obstrução padrão, uma otimização independente da visão é obtida. Isto salva os recursos de computação quando o mé- todo precisa somente ser reexecutado quando mudanças estruturais ocorrem no modelo compósito, por exemplo, um novo componente é adicionado ou um componente existente é removido. Mesmo quando a mudança estrutural ocorre, o método precisa somente ser reexecutado nos componentes que estão na proximidade da mudança. Isto salva os recursos de comutação para otimização subsequente.
[00019] Dividindo os componentes em peças e armazenando as peças antes de realizar a otimização, quaisquer recursos de computação necessários para dividir os componentes na etapa de otimização são salvos. A subdivisão dos componentes pode ser realizada usando um procedimento automático ou, alternativamente, manualmente. Quando a subdivisão é realizada manualmente, uma habilidade humana pode ser usada para fazer a subdivisão usando o conhecimento sobre a geometria e/ou conexões dos componentes, deste modo possibilitando uma otimização eficaz.
[00020] Um segundo aspecto da invenção refere-se a um programa de computador, em que o programa de computador compreende código de programa de computador executável adaptado para fazer com que um sistema de processamento de dados realize: pelo menos uma etapa do projeto compreendendo - prover uma ferramenta de construção implementada por computador para permitir que um usuário selecione uma respectiva representação digital de uma pluralidade de componentes de um repositório de componentes, onde cada componente é compreendido de uma pluralidade de peças, e dispor os componentes selecionados em uma relação espacial um com os outros de modo a gerar uma representação digital de um produto compósito, e outra etapa de processamento compreendendo - gerar uma visualização/renderização de pelo menos uma porção do produto compósito em que a geração compreende: - armazenar uma pluralidade de peças de pelo menos um da pluralidade de componentes, cada peça incluindo informação de geometria para visualizar/renderizar a peça, - armazenar informação indicativa da posição e orientação de uma pluralidade de componentes em um sistema de coordenadas, - determinar uma relação espacial entre aqueles individuais dos componentes baseada na informação armazenada indicativa da posição e orientação da pluralidade de componentes, - determinar para pelo menos um componente um número de peças armazenadas para uso na visualização/renderização de dito componente, baseado na relação espacial determinada entre os com-ponentes individuais.
[00021] Em uma modalidade, o programa de computador é um programa de computador de brinquedo para crianças.
[00022] A ferramenta de construção implementada por computador pode ser uma interface de usuário gráfica.
[00023] A tarefa de criar modelos digitais pode ser muito desafiadora. Os limites físicos normais que existem no mundo real a priori não estão presentes em um ambiente digital. As possibilidades infinitas tornam possível criar qualquer modelo, no entanto, torna a etapa de projeto muito desafiadora. Uma habilidade chave para qualquer modelador digital é usar a quantidade certa de detalhe nos pontos certos no modelo. Isto significa que além de ter que focalizar sobre a forma do modelo digital, um projetista digital também precisa estar Focalizado na estrutura subjacente do modelo, por exemplo, na quantidade de vértices usados em vários lugares. Isto é importante porque a tarefa de modelagem é um processo interativo envolvendo tipicamente a visuali- zação/renderização do modelo em tempo real contínua, permitindo ao projetista digital inspecionar visualmente o modelo enquanto ele está sendo projetado. Se o modelo tornar-se desnecessariamente comple- xo, a taxa de quadro da renderização do modelo em tempo real diminuirá tornando o outro processo de projeto problemático.
[00024] Quando um usuário desse sistema é uma criança, torna-se importante simplificar o projeto do projeto tanto quanto possível. Ao fornecer à criança uma ferramenta de construção digital compreendendo um repositório de componentes e ainda simplificando automaticamente o modelo construído usando a relação espacial entre os componentes, a complexidade do processo do projeto é grandemente reduzida. Isto permitirá à criança focalizar exclusivamente sobre a tarefa de modelagem sem ter que se preocupar sobre aplicar a quantidade certa de complexidade nos pontos certos do modelo. Isto permitirá às crianças criar modelos de muito mais interessantes, aumentando o valor do jogo do programa de computador do brinquedo, bem como permitindo às crianças mais jovens usar o programa de brinquedo.
[00025] Em uma modalidade, pelo menos um componente tem associado a ele pelo menos uma zona de conexão predeterminada, em que dita zona de conexão é indicativa de uma porção do componente que pode ser conectada às zonas de conexão em componentes similares.
[00026] A zona de conexão pode ser qualquer zona predefinida em uma proximidade do componente. Em uma modalidade, a zona de conexão é posicionada sobre a superfície do componente. A zona de conexão pode corresponder a ou ser definida por uma ou mais peças do componente, por exemplo, uma porção da superfície. A zona de conexão pode ter qualquer forma tal como um plano ou uma seção de uma superfície plana ou redonda ou curvada. A posição da zona de conexão pode ser definida em um sistema de coordenada global ou em relação ao componente. Um componente pode compreender qualquer número de zonas de conexão. Múltiplos tipos de zonas de conexão podem existir. Uma zona de conexão pode ser compatível com um número predeterminado de tipos de zonas de conexão, por exemplo, uma zona de conexão de um componente representando um elemento de construção de brinquedo, ligado ao topo do componente, pode ser somente compatível com as zonas de conexão ligadas aos fundos dos componentes representando elementos de construção de brinquedo. Em algumas modalidades, a informação indicativa da compatibilidade dos respectivos tipos de zonas de conexão pode ser armazenada em uma estrutura de dados apropriada, por exemplo, uma tabela, isto é, a informação indicativa de se os respectivos tipos de zonas de conexão são conectáveis uns com os outros. Por exemplo, a informação pode ser indicativa, para cada tipo determinado de zona de conexão, de que tipos de zonas de conexão são conectáveis com o dito determinado tipo de zona de conexão. Em uma modalidade, a estrutura de dados pode indicar para cada par de tipos de zonas de conexão se o par de tipos de zonas de conexão se compatível, incompatível ou indiferente. Quando um par de zonas de conexão é compatível, elas podem prover uma conexão entre dois componentes. Quando um par de zonas de conexão é incompatível, elas previnem o posicionamento de dois componentes próximos um do outro. Quando um par de zonas de conexão é indiferente, elas permitem o posicionamento de dois componentes próximos um do outro, sem prover atualmente uma conexão entre os componentes.
[00027] Ao prover os componentes com zonas de conexão predefi- nidas, a função de criar modelos a partir dos componentes é simplificada. Isto abaixa os custos de produção de modelos em desenvolvimento se os modelos são usados para CAD, jogos de computador ou outros aplicativos.
[00028] Em uma modalidade da invenção, a etapa de determinar uma relação espacial entre componentes individuais compreende a etapa de determinar a relação espacial de zonas de conexão dos componentes individuais.
[00029] Em uma modalidade da invenção, a etapa de determinar a relação espacial entre zonas de conexão individuais compreende a etapa de determinar uma distância entre duas zonas de conexão.
[00030] A distância pode ser qualquer distância de norma tal como uma distância euclidiana de norma 2. A distância pode ser uma distância entre dois pontos das zonas de conexão ou uma pluralidade de pontos nas zonas de conexão. Em uma modalidade, a distância é definida como a distância mais próxima entre duas zonas de conexão. Em uma modalidade, o processo determina duas zonas de conexão como estando conectadas quando sua distância está dentro de uma faixa predefinida.
[00031] A determinação da relação espacial entre duas zonas de conexão examinando sua distância é um método eficaz e de computação simples. Isto diminuirá a necessidade de recursos de computação pelo método, deste modo diminuindo o número total de computações necessárias para visualizar/renderizar um modelo.
[00032] Em uma modalidade, cada zona de conexão tem uma orientação associada com ela, e a etapa de determinar a relação espacial entre as zonas de conexão individuais compreende a etapa de determinar a orientação de uma zona de conexão com relação à outra.
[00033] Em uma modalidade, o processo determina duas zonas de conexão como estando conectadas quando elas têm uma orientação com relação uma à outra predeterminada, por exemplo, quando as zonas de conexão estão paralelas ou na proximidade de estarem paralelas uma à outra. A relação espacial entre as zonas de conexão pode ser determinada por uma combinação de uma distância entre as zonas de conexão e sua orientação relativa.
[00034] Duas zonas de conexão podem ser posicionadas próximas uma da outra sem estarem alinhadas, no entanto, usando adicional- mente a orientação relativa entre as zonas de conexão para determinar sua relação espacial uma determinação mais precisa pode ser obtida.
[00035] Em algumas modalidades, o processo determina duas zonas de conexão como estando conectadas quando elas estão posicionadas em uma proximidade predeterminada uma à outra, e quando sua respectiva orientação e tipos são compatíveis uns com os outros.
[00036] Em algumas modalidades, o processo determina uma primeira peça como para não ser usada para visualizar/renderizar um componente somente se o componente tem uma ou mais zonas de conexão associadas com dita primeira peça, cuja(s) zona(s) de conexão está/estão conectada(s) a outra zona de conexão de outro componente.
[00037] Otimizando somente os componentes que estão atualmente conectados, a reotimização pode ser impedida quando os componentes não conectados são movidos com relação uns aos outros durante a animação. Isto diminuirá a necessidade de reotimização, resultando assim em uma diminuição correspondente dos recursos de computação necessários para a otimização, como o caso em que os elementos de construção de brinquedo conectados são movidos com relação uns aos outros é muito menos provável do que para elementos de construção de brinquedo não conectados.
[00038] Em modalidades alternativas, o processo também determina uma primeira peça como para não ser usada para visuali- zar/renderizar um componente quando uma zona de conexão associada com a primeira peça está em uma proximidade predeterminada e/ou orientação relativa a uma zona de conexão de outro componente, sem as conexões atualmente fornecendo uma conexão entre os componentes, por exemplo, porque os tipos das duas zonas de conexão são indiferentes com respeito um ao outro.
[00039] Também a otimização dos componentes que não estão conectados, mais peças dos componentes podem ser otimizadas. Isto diminuirá os recursos de computação necessários para visuali- zar/renderizar o modelo de computador, especialmente quando os componentes do modelo são estacionários.
[00040] Em uma modalidade, a determinando da relação espacial compreende determinar se as zonas de conexão dos respectivos componentes têm um tipo compatível que forneça/permite uma conexão.
[00041] Em uma modalidade, a etapa de determinação para que o pelo menos um componente, um número de peças para uso na visua- lização/renderização de dito componente, menos peças são usadas quando pelo menos uma zona(s) de conexão de dito componente está conectada.
[00042] Em uma modalidade, o processo determina uma primeira peça como para não ser usada para visualizar/renderizar um componente quando pelo menos uma porção predeterminada da área de superfície da peça está coberta com uma ou mais peças quando visualizada a partir de qualquer direção externa da caixa de confinamento de dito modelo de computador. A percentagem predefinida pode ser qualquer percentagem. Preferivelmente, é 40$, mais preferivelmente é 70%, ainda mais preferivelmente é 90%. A caixa de confinamento é a menor caixa que pode compreender o modelo completo. Não usando as peças que estão cobertas com uma percentagem predefinida para visualizar/renderizar um determinado componente, qualquer impacto visual sobre o modelo da otimização pode ser limitado. Isto ainda provê um sistema flexível onde a comercialização entre o impacto visual e a complexidade de computação podem ser controlados. Em um dado aplicativo, tais como gráficos de computador em tempo real, pode ser útil priorizar um número baixo de computações, resultando em uma alta taxa de quadro, sobre a precisão visual do modelo, enquanto a precisão visual em outros aplicativos pode ser mais importante do que o número de computações.
[00043] Em uma modalidade da invenção, a etapa de determinação para o pelo menos um componente, um número de peças para uso na visualização/renderização de dito componente compreende ainda a etapa de determinar as propriedades de material de um componente, e baseada tanto na relação espacial determinada como nas propriedades de material, determinar um número de peças para usar a visuali- zar/renderizar dito componente.
[00044] Em uma modalidade, a etapa de determinar as propriedades de material compreende a etapa de determinar os ajustes de transparência para um componente. Os ajustes de transparência podem ser quaisquer ajustes referentes à transparência do componente o uma peça do componente. A transparência pode envolver o fenômeno de refração. As peças de um componente de um modelo que normalmente poderia estar ocultas podem ser visíveis se o componente ou outros componentes conectados ao componente é transparente. Usando tanto a relação espacial determinada como as propriedades de material, uma determinação mais precisa das peças ocultas pode ser obtida.
[00045] Em algumas modalidades, o modelo de computador representa um produto compósito. Em algumas modalidades, o modelo de computador representa um modelo de brinquedo construído a partir dos elementos de construção de brinquedo, onde cada componente do modelo de computador corresponde a um elemento de construção de brinquedo. Em algumas modalidades, os elementos de construção de brinquedo têm meios de conexão para conectar os mesmos com outros elementos de construção de brinquedo similares. Os meios de conexão podem ter qualquer forma tal como redonda, ou retangular.
[00046] Em uma modalidade, um primeiro componente compreende uma primeira zona de obstrução de um tipo predeterminado e um segundo componente compreende uma segunda zona de exclusão de um tipo predeterminado, em que a relação espacial entre a primeira e a segunda zona de exclusão é usada para determinar uma porção do primeiro componente obstruído pelo segundo componente.
[00047] As zonas de obstrução podem ter uma forma similar ou mesmo idêntica a uma peça de um componente. Por exemplo, a zona de obstrução pode ser definida como uma peça da superfície de dita peça do componente. A zona de obstrução pode ser ligada a uma peça específica ou número de peças do componente. A(s) peça(s) liga- da(s) a uma zona de obstrução pode(m) ser determinada(s) como estando obstruídas quando a zona de obstrução ligada à peça é obstruída. A relação espacial entre a primeira e a segunda zona de obstrução pode ser determinada pela relação espacial entre a(s) zona(s) de conexão do primeiro componente e a(s) zona(s) de conexão do segundo componente. O tipo de zona de obstrução pode estar relacionado à sua forma. A zona de obstrução pode ter qualquer forma tal como uma forma redonda ou retangular. O tipo de zona de obstrução pode ainda referir-se a um tamanho da zona de obstrução. O tipo de zona de obstrução pode determinar como um componente obstrui o outro, por exemplo, uma zona de obstrução redonda pode obstruir outra zona de obstrução redonda, mas não uma zona de obstrução quadrada, uma zona de obstrução quadrada pode obstruir tanto uma zona de obstru-ção redonda como quadrada.
[00048] As zonas de conexão podem determinar como um componente pode ser conectado a outros componentes enquanto as zonas de obstrução podem determinar como um componente obstrui outro componente. Dois componentes podem ser conectados sem obstruir um ao outro e dois componentes podem obstruir um ao outro sem es- tarem conectados.
[00049] Um componente e/ou uma ou mais peças de um componente pode ter uma ou mais zonas de obstrução e/ou uma ou mais zonas de conexão associadas com o mesmo. Em uma modalidade, uma zona de conexão também pode funcionar como uma zona de obstrução.
[00050] Ao atribuir as zonas de obstrução aos componentes, o método é capaz de encontrar facilmente as peças ocultas no modelo de computador. Uma peça oculta pode ser encontrada examinando a relação espacial entre duas zonas de conexão de dois componentes. Se duas zonas de conexão associadas com os respectivos componentes são encontradas, o processo pode determinar uma ou peças obstruídas baseado nas respectivas zonas de obstrução associadas com as respectivas peças, por exemplo, baseada em regras lógicas relativas aos respectivos tipos de zonas de obstrução associadas, por exemplo, uma zona quadrada cobre uma zona redonda, etc. Portanto, cada peça pode ter uma ou mais zonas de conexão e uma ou mais zonas de obstrução associadas com a mesma.
[00051] Em uma modalidade, uma pluralidade de zonas de obstrução é ligada a uma peça única.
[00052] Em uma modalidade, uma peça somente está obstruída se todas as zonas de obstrução ligadas à peça estiverem obstruídas.
[00053] Em uma modalidade, um modelo de computador pode ser animado independentemente de outros modelos de computador, um componente de um modelo de computador pode ser animado independentemente de outros componentes do modelo de computador e uma peça de um componente não pode ser animada independentemente de outras peças do componente.
[00054] Em uma modalidade, uma primeira peça e uma segunda peça representam uma seção comum de um componente, em que a primeira peça tem um nível mais alto de detalhe do que a segunda peça e em que a etapa de determinar um número de peças armazenadas para uso na visualização/renderização de dito componente compreende ainda selecionar no máximo uma da primeira e da segunda peça para usar na visualização/renderização de dito componente.
[00055] Tendo uma pluralidade de peças representando uma porção comum de um componente, as peças que em uma determinada situação estão somente parcialmente ocultas podem ainda ser otimizadas. Isto resultará em uma otimização mais eficaz e tornará mais fácil a função de dividir os componentes em peças.
[00056] Os diferentes aspectos da presente invenção podem ser implementados de modos diferentes incluindo o método implementado por computador, um sistema de processamento de dados e programas de computador de brinquedo descritos acima e a seguir e ainda meios de produto, cada um dando um ou mais dos benefícios e vantagens descritos em conexão com pelo menos um dos aspectos descritos acima, e cada um tendo uma ou mais modalidades preferidas correspondendo às modalidades preferidas descritas em conexão com pelo menos um dos aspectos descritos acima e/ou divulgados nas reivindicações dependentes. Além disso, será bem apreciado que as modalidades descritas em conexão com um dos aspectos descritos no presente documento podem ser igualmente aplicadas a outros aspectos.
[00057] Em uma modalidade, as peças são predefinida.
[00058] Em uma modalidade, cada peça compreende uma pluralidade e faces, onde uma face é definida como um plano dado por três vértices.
[00059] Em uma modalidade, a escolha de obstrução é usada em combinação com o método divulgado.
[00060] Em uma modalidade, um componente representa um componente físico de um produto compósito, tal como um componente fí- sico do produto compósito que não pode ser não destrutivamente ainda decomposto em componentes menores, por exemplo, um parafuso em um avião ou um elemento de construção de brinquedo em um modelo de brinquedo construído a partir de elementos de construção de brinquedo de um sistema de construção de brinquedo.
Breve Descrição dos Desenhos
[00061] Os objetivos, características e vantagens acima e/ou adicionais da presente invenção serão mais bem elucidados pela seguinte descrição detalhada ilustrativa e não limitante de modalidades da presente invenção, com referência aos desenhos anexos, em que:
[00062] As figuras 1a-c mostram um exemplo de uma forma de otimização da técnica anterior.
[00063] A figura 2a mostra um exemplo de um modelo de computador compreendendo um número de componentes.
[00064] A figura 2b mostra um exemplo de um componente de um modelo de computador compreendendo um número de peças.
[00065] A figura 2c mostra um exemplo de um número de peças de um componente de um modelo de computador, de acordo com uma modalidade da invenção.
[00066] A figura 3 mostra um exemplo de um número de peças de um componente de um modelo de computador, de acordo com uma modalidade da invenção.
[00067] A figura 4a mostra um modelo de computador compreen dendo um número de componentes antes da otimização.
[00068] A figura 4b mostra um modelo de computador compreen dendo um número de componentes após otimização.
[00069] A figura 5a mostra um modelo de computador compreen dendo um número de componentes antes da otimização.
[00070] A figura 5b mostra um modelo de computador compreen dendo um número de componentes após otimização.
[00071] A figura 6a mostra um modelo de computador compreen dendo um número de componentes antes da otimização.
[00072] A figura 6b mostra um modelo de computador compreen dendo um número de componentes após otimização.
[00073] A figura 7a mostra as zonas de conexão definidas em relação a um componente.
[00074] A figura 7b mostra a compatibilidade das zonas de conexão.
[00075] A figura 8a mostra as zonas de conexão definidas em relação a um componente.
[00076] A figura 8b mostra a compatibilidade das zonas de conexão definidas em relação a um componente.
[00077] A figura 9a mostra um exemplo de um modelo de computador compreendendo um número de componentes.
[00078] A figura 9b mostra um exemplo de um número de peças de um componente de um modelo de computador, de acordo com uma modalidade da invenção.
[00079] A figura 9c mostra um exemplo de um número de peças de um componente de um modelo de computador, de acordo com uma modalidade da invenção.
[00080] A figura 10a mostra um modelo de computador compreendendo um número de componentes antes da otimização.
[00081] A figura 10b mostra um modelo de computador compreendendo um número de componentes após otimização.
[00082] A figura 11a mostra um modelo de computador compreendendo um número de componentes antes da otimização.
[00083] A figura 11b mostra um modelo de computador compreendendo um número de componentes após otimização.
[00084] A figura 12 mostra um fluxograma de um método para visu- alizar/renderizar um modelo de computador de acordo com uma moda- lidade da invenção.
[00085] A figura 13 mostra um exemplo de um número de peças de um componente de um modelo de computador, de acordo com uma modalidade da invenção.
[00086] A figura 14 mostra um exemplo de um número de peças de um componente de um modelo de computador, de acordo com uma modalidade da invenção.
[00087] As figuras 15a-f mostram exemplos de componentes, peças e zonas de obstrução de acordo com uma modalidade da invenção.
[00088] A figura 16 mostra um exemplo de otimização de modelo de computador de acordo com uma modalidade da invenção.
[00089] A figura 17 mostra um exemplo de otimização de modelo de computador de acordo com uma modalidade da invenção.
[00090] A figura 18 mostra um exemplo de um número de peças de um componente de um modelo de computador, de acordo com uma modalidade da invenção.
[00091] A figura 19 mostra um exemplo de otimização de modelo de computador de acordo com uma modalidade da invenção.
[00092] A figura 20 mostra um fluxograma de um método para visu- alizar/renderizar um modelo de computador de acordo com uma modalidade da invenção.
[00093] A figura 21 mostra um exemplo de uma estrutura de dados de acordo com uma modalidade da invenção.
[00094] A figura 22 mostra uma vista esquemática de um exemplo de um sistema de computador.
[00095] As figuras 23a-b mostram exemplos de peças e de zonas de obstrução de acordo com uma modalidade da invenção.
[00096] A figura 23c mostra um exemplo de uma otimização de modelo de computador de acordo com uma modalidade da invenção.
[00097] A figura 24 mostra uma interface de usuário gráfica de uma ferramenta de construção implementada por computador de acordo com uma modalidade da invenção.
Descrição Detalhada
[00098] Na seguinte descrição, referência é feita às figuras anexas, que mostram por meio de ilustração como a invenção pode ser praticada.
[00099] As figuras 1a-c mostram um exemplo da forma de otimização, escolha de obstrução da técnica anterior. A idéia básica de escolha de obstrução é examinar a relação espacial entre uma câmera e uma cena para descobrir superfícies ocultas que podem ser deixadas fora no processo de visualização/renderização. A figura 1a mostra uma vista de topo de uma cena 3D compreendendo duas câmeras virtuais 102, 103, uma caixa grande 104, 105, 106, 107 e uma caixa pequena 108, 109, 110, 111. A figura 1b mostra a imagem gerada pela câmera virtual 102. Somente duas superfícies 104, 106 da caixa grande podem ser vistas, todas as superfícies restantes estão ocultas. O uso de métodos de rastreamento de raios, os algoritmos de escolha de obstrução podem encontrar estas faces ocultas e removê-las. Isto, no entanto, é um processo de demanda altamente computacionalmente. A figura 1c mostra a imagem gerada a partir da câmera 103. Devido à troca em perspectiva, a caixa pequena previamente sombreada pela caixa grande pode agora ser vista. Isto ilustra uma limitação dos métodos de escolha de obstrução. Existem visões altamente dependentes. Isto torna a escolha de obstrução menos utilizável ara aplicativos onde a perspectiva de visualização muda frequentemente.
[000100] A figura 2a mostra um exemplo de um modelo de computador 201 de acordo com uma modalidade da presente invenção. Neste exemplo, o modelo de computador 201 representa um modelo de brinquedo construído a partir de elementos de construção de um sistema de construção de brinquedo. O modelo de computador é construído a partir de seis componentes iguais 202; no entanto, em outras modalidades, o número e tipo de componentes podem diferir. Os seis componentes são posicionados no topo um do outro criando um modelo triangular. A figura 2b mostra um exemplo de um componente 202 de um modelo de computador 201 de acordo com uma modalidade da presente invenção. O componente 202 representa um elemento de construção de brinquedo. O elemento de construção de brinquedo 202 compreende seis lados retangulares 215, 216, 217, 218, 219, 220, e oito cilindros salientando-se a partir do topo 207, 208, 109, 110, 112, 113, 114. A figura 1c mostra um exemplo de um número de peças de um componente de acordo com uma modalidade da presente invenção. Oito cilindros 107, 108, 109, 110, 111, 112, 113, 114 e seis retân-gulos são mostrados 215, 216, 217, 218, 219, 220. A tabela 1 mostra as possíveis contagens de face para as diferentes peças. TABELA 1
Figure img0001
[000101] A figura 3 mostra um número de peças de um componente de acordo com uma modalidade da presente invenção. O componente neste exemplo é o elemento de construção de brinquedo mostrado na figura 2b. Um cilindro 301 e três retângulos 302, 303, 304 são mostrados. Neste exemplo, somente as peças únicas são salvas.
[000102] A figura 7a mostra exemplos de zonas de conexão associadas com o componente, de acordo com uma modalidade da presente invenção. As zonas de conexão determinam como o componente pode ser conectado a outros componentes. Neste exemplo, seis zonas de conexão são associadas com o computador, no entanto, qualquer número de zonas de conexão pode ser definido. Uma zona de conexão do tipo A é associada com a frente e a traseira do componente, uma zona de conexão do tipo B é associada com o lado esquerdo e direito do componente, uma zona de conexão do tipo C é associada com o topo do componente e uma zona de conexão do tipo D é associada com o fundo do componente. Os diferentes tipos de zonas de conexão são seletivamente compatíveis com outros tipos de zonas de conexão. A figura 7b mostra um exemplo de uma tabela de compatibilidade das zonas de conexão definidas na figura 7a. A zona de conexão A é compatível com as zonas de conexão A, B e D, a zona de conexão B é compatível com a zona de conexão D, e a zona de conexão D é compatível com as zonas de conexão A, B, C e D. As zonas de conexão podem ser usadas para determinar a relação espacial entre componentes diferentes.
[000103] A figura 8 mostra outro exemplo de zona de conexão de um componente de acordo com uma modalidade da presente invenção. Neste exemplo, as zonas de conexão somente são definidas onde os elementos de construção de brinquedo representados pelos componentes podem ser conectados uns com os outros por um ajuste de atrito ou outra conexão física. A figura 8b mostra a compatibilidade das zonas de conexão. A figura 8c mostra um exemplo de zonas de conexão associadas com um componente. Neste exemplo, um número de zonas de conexão é colocado lado a lado no topo e fundo do componente. A figura 8d mostra um exemplo de uma zona de conexão redonda. A figura mostra um componente representando um aro 801. O aro 801 tem uma zona de conexão redonda única 802 associada. A figura 8e mostra um modelo de computador 804 compreendido de dois componentes, um aro 801 e um pneu 803, conectados ao aro 801.
[000104] A figura 4 mostra uma modalidade da presente invenção usada para otimizar um modelo de computador de um modelo de brinquedo. A figura 4a mostra o modelo de brinquedo antes da otimização e a figura 4b mostra o modelo de brinquedo após a otimização. O modelo de brinquedo é construído a partir de três tijolos de construção de brinquedo 401, 402, 403 posicionados lado a lado. Nesta modalidade, cada tijolo de brinquedo representa um componente físico do modelo; no entanto, em outras modalidades, os componentes podem ser definidos de outros modos, por exemplo, um primeiro componente pode ser definido como os dois tijolos de construção de brinquedo 401, 402 e um segundo componente pode ser definido como o tijolo de construção de brinquedo 403 ou um primeiro componente pode ser definido como um primeiro grupo de faces do tijolo de construção de brinquedo 401 e um segundo componente pode ser definido como um segundo grupo de faces do tijolo de construção de brinquedo 401. Neste exemplo, cada componente 401, 402, 403 é composto das peças mostradas na figura 1c, com o número de face mostrado na tabela 1. Para cada um dos componentes 401, 402, 403 um conjunto de seis zonas de co-nexão é associado como mostrado nas figuras 7a-b. Antes da etapa de otimização, cada um dos componentes 401, 402, 403 compreende 1546 faces, resultando em 4644 faces para todo o modelo. Para otimizar o modelo, a relação espacial entre os componentes 401, 402, 403 é determinada. Isto pode ser obtido usando as zonas de conexão dos componentes. Uma primeira etapa pode ser determinar se quaisquer zonas de conexão estão em uma proximidade predeterminada de outras zonas de conexão e/ou estão em uma faixa predeterminada de outras orientações relativas. Neste exemplo, duas zona de conexão do tipo B dos componentes 401 e 402 e duas zonas de conexão do tipo B dos componentes 402 e 403 estão em contato. A partir da tabela na figura 7b pode ser visto que uma zona de conexão do tipo B é compa- tível com ela mesma. Em seguida, o tipo de conexão entre as zonas de conexão é determinado. Usando a relação espacial determinada entre os componentes 401, 402, 403 um número de peças de cada um dos componentes é escolhido. Neste exemplo, a peça 218 pode ser deixada fora quando representando o componente 401, as peças 216, 218 podem ser deixadas fora quando representando o componente 402 e a peça 216 pode ser deixada quando representando o componente 403. O modelo completo pode, portanto, ser representado com 4636 faces após a otimização comparado às 4644 faces antes da otimização. A tabela 2 mostra a face para o modelo antes e depois da otimização. TABELA 2
Figure img0002
[000105] A figura 5 mostra uma modalidade da presente invenção usada para reotimizar um modelo após uma mudança estrutural. O modelo 510 é o modelo mostrado na figura 4 411 com a adição de dois componentes 504, 505 do mesmo tipo como os componentes 501, 502, 503. Os dois componentes 504, 504 são posicionados no topo dos três componentes subjacentes 501, 502, 503. Para determinar a relação espacial entre os componentes, a relação espacial entre as zonas de conexão é examinada. O exame das relações espaciais entre os três componentes originais 501, 502, 503 podem ser ignorados desde que eles já tenham sido otimizados. O componente 504 tem uma zona de conexão tipo D e contato com duas zonas de conexão do tipo C dos componentes 501, 502, e uma zona de conexão do tipo B em contato com uma zona de conexão do tipo B do componente 505. A partir da tabela na figura 7b pode ser visto que a zona de conexão do tipo D é compatível com uma zona de conexão do tipo C e um tipo B é compatível com um tipo B. Neste exemplo, uma conexão parcial existe entre os componentes 504, 501 e 504, 502 e uma conexão total existe entre os componentes 504, 505. O componente 505 tem uma zona de conexão do tipo D em contato com duas zonas de conexão do tipo C dos componentes 502, 503 e uma zona de conexão do tipo B em contato com uma zona de conexão do tipo B do componente 504. A partir da tabela na figura 7b pode ser visto que uma zona de conexão do tipo D é compatível com uma zona de conexão do tipo C. Novamente, uma conexão parcial existe entre ambos os componentes 505, 502 e 505, 503. Usando a relação espacial determinada entre os componentes um número de peças para cada componente pode ser escolhido para representar o componente. Para o componente 501, são usadas as peças 207, 208, 211, 212, 215, 216, 217, 219, 220, para o componente 502, são usadas as peças 215, 219, 220, para o componente 503, são usadas as peças 209, 210, 213, 214, 215, 218, 219, 220, para o componente 504, são usadas as peças 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219, e para o componente 505, são usadas as peças 207, 208, 209, 210, 211, 212, 213, 214, 215, 217, 218, 219. Deve ser notado que a peça 209 ainda é usada para representar o componente 503 ainda que a peça não esteja visível na figura 5b. Isto é porque a peça não está oculta como um resultado da relação espacial entre os componentes do modelo, mas a relação espacial entre o modelo e a câmera virtual. O modelo todo pode ser representado usando 4650 faces comparadas às 7740 antes da otimização, correspondendo a 39,9% de redução no número de faces. A tabela 3 mostra as contagens de faces para o modelo antes e após a otimização. TABELA 3
Figure img0003
[000106] A figura 6 mostra outro exemplo de reotimização de um modelo onde uma mudança estrutural ocorreu de acordo com uma modalidade da presente invenção. O modelo 611 é o modelo 511 da figura 5 com a adição de outro componente do mesmo tipo como os componentes 601, 602, 603, 604, 605. O componente 606 está posicionado no topo dos componentes 604, 605. Para determinar a relação espacial entre os componentes, a relação espacial entre as zonas de conexão é examinada. O exame das relações entre as zonas de conexão dos cinco componentes originais 601, 602, 603, 604, 605 pode ser ignorado na medida em que eles já foram otimizados. O componente 606 tem uma zona de conexão do tipo D em contato com duas zonas de conexão do tipo C dos componentes 604, 605. A partir da tabela na figura 7b pode ser visto que a zona de conexão do tipo D é compatível com uma zona de conexão do tipo C. Uma conexão parcial entre ambos os componentes 606, 604 e 606, 605. Usando a relação espacial determinada entre os componentes, um número de peças para cada componente pode ser escolhido para representar o componente. Para o componente 601, são usadas as peças 207, 208, 211, 212, 215, 216, 217, 219, 220, para o componente 602, são usadas as peças 215, 219, 220, para o componente 603, são usadas as peças 209, 210, 213, 214, 215, 218, 219, 220, para o componente 604, são usadas as peças 207, 208, 211, 212, 215, 216, 217, 219, para o componente 605, são usadas as peças 209, 210, 213, 214, 215, 217, 218, 219 e para o componente 606, são usadas as peças 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219. Como no caso no último exemplo, deve ser notado que a peça 209 ainda é usada para representar ambos os componentes 603 e 605 ainda que a peça não esteja visível na figura 6b. O modelo todo pode ser representado usando 4660 faces comparadas 9288 antes da otimização, correspondendo a 49,8% de redução no número de faces. A tabela 4 mostra as contagens de faces para o modelo antes e depois da otimização. TABELA 4
Figure img0004
[000107] Pode ser visto a partir dos exemplos que o método torna-se mais eficaz para os modelos complexos. Isto é um efeito altamente útil como para os modelos complexos a otimização é especialmente importante.
[000108] A figura 9a mostra outro exemplo de um modelo de computador 1001, de acordo com uma modalidade da invenção. O modelo de computador 1001 representa um marcador. O computador 1001 compreende dois componentes 901 correspondendo à cobertura do marcador e 902 correspondendo ao corpo do marcador. A figura 9b mostra um modo possível para dividir o corpo do marcador 902 em peças. A ponta do corpo do marcador é dividida em 5 peças 903, 904, 905, 906, 907 e a porção de retenção do corpo do marcador 908 é representada usando uma peça 908 única. A figura 9c mostra um exemplo de como a cobertura do marcador 901 pode ser dividida em peças. A peça externa da cobertura é representada por uma peça 909 e a porção interna da cobertura é representada por uma peça 910.
[000109] A figura 10 mostra um exemplo de como uma modalidade do método da presente invenção pode ser usada para otimizar o modelo de computador mostrado na figura 9. Examinando a relação espacial entre os dois componentes 1002 e 1003, o método é capaz de determinar que as peças 903, 904, 905, 906, 907, 910 estão ocultas a partir de todas as perspectivas. Isto pode ser obtido examinando as zonas de obstrução e/ou as zonas de conexão dos componentes 1002, 1003. As peças podem, portanto, ser deixadas fora como mostrado na figura 10b mostrando o modelo de computador após otimização.
[000110] A figura 11 mostra outro exemplo de como uma modalidade do método da presente invenção pode ser usada para otimizar o modelo de computador descrito em relação à figura 9. Examinando a relação espacial entre os dois componentes 1002 e 1003, o método é capaz de determinar que nenhuma peça está oculta a partir de todos as perspectivas. Como um resultado, nenhuma peça é, portanto, deixada fora, e o modelo de computador após a otimização mostrada na figura 11b é igual ao modelo de computador mostrado na figura 11a antes da otimização.
[000111] A figura 12 mostra um fluxograma de um método para visu- alizar/renderizar um modelo de computador de acordo com uma modalidade da presente invenção. O modelo de computador é definido para ser composto de um número de componentes e cada componente é definido para ser composto de um número de peças. As modalidades do método da presente invenção escolhem seletivamente um número de peças para cada um dos componentes a ser usado para visuali- zar/renderizar o modelo. Na primeira etapa do método 1201 um número de peças de um componente é armazenado. Isto significa que o modo como um componente pode ser otimizado é determinado por como o componente é dividido em peças. Na próxima etapa 1202, a posição e a orientação dos componentes são armazenadas. A posição pode ser armazenada em qualquer sistema de coordenadas. Em seguida, a posição armazenada dos componentes é usada para determinar a relação espacial na etapa 1203 entre os componentes. A relação espacial pode ser determinada examinando as zonas de conexão dos componentes, onde a determinação da relação espacial pode incluir a determinação de uma propriedade de conectividade dos componentes, por exemplo, determinar as zonas de conexão de um componente que estão conectadas a uma zona de conexão compatível do outro componente. WO2204034333 divulga um método para determinar a relação espacial entre os componentes. A relação espacial dos componentes determinada é então usada para escolher um número de peças para cada componente para uso na visualização/renderização do componente na etapa 1204 e usando as peças determinadas o modelo é visualizado/renderizado na etapa 1205.
[000112] As figuras 13 e 14 mostram um número de peças usadas para representar um componente de acordo com uma modalidade da invenção. Neste exemplo, o componente é um tijolo de construção de brinquedo. Oito peças 1302, 1303, 1304, 1305 são usadas para representar botões do tijolo de construção de brinquedo, uma peça é usada para representar o invólucro externo 1306 do tijolo, duas peças são usadas para representar o invólucro interno do tijolo 1037, 1038 e três peças são usadas para representar cilindros debaixo do tijolo 1309, 1310, 1311.
[000113] A figura 15a mostra um componente 1501 de acordo com uma modalidade da presente invenção. O componente 150 representa um elemento de construção de brinquedo quadrado. A figura 15b ilustra um componente 1502 de acordo com uma modalidade da presente invenção. O componente 1502 representa um elemento de construção de brinquedo cilíndrico. A figura 15c mostra as peças 1503, 1504, 1505, 1506, 1507, 1515 do componente 1501. A figura 15d mostra as peças 1508, 1509, 1510 do componente 1502. A figura 15e mostra dias zonas de obstrução 1511, 1512 de um tipo específico associado com o componente 1501. As zonas de obstrução 1511, 1512 são preferivelmente posicionadas na porção de um componente onde o componente pode ser conectado a outros componentes. Neste exemplo, as zonas de obstrução 1511, 1512 são posicionadas no topo e fundo do componente 1501. Estas posições correspondem às porções do elemento de construção de brinquedo que o componente 1501 representa que pode ser conectado a outros elementos de construção de brinquedo. O tipo das zonas de obstrução pode ser dependente de sua forma e/ou tamanho. Neste exemplo, as zonas de obstrução 1511, 1512 são zonas de obstrução quadradas. As zonas de obstrução podem ser ligadas a uma ou mais peças de seu componente. Neste exemplo, a zona de obstrução 1512 está ligada à peça 1503 e a zona de obstrução 1511 está ligada à peça 1515. A figura 15f mostra as duas zonas de obstrução 1513, 1514 de um tipo específico associado com o componente 1502. Neste exemplo, as zonas de obstrução 1513, 1514 estão posicionadas no topo e fundo do componente 1502. Estas posições correspondem às porções do tijolo de construção de brinquedo que o componente 1502 representa que pode ser conectada a outros elementos de construção de brinquedo. Neste exemplo, as zonas de obstrução 1513, 1514 são redondas. Neste exemplo, as zonas de obstrução 1513 está ligada à peça 1510 e a zona de obstrução 1514 está ligada à peça 1509.
[000114] A figura 16 mostra um exemplo de otimização de modelo de acordo com uma modalidade da presente invenção. O modelo de computador 1601 representa uma construção de modelo de brinquedo de dois elementos de construção de brinquedo quadrados 1603, 1604. Neste exemplo, cada elemento de construção de brinquedo 1603, 1604 corresponde a um componente, e cada componente é compre- endido das peças 1503, 1504, 1505, 1506, 1507, 1515 mostradas na figura 15c. Cada componente tem ainda duas zonas de obstrução 1511, 1512 associadas como mostrado na figura 15e. Para otimizar o modelo de computador 1601 a relação espacial entre as zonas de obstrução dos dois componentes 1603, 1604 é examinada. Examinando a distância entre a zona de obstrução 1511 do componente 1603 e a zona de obstrução 1512 do componente 1604, e sua orientação em relação uma à outra, o método é capaz de determinar que as duas zonas de obstrução estão em contato. Quando duas zonas de obstrução estão em contato, uma regra lógica pode ser usada para determinar se uma zona de obstrução obstrui a outra e se quaisquer peças ligadas a qualquer uma das zonas de obstrução podem ser deixadas fora para visualizar/renderizar o componente. Neste exemplo, uma regra lógica possível pode ser: 1. Uma zona de obstrução quadrada de tamanho X obstrui as zonas de obstrução redondas e quadradas de tamanho menor ou igual a X. 2. Uma zona de obstrução redonda de tamanho Y obstrui as zonas de obstrução redondas de tamanho menor ou igual a Y. 3. As peças ligadas a uma zona de obstrução podem ser deixadas fora quando visualizar/renderizar um componente.
[000115] Usando a regra lógica 1, o método é capaz de determinar que a zona de obstrução 1511 a peça 1603 obstrui a zona de obstrução 1512 da peça 1604 e a zona de obstrução 1512 da peça 1604 obstrui a zona de obstrução 1511 da peça 1603. Deste modo, o modelo otimizado 1602 pode ser representado sem usar a peça 1515 para representar o componente 1603 e a peça 1503 para representar a peça 1604.
[000116] A figura 17 mostra um exemplo de otimização de modelo de acordo com uma modalidade da presente invenção. O modelo de computador 1701 representa um modelo de topo construído de um elemento de construção de brinquedo quadrado 1704 e um elemento de construção de brinquedo redondo 1703. Neste exemplo, cada elemento de construção de brinquedo 1703, 1704 corresponde a um componente. O elemento de construção de brinquedo quadrado é compreendida das peças 1503, 1504, 1505, 1506, 1507, 1515 mostradas a figura 15c e o elemento de construção de brinquedo redondo é compreendido das peças 1508, 1509, 1510 mostradas na figura 15d. O elemento de construção de brinquedo quadrado 1704 tem duas zonas de obstrução 1511, 1512 associadas como mostrado na figura 15e, e o elemento de construção de brinquedo redondo 1703 tem duas zonas de obstrução 1513, 1514 associadas como mostrado na figura 15f. Para otimizar o modelo de computador 1601 a relação espacial entre as zonas de obstrução de dois componentes 1703, 1704 é examinada. Neste exemplo, verifica-se que a zona de obstrução 1514 do componente 1703 e a zona de obstrução 1512 do componente 1704 estão em contato. Usando as três regras declaradas anteriormente, o método determina que a zona de obstrução quadrada 1512 do componente 1704 obstrui a zona de obstrução redonda 1514 do componente 1703, no entanto, a zona de obstrução redonda 1514 do componente 1703 não obstrui a zona de obstrução quadrada 1512 do componente 1704. Deste modo o modelo de computador otimizado 1702 pode ser representado ser usar a peça 1509 para representar o componente 1703, no entanto, o número total de peças ainda precisa ser usado para representar o componente 1704.
[000117] A figura 23a mostra um exemplo de acordo com uma modalidade da presente invenção de como um componente pode ser dividido em peças. No componente as peças representam o elemento de construção de brinquedo quadrado 1501 mostrado na figura 15a. Neste exemplo, o cilindro 2305 e a caixa 2306 são representados usando uma peça. A figura 23b mostra um exemplo de acordo com uma modalidade da presente invenção de como as zonas de obstrução podem ser associadas com um componente. As zonas de obstrução neste exemplo são associadas com o componente 1501. As zonas de obstrução 2311 e 2312 são usadas para encontrar as peças de outros componentes obstruídos pelo componente 1501 e a zona de obstrução 2313 é usada para encontrar as peças do componente 1501 obstruídas por outros componentes. As zonas de obstrução 2311 e 2312 não são ligadas a quaisquer peças e a zona de obstrução 2313 é ligada à peça 2305.
[000118] A figura 23c mostra um exemplo de otimização de modelo de acordo com uma modalidade da presente invenção. O modelo de computador 2301 representa um modelo de brinquedo construído de um elemento de construção de brinquedo 2304 e um elemento de construção de brinquedo redondo 2303. Neste exemplo, cada elemento de construção de brinquedo 2303, 2304 corresponde a um componente. O elemento de construção de brinquedo quadrado é compreendido das peças 2305, 2306 mostradas na figura 23a e o elemento de construção de brinquedo redondo é compreendido das peças 1506, 1509, 1510 mostradas na figura 15d. O elemento de construção de brinquedo quadrado 2304 tem três zonas de obstrução 2311, 2312, 2313 associadas como mostrado na figura 23b, e o elemento de construção de brinquedo redondo 2303 tem duas zonas de obstrução 1513, 1514 associadas como mostrado na figura 15f. Para otimizar o modelo de computador 2301 as relações espaciais entre as zonas de obstrução dos dois componentes 2303, 2304 são examinadas. Neste exemplo, verifica-se que a zona de obstrução 1514 do componente 2303 e a zona de obstrução 2312 do componente 2304 estão em contato, e verifica-se que a zona de obstrução 2313 do componente 2304 e a zona de obstrução 1513 do componente 2303 estão em contato. Usando as três regras lógicas declaradas anteriormente, o método determina que a zona de obstrução quadrada 2312 do componente 2304 obstrui a zona de obstrução redonda 1514 do componente 2303 e a zona de obstrução redonda 1514 do componente 2303 obstrui a zona de obstrução redonda 2313 do componente 2304. Deste modo, p modelo de computador otimizado 2301 pode ser representado sem usar a peça 1509 para representar o componente 2303 e a peça 2305 para representar o componente 2304. Nas modalidades da invenção, uma primeira e segunda coleção de zona(s) de obstrução pode(m) ser associ- ada(s) com um componente. A primeira coleção de zona(s) de obstrução pode(m) ser usada(s) para encontrar as peças do componente oculto pelo componente e a segunda coleção de zona(s) de obstrução pode(m) ser usada(s) para encontrar as peças do componente oculto por outros componentes.
[000119] A figura 18 mostra um exemplo de como o componente pode ser dividido em peças de acordo com uma modalidade da presente invenção. O componente das peças representam o elemento de construção de brinquedo quadrado 1501 mostrado na figura 15a. Neste exemplo, duas peças 1802, 1803 representam uma porção comum do componente 1501. A primeira peça 1802 corresponde a um quadrado com um cilindro no topo e a segunda peça 1803 corresponde a um quadrado. A primeira peça tem um nível mais alto de detalhe do que a segunda peça. Portanto, menos recursos de computação são necessários para visualizar/renderizar a segunda peça 1803 do que a primeira peça 1802. Preferivelmente, no máximo uma da primeira 1802 ou da segunda peça 1803 no tempo é usada para representar o elemento de construção de brinquedo 1501. As peças remanescentes 1804, 1805, 1806, 1807, 1808 corresponde às peças mostradas na figura 15c.
[000120] A figura 19 mostra um exemplo de otimização de modelo de acordo com uma modalidade da presente invenção. Um modelo de computador 1901 representa um modelo de brinquedo construído de um elemento de construção de brinquedo 1904 e um elemento de construção de brinquedo redondo 1903. Neste exemplo, cada elemento de construção de brinquedo 1903, 1904 corresponde a um componente. O elemento de construção de brinquedo quadrado 1904 é representado usando as peças 1802, 1803, 1804, 1805, 1806, 1807, 1808 mostradas na figura 18 e o elemento de construção de brinquedo redondo é representado usando as peças 1508, 1509, 1510 mostradas na figura 15d. O componente 1904 tem duas zonas de obstrução 1511, 1512 associadas como mostrado na figura 15e com a diferença de que a zona de obstrução 1511 está ligada à peça 1803 e a zona de obstrução 1512 é ligada tanto à peça 1802 como à peça 1803. O componente 1903 tem duas zonas de obstrução 1513, 1514 associadas como mostrado na figura 15f. Para otimizar o modelo de computador 1901 as relações espaciais entre as zonas de obstrução dos dois componentes 1903, 1904 são examinadas. Neste exemplo, verifica-se que a zona de obstrução 1514 do componente 1903 e a zona de obstrução 1512 do componente 1904 estão em contato. Quando se verifica que duas zonas de obstrução estão em contato, uma regra lógica pode ser usada para determinar se uma zona de obstrução obstrui a outra e se quaisquer peças ligadas a qualquer uma das zonas de obstrução pode ser deixada fora para visualizar/renderizar o componente. Neste exemplo, uma regra lógica possível pode ser a seguinte: 1. Uma zona de obstrução quadrada de tamanho X obstrui zonas de obstrução redondas e quadradas de tamanho menor ou igual a X. 2. Uma zona de obstrução redonda de tamanho Y obstrui zonas de obstrução redondas de tamanho menor ou igual a Y. 3. Uma zona de obstrução redonda de tamanho Y obstrui parcialmente uma zona de obstrução quadrada de tamanho menor ou igual a Y. 4. As peças ligadas a uma zona de obstrução obstruída podem ser deixadas fora quando visualização/renderização um componente. 5. Se duas peças representam uma porção comum de um componente e estão ligadas a uma zona de obstrução, usar a peça com o nível mais baixo de detalhe se a zona de obstrução está parcialmente obstruída. 6. Se duas peças representam uma porção comum de um componente e são ligadas a uma zona de obstrução, usar a peça com o nível mais alto de detalhe se a zona de obstrução não está obstruída.
[000121] Usando a regra lógica 1 e 4, a peça 1509 pode ser deixada fora quando visualização/renderização o componente 1903 e a peça 1803 pode ser usada no lugar de uma peça 1802 para visuali- zar/renderizar o componente 1904. Deste modo, ambos os componentes 1903 e 1904 podem ser otimizados, diminuindo mais os recursos de computação necessários para visualizar/renderizar o modelo de computador 1901. Neste exemplo, não há nenhuma perda visível de usar a peça 1803 em vez da peça 1802 para visualizar/renderizar o componente 1904, no entanto, em outra modalidade várias perdas visuais podem ocorrer.
[000122] A figura 20 mostra um fluxograma de um método para visu- alizar/renderizar um modelo de computador de acordo com uma modalidade da presente invenção. Na etapa 2001, o método determina se todos os componentes do modelo foram avaliados. Se a resposta for não, o método continua na etapa 2002 escolhendo o próximo componente na etapa 2003 o método determina se todas as peças do componente escolhido foram examinadas. Se a resposta for não, o método escolhe a próxima peça na etapa 2004. Na etapa 2005, o método determina se todas as zonas de obstrução ligadas à peça foram examinadas. Se a resposta for não, o método escolhe a próxima zona de obstrução na etapa 2006. Em seguida, na etapa 2007, o método examina a zona de obstrução escolhida. O método pode examinar a zona de obstrução determinando a relação espacial entre a zona de obstrução escolhida e quaisquer outras zonas de obstrução de outros componentes. A relação espacial pode ser determinada examinando a distância entre a zona de obstrução escolhida e outras zonas de obstrução. Se a distância entre duas zonas de obstrução está dentro de uma faixa predeterminada, as zonas de obstrução podem ser determinadas estar em contato. Adicionalmente, a orientação com relação à zona de obstrução pode ser usada para determinar se elas estão em contato. Duas zonas de obstrução não precisam estar fisicamente em contato para serem classificadas como estando em contato, elas podem apenas estar na proximidade umas das outras. Quando se verifica que duas zonas de obstrução estão em contato, uma regra lógica pode ser aplicada para determinar se e como elas obstruem umas às outras. Uma zona de obstrução pode ser totalmente obstruída ou parcialmente obstruída como descrito em relação à figura 19. Após o método ter terminado o exame da zona de obstrução escolhida na etapa 2007, ele retorna para a etapa 2005 para examinar se todas as zonas de obstrução ligadas à peça foram examinadas. Se a resposta for sim, o método vai para a etapa 2008 onde determina se a peça escolhida está totalmente obstruída. Se a resposta for não, o método vai para a etapa 2009, onde determina se a peça está parcialmente obstruída. Se a resposta for não, o método retorna para a etapa 2003. Na etapa 2009, se a resposta for sim, o método determina se a peça tem um nível mais baixo de versão de detalhe na etapa 2011. Um nível mais baixo de versão de detalhe pode ser uma versão da peça tendo menos deta- lhes, por exemplo, se a peça representa o topo de um elemento de construção de brinquedo composto de um quadrado com um cilindro saliente no topo, um nível mais baixo de versão de detalhe da peça pode simplesmente ser o quadrado sem o cilindro. Se a resposta for não, o método retorna à etapa 2003. Se a resposta for sim, o método substitui a peça com um nível mais baixo de versão de detalhe no processo de renderização e retorna à etapa 2003. Na etapa 2008, se o método determina que a peça escolhida está totalmente obstruída, ele remove a peça escolhida na etapa 2013 e retorna à etapa 2003. Se o método na etapa 2003 determina que todas as peças do componente escolhido foi avaliado ele retorna à etapa 2001. Na etapa 2001, se o método determina que todos os componentes do modelo foram avaliados, o método inicia o processo de visualização/renderização na etapa 2014 e gera uma representação do modelo. A representação pode ser uma vista em perspectiva bidimensional do modelo. A vista em uma perspectiva bidimensional do modelo pode ser diretamente mostrada na tela e/ou salva em um arquivo digital.
[000123] No exemplo da figura 20, o processo determina a relação espacial entre dois componentes diretamente baseado nas zonas de obstrução. Em uma modalidade alternativa, o processo pode determinar a relação espacial pelo menos parcialmente baseado nas zonas de obstrução como descrito no presente documento. Em particular, em uma modalidade, cada peça de um componente pode ter uma ou mais zonas de obstrução e uma ou mais zonas de obstrução associadas com a mesma. Por exemplo, uma primeira peça pode ter uma ou mais zonas de obstrução associadas com a mesma e cada zona de obstrução pode ter uma zona de obstrução associada com a mesma. Se pelo menos uma primeira zona de conexão ligada à primeira peça é conectada a uma zona de conexão compatível de outro componente, o processo determina se (e/ou em que grau), a peça é obstruída devido á conexão. Para este fim, o processo determina se a zona de obstrução ligada à zona de conexão do outro componente obstrui a zona de obstrução ligada à primeira zona de conexão, por exemplo, como descrito acima.
[000124] Portanto, em algumas modalidades o processo determina qual a peça não é para ser usada para visualizar/renderizar um componente, se a peça tem uma primeira zona de conexão associada com ela que está conectada a uma segunda zona de conexão de outro componente, se a segunda zona de conexão tem uma segunda zona de obstrução associada com ela que obstrui uma primeira zona de conexão associada com a primeira zona de conexão.
[000125] A figura 21 mostra uma estrutura de dados de um modelo de computador de acordo com uma modalidade da presente invenção. Uma estrutura de dados de um modelo de computador 2101 pode compreender os parâmetros de modelo 2102 e um número de componentes e opcionalmente uma tabela de compatibilidade da zona de conexão 2121 e um número de regras de obstrução 2122. Os parâmetros de modelo 2102 podem compreender informação relacionada à posição e orientação do modelo em um sistema de coordenada apropriado. Os parâmetros de modelo 2102 podem ainda ser animados ao longo do tempo. Uma tabela de compatibilidade da zona de conexão 2121 pode conter informação relacionada à compatibilidade dos diferentes tipos de zonas de conexão, por exemplo, a tabela mostrada na figura 7b. As regras de obstrução podem definir como os diferentes tipos de zonas de obstrução obstruem umas às outras, por exemplo, as regras lógicas anteriormente declaradas. Uma estrutura de dados de um componente 2104 pode compreender os parâmetros 2105, um número de zonas de conexão 2106, um número de zonas de obstrução 2107 e um número de peças 2108. Os parâmetros do componente 2105 podem compreender informação relacionada à poluição e orien- tação do componente. Uma estrutura de dados de uma zona de conexão 2109 pode compreender os parâmetros das zonas de conexão 2110 e opcionalmente informação de conexões feita com zonas de conexão de outros componentes 2111. Os parâmetros das zonas de conexão 2110 podem compreender informação relacionada à posição, orientação, forma e tipo de zona de conexão. Uma estrutura de dados de uma zona de conexão 2112 pode compreender os parâmetros das zonas de obstrução 2113 e opcionalmente informação indicativa de peças ligadas à zona de obstrução 2114 e conexões da zona de obstrução com outras zonas de obstrução de outros componentes 2115. Os parâmetros das zonas de obstrução 2113 podem compreender informação relacionada à posição, orientação, forma e tipo de zona de obstrução. Uma estrutura de dados para uma peça 2116 pode compreender os parâmetros de peça 2117 e opcionalmente um número de nível mais baixo de peças de detalhe 2118 e informação indicativa de zonas de obstrução ligadas à peça 2118. Os parâmetros de peça 2117 podem compreender informação relacionada à posição, orientação e forma da peça. Uma estrutura de dados para um nível mais baixo de peça de detalhe pode compreender os parâmetros 2120 que podem compreender informação relacionada aposição, orientação e forma da peça LOD mais baixa.
[000126] Geralmente, em algumas modalidades, as zonas de conexão dos componentes de um produto compósito que proveem conexões a outros componentes podem ser dispostos em uma estrutura regular, por exemplo, uma grade 2D regular onde cada uma das posições de grade representa uma zona de conexão. Cada zona de conexão tem um tipo associado com ela, e se um determinado par de zonas de conexão interage de modo a prover uma conexão é determinado por seus tipos, por exemplo, como definido em uma estrutura de dados apropriada. Em uma modalidade, somente as zonas de cone- xão que interagem com outra zona de conexão dentro do modelo como para formar uma conexão são levadas em conta pelo processo de otimização quando realizando o teste de obstrução. Além de ter um tipo, uma zona de conexão também tem uma zona de obstrução associada com ela. Comparando as zonas de obstrução em ambos os lados de uma conexão, o processo determina como uma peça do componente pode ser removida ou substituída por uma peça opcional em ambos os lados da conexão. A peça opcional pode ter um nível de detalhe mais baixo do que o nível de detalhe da peça que é substituída pela peça opcional.
[000127] Sempre que um componente dentro de um modelo é otimizado para o fim de renderização, o processo pode iterar através de todas as peças de cada componente e examinar as zonas de conexão das quais cada peça é dependente e que formam uma conexão com outra zona de conexão. O resultado determina se a peça pode ser removida, substituída por uma peça opcional, ou mostrada em qualidade total, dependendo dos respectivos tipos de zonas de obstrução associadas com as zonas de conexão formando uma respectiva conexão.
[000128] Por exemplo, em uma representação digital do modelo, cada peça do componente que pode ser potencialmente removida durante a otimização pode ser ligada a uma zona de conexão, por exemplo, associando um ou mais atributos apropriados para a peça, tal como um atributo identificando a grade regular e a posição da zona de conexão dentro de dita grade. Em uma modalidade, se uma peça não depende de qualquer zona de conexão então essa peça é sempre mostrada.
[000129] Em uma modalidade, sempre que uma peça do componente é dependente em mais do que uma zona de conexão, o processo de otimização determina as propriedades de obstrução para cada zona de conexão baseado nas propriedades de conexão da zona de conexão e nas zonas de obstrução correspondentes das zonas de conexão co-nectadas. Por exemplo, o resultado para cada zona de conexão pode ser um de "oculta", "opcional" e "mostra". O resultado total para uma peça dependente em mais do que uma zona de conexão pode então ser determinado como o resultado da zona de conexão resultando em otimização menor: por exemplo, para uma peça dependente de 8 zonas de conexão, 7 "ocultas" e 1 "opcional", os resultados dão "opcional"; similarmente, 1 "oculta", 6 "opcionais" e 1 "mostra" dá "mostra". Se o resultado é "opcional" e uma peça opcional não está disponível para a peça atual, o resultado é convertido em "mostra". Se qualquer zona de conexão única resulta em "mostra", mais nenhuma zonas de conexão precisa ser testada com respeito à peça atual. Contanto que nenhuma zona de conexão resulte em "mostra", o processo mantém- se testando as zonas de conexão restantes a fim de determinar um resultado "oculto"/"opcional".
[000130] A figura 22 mostra uma vista esquemática de um exemplo de um sistema de computador. O sistema de computador, geralmente designado 2200, compreende um computador programado apropriadamente 2201, por exemplo, um computador pessoal, uma estação de trabalho, etc., compreendendo um monitor 2220, um teclado 2221 e um mouse de computador 2222 e/ou outro dispositivo de anotação, tal como uma almofada de toque, uma esfera de rastreamento, uma caneta ótica, uma tela de toque, ou semelhante. O sistema de computador compreende ainda uma base de dados 2202 para armazenar informação sobre todos os modelos de computador acessíveis, componentes e peças. A base de dados 2202 pode ser qualquer sistema de base de dados apropriado, por exemplo, uma base de dados de relacionamento tal como as bases de dados Oracle ou MySQL, ou semelhantes. O sistema de computador compreende ainda um dispositivo de armazenamento de arquivos 2203. O dispositivo de armazenamen- to de arquivos pode ser qualquer tipo apropriado de armazenamento remotamente acessível como SMB ou NFS-shares, etc. e as definições de geometria podem ser armazenadas em qualquer estrutura de diretório apropriada.
[000131] A base de dados 2202 e o armazém de arquivos 2203 são acessíveis ao computador 2011 através de uma rede de computador 2204 apropriada, por exemplo, uma rede de área local, uma rede de longa distância, uma internet, ou semelhantes. Será apreciado que a base de dados 2202 e/ou o armazém de arquivos 2203 pode ser acessível ao computador 2201 diretamente ou através de outro computador tal como um servidor de arquivos, um servidor de bases de dados, e/ou semelhantes. Será ainda apreciado que a base de dados 2202 e/ou o armazém de arquivos 2203 pode ser integrado no computador 2201. Será ainda apreciado que a informação sobre os modelos de computador, componentes e peças pode ser armazenada de um modo diferente.
[000132] O sistema de computador 2200 é adaptado para facilitar a visualização/renderização de modelos de computador. O sistema de computador pode ser usado como sistema autônomo ou em conexão com outros computadores. Consequentemente, em algumas modalidades, o sistema de computador 2200 compreende ainda uma ou mais interfaces para conectar o computador com outros computadores através de uma rede de computador, por exemplo, a Internet.
[000133] A figura 24 mostra uma interface de usuário gráfica de uma ferramenta de construção implementada por computador. A interface de usuário compreende uma área de monitor 2401 mostrando uma vista de uma cena 3D com uma placa de base 2402 e um modelo de computador 2403 compreendendo um número de pontos de vista predeterminado. No que se segue, o ponto de vista também será referido como a posição da câmera (virtual), uma vez que ele corresponde a uma posição a partir da qual a câmara pode gravar uma fotografia de uma estrutura real correspondendo à fotografia gráfica mostrada na área do monitor.
[000134] Cada um dos componentes corresponde a um elemento ativo da interface de usuário gráfica que pode ser ativada, por exemplo, clicando nela com um mouse de computador, para selecionar esse componente. Em uma modalidade, um componente selecionado muda de aparência. Por exemplo, o componente selecionado pode mudar a cor, textura, etc.; ele pode ser realçado mostrando uma caixa de confi- namento em torno do bloco de construção selecionado, ou semelhante. Um usuário pode manipular um componente selecionado, por exemplo, mudar suas propriedades, por exemplo, sua cor, deletar o mesmo, efetuar uma cópia e operação de pasta, arrastar o mesmo para uma posição diferente, girar o mesmo, ou semelhante.
[000135] A interface de usuário compreende ainda um painel de palheta de cores 2405 compreendendo um número de componentes diferentes 2406 que podem ser selecionados pelo usuário. Por exemplo, um usuário pode clicar em um dos componentes 2406 com o mouse, deste modo selecionando aquele componente e arrastar o componente selecionado para dentro da área de monitor 2401 para conectar o mesmo à estrutura 2403 ou à placa de base 2402. A interface de usuário compreende ainda uma barra de menu 2407 compreendendo um número de botões de menu 2408 para ativar várias funções ou ferramentas. Por exemplo, a barra de ferramentas pode compreender uma ferramenta de rotação para mudar a posição da câmera virtual, deste modo permitindo ao usuário visualizar a área de construção a partir de direções diferentes. A barra de menu compreende ainda uma ferramenta de zoom para usar as lentes de zoom para/ a partir de dentro e fora da cena 3D. Outros exemplos de ferramentas incluem uma ferramenta de palheta de cores para selecionar palhetas diferentes 2405 cada uma compreendendo um conjunto diferente de componentes, uma ferramenta de colorir para colorir as peças da estrutura, uma ferramenta de borracha de apagar para apagar os blocos de construção, etc.
[000136] A barra de menu 2407 pode ainda prover funções padrão, tais como funções para salvar um modelo, abrir um modelo previamente salvo, imprimir uma imagem de um modelo, uma função de ajuda, etc.
[000137] Embora algumas modalidades tenham sido descritas e mostradas em detalhe, a invenção não está restrita às mesmas, mas também pode ser incorporada de outros modos dentro do escopo da matéria objeto definida nas seguintes reivindicações. Em particular, deve ser entendido que outras modalidades podem ser utilizadas e modificações estruturais e funcionais podem ser feitas sem sair do escopo da presente invenção.
[000138] Nas reivindicações do dispositivo enumerando vários meios, vários destes meios podem ser incorporados por um e o mesmo item ou hardware. O simples fato de que certas medidas são descritas nas reivindicações dependentes mutuamente diferentes ou descritas nas modalidades diferentes não indica que uma combinação destas medidas não possa ser usada com vantagem.
[000139] Deve ser enfatizado que o termo "compreen- de/compreendendo" quando usado neste relatório é tomado para especificar a presença de características declaradas, números inteiros, etapas ou componentes, mas não elimina a presença ou a adição de uma ou mais outras características, números inteiros, etapas, componentes ou grupos dos mesmos.

Claims (12)

1. Método implementado por computador para visuali- zar/renderizar um modelo de computador, o modelo de computador compreendendo uma pluralidade de componentes (202), o método ca-racterizado pelo fato de que compreende: armazenar (1201) uma pluralidade de peças (301, 302, 303, 304) de pelo menos um componente da pluralidade de componentes, cada peça incluindo informação de geometria para visuali- zar/renderizar a peça, a divisão do componente em peças, determinando como o componente pode ser otimizado; armazenar (1202) informação indicativa da posição e orientação de uma pluralidade de componentes em um sistema de coordenadas; determinar (1203) uma relação espacial entre os componentes individuais dos componentes baseados na informação armazenada indicativa da posição e orientação da pluralidade de componentes; determinar (1204) para o pelo menos um componente um número de peças armazenadas para uso na visualização/renderização de dito componente, baseado na relação espacial determinada entre os componentes individuais; e visualizar/renderizar (1205) o modelo usando as peças de-terminadas.
2. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com a reivindicação 1, caracterizado pelo fato de que pelo menos uma zona de conexão predeterminada (A, B, C, D) é definida em relação a pelo menos um componente, em que dita zona de conexão é indicativa de uma porção do componente que pode ser conectada a uma ou mais zonas de conexão de outro componente.
3. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com a reivindicação 2, caracterizado pelo fato de que a etapa de determinar uma relação espacial entre os componentes individuais compreende a etapa de determinar uma relação espacial das zonas de conexão dos componentes individuais.
4. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com a reivindicação 3, caracterizado pelo fato de que a etapa de determinar a relação espacial entre zonas de conexão individuais compreende a etapa de determinar uma distância entre duas zonas de conexão, e onde ditas zonas de conexão são conectadas quando uma distância está dentro de um intervalo predeterminado.
5. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com a reivindicação 3 ou 4, caracterizada pelo fato de que a etapa de determinar a relação espacial entre as zonas de conexão individuais compreende a etapa de determinar a orientação de uma zona de conexão com relação a outra.
6. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com a reivindicação 4 ou 5, caracterizado pelo fato de que uma primeira peça do componente está associada com uma ou mais zonas de conexão, e em que a etapa de determinar para o pelo menos um componente um número de peças para uso para visualização/renderização de dito componente compreende determinar se a uma ou mais zonas de conexão é conectada a uma zona de conexão do outro componente.
7. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que um primeiro componente (2304) compreende uma primeira zona de obstrução (2311, 2312, 2313) de um tipo predeterminado e um segundo componente (2303) compreende uma segunda zona de obstrução (1513, 1514) de um tipo predeterminado, em que a relação espacial entre a primeira e a segunda zona de obstrução é usada para determinar uma porção do primeiro componente obstruído pelo segundo componente.
8. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que o método compreende determinar (2013) uma peça como não usada para visualizar/renderizar um componente quando pelo menos uma porção predeterminada da área de superfície da peça é coberta por uma ou mais outras peças quando visualizada a partir de qualquer direção externa da caixa de confinamento de dito modelo de computador.
9. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que a etapa de determinar para o pelo menos um componente um número de peças para uso para visualizar/renderizar dito componente compreende ainda a etapa de determinas as propriedades de material de um componente, e baseado tanto na relação espacial determinada como nas propriedades de material determinadas, determinando um número de peças para uso para visualizar/renderizar dito componente.
10. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com a reivindicação 9, caracterizado pelo fato de que a etapa de determinar as propriedades de material compreende a etapa de determinar os ajustes de transparência para um componente.
11. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que o modelo de computador representa um produto compósito.
12. Método implementado por computador para visuali- zar/renderizar um modelo de computador, de acordo com qualquer uma das reivindicações anteriores, caracterizado pelo fato de que uma primeira peça e uma segunda peça representam uma seção comum de um componente, em que a primeira peça tem um nível mais alto de detalhe do que a segunda peça, e em que a etapa de determinar um número de peças armazenadas para uso para visuali- zar/renderizar dito componente compreende ainda selecionar (2012) no máximo uma das primeira e segunda peças para visuali- zar/renderizar dito componente.
BR112012007559-4A 2009-10-02 2010-09-10 Método implementado por computador para visualizar/renderizar um modelo de computador BR112012007559B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DKPA200970141 2009-10-02
DKPA200970141 2009-10-02
PCT/EP2010/063296 WO2011039041A2 (en) 2009-10-02 2010-09-10 Connectivity depended geometry optimization for real-time rendering

Publications (2)

Publication Number Publication Date
BR112012007559A2 BR112012007559A2 (pt) 2020-08-11
BR112012007559B1 true BR112012007559B1 (pt) 2021-04-27

Family

ID=42226509

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112012007559-4A BR112012007559B1 (pt) 2009-10-02 2010-09-10 Método implementado por computador para visualizar/renderizar um modelo de computador

Country Status (13)

Country Link
US (1) US9230360B2 (pt)
EP (1) EP2483868B1 (pt)
JP (1) JP5665872B2 (pt)
KR (1) KR101721715B1 (pt)
CN (1) CN102782728B (pt)
BR (1) BR112012007559B1 (pt)
CA (1) CA2774114C (pt)
DK (1) DK2483868T3 (pt)
ES (1) ES2528605T3 (pt)
HK (1) HK1174135A1 (pt)
MX (1) MX2012003896A (pt)
PL (1) PL2483868T3 (pt)
WO (1) WO2011039041A2 (pt)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10016694B2 (en) * 2011-07-05 2018-07-10 Lego A/S Method and system for designing and producing a user-defined toy construction element
USD794466S1 (en) * 2012-08-09 2017-08-15 Friendship Products, Llc Container
USD806553S1 (en) * 2012-08-09 2018-01-02 Friendship Products, Llc Container
USD794467S1 (en) * 2012-08-09 2017-08-15 Friendship Products, Llc Container
JP2014102685A (ja) * 2012-11-20 2014-06-05 Sony Corp 情報処理装置、情報処理方法及びプログラム
US9239891B2 (en) 2013-05-23 2016-01-19 Fca Us Llc System and method for determining a mated surface of an object having a plurality of members
JP5505848B1 (ja) 2013-12-02 2014-05-28 株式会社サイバーノイズ 画像処理装置、画像処理方法及びプログラム
JP6193135B2 (ja) 2014-01-21 2017-09-06 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、および情報処理方法
JP6027554B2 (ja) 2014-01-21 2016-11-16 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、情報処理システム、ブロックシステム、および情報処理方法
EP3098782B1 (en) * 2014-01-21 2021-06-16 Sony Interactive Entertainment Inc. Information processing device and information processing method
JP5610327B1 (ja) 2014-03-18 2014-10-22 株式会社Live2D 画像処理装置、画像処理方法及びプログラム
USD795925S1 (en) * 2014-04-16 2017-08-29 Hitachi, Ltd. Display screen or portion thereof with icon
US10176520B2 (en) * 2015-07-07 2019-01-08 The Boeing Company Product visualization system
US10650222B2 (en) * 2016-05-09 2020-05-12 Lego A/S System and method for toy recognition
EP3299072A1 (en) * 2016-09-27 2018-03-28 Danmarks Tekniske Universitet Method and toy element for generating a computer-readable representation of a construction made of toy building elements
LU100390B1 (en) * 2017-09-05 2019-03-19 Luxembourg Inst Science & Tech List Stretchable interactive tangibles
USD844394S1 (en) 2018-03-29 2019-04-02 Kraft Foods Group Brands Llc Mold
US10894342B2 (en) 2018-03-29 2021-01-19 Kraft Foods Group Brands Llc System and method for molding comestible building blocks
KR102384304B1 (ko) * 2019-07-15 2022-04-07 레고 에이/에스 렌더링 방법 및 이를 수행하는 렌더링 장치
JP7122583B1 (ja) 2022-01-14 2022-08-22 株式会社G-ant ブロックオブジェクトの設計図を生成する方法
KR102658703B1 (ko) * 2023-01-31 2024-04-18 김진한 코딩 교육용 교구 설계도 생성 시스템

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3010A (en) * 1843-03-21 Iiziiiiijiiii
US6335732B1 (en) * 1998-05-08 2002-01-01 Mohammad Salim Shaikh External recognition and rendering method
US6629065B1 (en) 1998-09-30 2003-09-30 Wisconsin Alumni Research Foundation Methods and apparata for rapid computer-aided design of objects in virtual reality and other environments
AU2092900A (en) * 1999-01-22 2000-08-07 Thomsen, Michael Virtual reality modelling
US6435226B1 (en) * 1999-12-08 2002-08-20 Mark D. Shaw Method and apparatus for breaching and venting sealed inner containers within a drum
US20020196250A1 (en) 2001-06-20 2002-12-26 Gateway, Inc. Parts assembly for virtual representation and content creation
US6897863B2 (en) * 2001-11-30 2005-05-24 Caterpillar Inc System and method for hidden object removal
RU2324975C2 (ru) * 2001-12-21 2008-05-20 Здфакто Апс Способ, компьютерная система и компьютерный программный продукт для настройки виртуального представления компоновки множества компонентов
CA2497621C (en) 2002-10-11 2012-09-25 Interlego Ag Method of generating a computer readable model
CN100495443C (zh) * 2002-10-11 2009-06-03 乐高公司 生成计算机可读模型的方法和数据处理系统
US7755620B2 (en) * 2003-05-20 2010-07-13 Interlego Ag Method and system for manipulating a digital representation of a three-dimensional object
US7979251B2 (en) * 2007-03-16 2011-07-12 Lego A/S Automatic generation of building instructions for building element models
US8581902B2 (en) 2008-01-17 2013-11-12 Dassault Systems Solidworks Corporation Reducing the size of a model using visibility factors

Also Published As

Publication number Publication date
JP5665872B2 (ja) 2015-02-04
EP2483868B1 (en) 2014-12-24
KR101721715B1 (ko) 2017-03-30
CA2774114C (en) 2018-07-31
WO2011039041A2 (en) 2011-04-07
BR112012007559A2 (pt) 2020-08-11
EP2483868A2 (en) 2012-08-08
CN102782728A (zh) 2012-11-14
CA2774114A1 (en) 2011-04-07
PL2483868T3 (pl) 2015-04-30
ES2528605T3 (es) 2015-02-10
MX2012003896A (es) 2012-05-08
CN102782728B (zh) 2016-03-23
WO2011039041A3 (en) 2012-01-05
JP2013506896A (ja) 2013-02-28
US20120280993A1 (en) 2012-11-08
HK1174135A1 (zh) 2013-05-31
DK2483868T3 (en) 2015-03-23
KR20120083893A (ko) 2012-07-26
US9230360B2 (en) 2016-01-05

Similar Documents

Publication Publication Date Title
BR112012007559B1 (pt) Método implementado por computador para visualizar/renderizar um modelo de computador
Ikehata et al. Structured indoor modeling
US7979251B2 (en) Automatic generation of building instructions for building element models
Bracci et al. HexaLab. net: An online viewer for hexahedral meshes
CN101866379B (zh) 用于可视化计算机屏幕上显示的对象的方法、程序和产品编辑系统
Kelly et al. Interactive dimensioning of parametric models
CN109983509B (zh) 一种使用几何面的即时布尔运算方法
Morvan et al. IVECS: An interactive virtual environment for the correction of. STL files
Tampieri Discontinuity meshing for radiosity image synthesis
Fayolle et al. Optimized surface discretization of functionally defined multi-material objects
Schäfer Efficient Object-Based Hierarchical Radiosity Methods
McCrae Planar section representations of 3d shape
Khorramabadi A walk through the planned CS building
Parra Oyarce Study and evaluation of algorithms to generate polygon meshes
Karsch Inverse rendering techniques for physically grounded image editing
Bayeh REVO: A flexible, volumetric approach to mesh construction
Eissa Image Space Coverage Model for Deployment of Multi-camera Networks
Smyk et al. JaTrac—an exercise in designing educational raytracer
Shen Semantic models for texturing volume objects
JP2021005212A (ja) 建物設計支援装置及び建物設計支援プログラム
Goradia et al. Fmm-based illumination maps for point models
Sulaiman et al. Development of real-time virtual environment with hierarchical construction
Spinelli et al. Recovering 3D architectural information from dense digital models of buildings.
Boothroyd Using Mesh Cutting in an Interactive Podiatric Orthopaedic Surgery Simulator
Khattak A variational approach to mapping: an exploration of map representation for SLAM

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B06A Notification to applicant to reply to the report for non-patentability or inadequacy of the application [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted

Free format text: PRAZO DE VALIDADE: 10 (DEZ) ANOS CONTADOS A PARTIR DE 27/04/2021, OBSERVADAS AS CONDICOES LEGAIS.