PT1381998E - Renderizador de corpo de volume - Google Patents

Renderizador de corpo de volume Download PDF

Info

Publication number
PT1381998E
PT1381998E PT02725716T PT02725716T PT1381998E PT 1381998 E PT1381998 E PT 1381998E PT 02725716 T PT02725716 T PT 02725716T PT 02725716 T PT02725716 T PT 02725716T PT 1381998 E PT1381998 E PT 1381998E
Authority
PT
Portugal
Prior art keywords
voxel
face
cell
polyhedral
volume
Prior art date
Application number
PT02725716T
Other languages
English (en)
Inventor
Andres C Callegari
Original Assignee
Landmark Graphics Corp
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 Landmark Graphics Corp filed Critical Landmark Graphics Corp
Publication of PT1381998E publication Critical patent/PT1381998E/pt

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01VGEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
    • G01V1/00Seismology; Seismic or acoustic prospecting or detecting
    • G01V1/28Processing seismic data, e.g. for interpretation or for event detection
    • G01V1/30Analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • 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/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/187Segmentation; Edge detection involving region growing; involving region merging; involving connected component labelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • G06V10/267Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20156Automatic seed setting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30181Earth observation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Acoustics & Sound (AREA)
  • Geophysics (AREA)
  • Geology (AREA)
  • General Life Sciences & Earth Sciences (AREA)
  • Image Generation (AREA)
  • Massaging Devices (AREA)
  • Bidet-Like Cleaning Device And Other Flush Toilet Accessories (AREA)
  • Signal Processing Not Specific To The Method Of Recording And Reproducing (AREA)
  • Amplifiers (AREA)
  • Paper (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)

Description

1
DESCRIÇÃO "RENDERIZADOR DE CORPO DE VOLUME"
Antecedentes da Invenção Campo da Invenção A presente invenção refere-se em geral ao processamento, modelo de extração, modelo de refinamento e renderização gráfica de dados digitais representando volumes geológicos ou de outro tipo, e mais especificamente, para renderização e análise de volumes de formas irregulares dentro de dados volumétricos baseados em voxel.
Descrição da Técnica Relacionada
Geologistas, geofisicistas e outros que analisam dados sísmicos para fins tais como deteção da presença e alteração durante o tempo de reservatórios de hidrocarboneto ou outras características da subsuperfície. Dados sísmicos podem ser reunidos através de, por exemplo, criação de explosões ou então libertação de energia para o chão, detetando e digitalizando a energia sísmica refletida usando um série de geoauscultadores ou sensores similares. Os dados volumétricos sísmicos processados representam uma região da subsuperfície tridimensional (3D) , tipicamente expressa em unidades de tempo ou profundidade. Outros exemplos de formas em que estes dados volumétricos podem ser obtidos e usados incluem medição gravitacional e magnética. Os dados podem compreender qualquer um de um largo número de atributos que os praticantes na técnica identificaram como sendo usável ou derivável da energia sísmica refletida e medição de campos, o mais comum de cada talvez seja a amplitude dos sinais refletidos. 2
Os 3D reunidos ou volumes de conjunto de dados podem ser interpretados, armazenados e de outra forma manipulados em qualquer um dos formatos. Um formato cada vez mais comum é que em cada elemento de dados por si próprio é representado um volume. Este elemento de dados é conhecido como um voxel (para "volume do elemento") ou célula. Se, por exemplo, a amplitude for o atributo que caracteriza os dados reunidos, as amostras dos atributos são representadas por voxels, cada um caracterizado por uma amplitude. Por outras palavras, o conjunto de dados é feito de uma multiplicidade de voxels, cada um caracterizado por uma amplitude. Um conjunto de dados de volume sísmico compreende geralmente milhões ou mesmo biliões de voxels e pode necessitar de terabytes de espaço para armazenamento. Os formatos Voxel são geralmente usados não somente em análise de dados sísmicos mas também em imagiologia médica e outras disciplinas de imagiologia. A análise de dados volumétricos tipicamente envolve renderização, interpretação, e fases de refinamento para produzir um modelo de subsuperfície ou para renderizar uma vista 3D especifica de uma região da subsuperficie. A maioria dos motores gráficos 3D disponíveis (por exemplo, placas gráficas aceleradoras para computadores de estações de trabalho) não têm voxel primitivos; em vez disso, estes podem interpretar somente pontos, linhas, e polígonos tais como triângulos, porque estes são destinados para renderizar representações baseadas em superfícies de objetos 3D, ou seja, conchas vazias, e não objetos contendo voxels. Embora existam alguns aceleradores gráficos baseados em voxels, estes não podem de forma eficiente e económica combinar primitivas 2D e 3D, que são necessárias para implementar determinadas características de visualização, tais como painéis esféricos e animação. 3
Assim, os métodos conhecidos para renderizar dados voxel, tais como raycasting e splatting, meramente produzem um retrato de imagens 3D de algumas visualizações predeterminadas em perspetiva. No raycasting, rays são projetados de um visualizador de origem, dos pontos de vista dos utilizadores, ou através de um plano projetado e estendido até que estes intercetem um ponto de dados ou uma série de pontos de dados. Este(s) ponto(s) ao longo e à volta dos rays são processados e o resultado da imagem é desenhado no ecrã ou no plano de projeção. No splatting, a contribuição para a imagem final de cada voxel à volta de uma predeterminada vizinhança é computorizado. Os voxels são conceptualmente ou virtualmente "atirados" para o plano da imagem para que cada voxel no espaço do objeto deixe uma zona de projeção no espaço da imagem. Se for utilizado para renderizar representações baseadas em superfícies de objetos tridimensionais ou atuais, ou seja, objetos de base voxel, tridimensionais, estes métodos podem renderizar somente aproximações voxel planas, ou seja, circulares ou quadradas sem uma vizinhança voxel definida, e são estritamente dependentes da visão. Repare-se igualmente que todos os métodos conhecidos voxel de renderização de dados são computacionalmente recursos de software ou hardware intensivos e requerem hardware caro e especializado que possua vários desempenhos e limitações de visualização. Adicionalmente, o desempenho de muitos destes algoritmos é afetado pela forma como estes atravessam a memória. Quando a memória é atravessada em diferentes direções, o desempenho do algoritmo pode variar dependendo da eficiência do acesso de dados sobre o hardware. Quanto maior o volume de dados de trabalho menor a capacidade de utilizar eficientemente a cache do hardware. 4
Além disso, independentemente de qual dos vários métodos de renderização voxel usado, o volume total do conjunto de dados deve ser mantido na memória (hardware) e eventualmente renderizados pelo hardware de gráficos 3D. Para renderizar um volume de dados, o conjunto total de dados deve ser obtido/trocado a partir de um armazenamento de dados (ou seja, memória de acesso aleatório, memória de disco, etc.) e renderizados usando algoritmos computacionais intensivos e enviados para o normal hardware gráfico 3D de recurso limitado. Como resultado destas limitações, a renderização pode demorar uma substancial quantidade de tempo, dependendo do hardware utilizado. A qualidade de renderização, as opções interativas de visualização de alta definição e resposta de visualização interativa são uma preocupação considerável para pessoas como geólogos ou geofísicos que podem querer ver um modelo de várias direções ou pontos de vista, comprar modelos diferentes entre si, e de outro modo manipula-los na sua análise das caracteristicas da subsuperfície relacionadas com reservatórios de petróleo e gás. É vulgarmente desejável para identificar, isolar, e focar sobre caracteristicas específicas e/ou regiões anormais dentro de um volume, tais com aquelas relativas ao potencial reservatórios de petróleo e gás em volumes sísmicos ou os relacionados com órgãos, ossos e tumores em volumes de medicina. Tais caracteristicas podem ser referidas como volumes irregulares porque eles não têm uma forma regular ou previsível. Raycasting, ponto splatting e até mesmo novos esquemas de renderização puro voxel não podem prontamente separar ou de outra maneira trabalhar com tais volumes irregulares separadamente de todo o volume de dados de trabalho, porque na maioria dos casos (ou seja, quando é usado hardware de textualização 3D ou 2D) todos os 5 dados de volume de trabalho é eventualmente enviado e completamente renderizado pelo hardware gráfico 3D. A imagem criada pelo hardware 3D pode graficamente e parcialmente isolar certas caracteristicas no ecrã, mas isso é pouco mais do que uma visão efémera ou vista retrato do volume de dados a partir de uma direção especifica única. Isto é, mesmo que um utilizador possa ver uma caracteristica na imagem, a caracteristica não é representada em separado dentro da lógica do computador para além dos dados vizinhos. No entanto, pode ser, que um utilizador esteja interessado apenas num volume especifico irregular ou grupo de volumes irregulares e não nos volumes como um todo, ou pode estar interessado em realizar uma operação de mapeamento num atributo especifico ou ver sobre um volume irregular especifico ou um conjunto de volumes irregulares. Por exemplo, alguém pode desejar considerar uma série de imagens, cada uma representando o mesmo volume irregular ou grupo de volumes irregulares em momentos diferentes, para avaliar como o(s) volume(s) irregular(es) pode(m) ter mudado ao longo do tempo como, por exemplo, petróleo ou gás estar esgotado. Os sistemas de renderização convencionais necessitam de renderizar cada volume do conjunto de dados na sua totalidade para ver como o volume irregular de interesse representado dentro dele apareceu no momento em que o conjunto de dados foi recolhido.
Os praticantes na técnica tentaram superar a incapacidade de trabalhar com volumes irregulares individuais através de laboratorialmente os identificarem usando vistas de retrato, e extraindo cada uma delas dos volumes de dados. Este processo pode ser muito doloroso e tedioso se houver uma grande quantidade de ruído nos dados ou se os objetos forem numerosos e pequenos no tamanho. Por exemplo, têm sido sugeridos algoritmos através dos quais, usando 6 diversas vistas de retratos de imagens a partir de vários ângulos, que identificam visualmente um ponto descendente ou um descendente voxel que pertença a um volume irregular e que depois usa software separado de escrita personalizada para extrair todos os voxels mutuamente vizinhos entre si que são presumivelmente pertencentes ao mesmo volume irregular. No entanto, estes tornam-se ineficientes, trabalhosos e consumidores de tempo para usar tais processos e fluxos de trabalho para identificar um grande número de volumes irregulares. 0 problema é ainda maior se alguém estiver interessado em identificar todos os volumes irregulares num conjunto de dados muito grande. Além disso, não foram sugeridos meios práticos e eficientes para manipulação adicional ou análise de volumes irregulares extraídos desta maneira.
Seria desejável para fornecer um sistema eficiente para identificação, renderização e de outra forma de trabalho com volumes irregulares individuais representados dentro de um ou mais volumes do conjunto de dados. A presente invenção resolve estes problemas e deficiências e outros da maneira descrita abaixo. I. Gargantini et. al. "Adaptive Display of Linear Octrees", Computers and Graphics, Vol. 13, No. 3, pp 337-343, 1989 descreve um algoritmo de visualização do volume de renderizão que transforma um objeto sólido armazenado numa forma de um octree (árvore de oito) linear para uma sequência de saída fora das coordenadas dos píxeis no espaço da imagem bidimensional. Uma projeção frontal geométrica é usada para a visualização da superfície.
Sumário da Invenção 7 A presente invenção refere-se a identificar, armazenar, renderização gráfica e execução de outras operações volumétricas sobre volumes irregulares representados em voxel ou célula com formato tridimensional. A entrada de dados volumétricos pode ser, por exemplo, do tipo reunido em estudos geológicos em que é desejado identificar e trabalhar com volumes irregulares representando depósitos de hidrocarboneto, corpos de sal ou caracteristicas geológicas relacionadas.
Para identificar um volume irregular, os critérios são introduzidos por um utilizador ou de outra forma estabelecidos que descrevem propriedades de um volume irregular de interesse, e cada um ou mais conjuntos de dados de volume é introduzido e processado através da procura nestes mesmos de volumes irregulares que cumpram esses critérios. 0 processamento implica encontrar automaticamente um descendente voxel ou célula descendente que cumpra os critérios e assim pertença a um volume irregular de interesse, e depois identificar as células relacionadas à célula descendente por uma ou mais relações predeterminadas que são portanto também para ser agrupadas nesse volume irregular. As relações predeterminadas podem ser, por exemplo, que as células do volume irregular vizinho ou outras células do volume irregular estejam dentro de uma predeterminada distância de alguns pontos predeterminados, que as células do volume irregular cumpram predeterminadas condições da ondaleta, que as células pertencem a um volume irregular em algumas faixas de tamanho predeterminado, ou qualquer outro relacionamento apropriado predeterminado. Informação, que pode ser de qualquer tipo adequado, que identifica cada célula como estando relacionada com outras células e que pertence a um volume irregular é armazenada numa estrutura de dados 8 adequada. A localização ou informações similares de vizinhança e outros dados descrevendo propriedades ou atributos da célula identificada são também guardados.
Um volume de entrada não precisa de ser processado na sua totalidade da maneira acima descrita. Em vez disso, uma extensão pode ser especificada por um utilizador ou de outro modo estabelecido que identifica somente uma parte do volume de entrada. Dividindo um volume de entrada em tais parcelas ou pedaços permite-lhes que sejam processados (em que "processamento" pode incluir visualização), separadamente em, por exemplo, um multiprocesso, multisegmento, processamento paralelo, ou sistema computacional multitarefa similar, ou processados por diferentes sistemas computacionais ou em momentos diferentes .
Dado que as estruturas de dados das células podem ser acedidas individualmente, de forma aleatória e eficiente, partes selecionadas de um ou mais volumes irregulares identificados podem ser renderizados numa visualização ou ter outras operações realizadas sobre estes, tais como comparação entre eles, fusão, divisão em volumes irregulares adicionais, aplicação de filtros, usando um como modelo para aplicar operações a outro conjunto de volume irregular, e a quaisquer outras operações Booleanas, aritméticas e algorítmicas adequadas. Cada voxel ou célula contém todas as informações necessárias para o renderizar totalmente. Os métodos convencionais somente de renderização, tais como raycasting e splatting, podem ser modificados para usar as novas estruturas de dados da presente invenção, mas porque a localização e outras propriedades de cada voxel no volume irregular ou parte do mesmo a ser renderizado foi predeterminado, tais métodos de 9 renderização convencional podem ser feitos computacionalmente de forma menos complexa e, assim podem ser realizados mais rapidamente e eficientemente.
Além disso, os volumes irregulares sobre os quais as operações são realizadas podem ser os identificados dentro de um volume de entrada único ou em diferentes volumes de entrada. Por outras palavras, podem ser realizadas operações através de volumes irregulares identificados em múltiplos volumes de conjuntos de dados.
Noutro aspeto da invenção, os dados podem ser pré-processados para converter os mesmos para novas primitivas voxel. Cada voxel do volume irregular é representado por um poliédrico em que os estados das faces (por exemplo, "ligado" ou "desligado") são codificados por uma série de bits. Outras informações, tais como as normais, posição e parâmetros semelhantes de renderizações conhecidos na técnica, podem também ser codificados. As faces podem ser facilmente convertidas mesmo em primitivas ainda mais simples, tais como triângulos ou quadrados, se, por exemplo, se se desejar renderizar os dados usando uma placa aceleradora gráfica que não tenha primitiva voxel.
Embora a forma de realização ilustrada da invenção relacionar-se com dados de volumes sismicos, a presente invenção é aplicável a qualquer volume de dados adequado, tais como os usados em imagiologia médica e outras disciplinas. É preciso entender-se que tanto a anterior descrição geral e a descrição detalhada seguinte são somente exemplificativas e explicativas e não são restritivas da invenção, como reivindicado.
Breve Descrição dos Desenhos 10
Os desenhos de acompanhamento ilustram uma ou mais formas de realização da invenção e, juntamente com a descrição escrita, servem para explicar os princípios da invenção. Sempre que possível, os mesmos números de referencia são usados ao longo dos desenhos para se referirem aos mesmos elementos ou idênticos de uma forma de realização, e em que: A figura 1 ilustra um sistema computacional num exemplar de forma de realização da presente invenção; A figura 2 é um fluxograma que ilustra um método para identificar e armazenar volumes irregulares e executar renderizações e outras operações sobre estes; A figura 3A é um fluxograma de segmentação ou da etapa de pré-processamento da Fig. 2; A figura 3B é uma continuação da Fig. 3A; A figura 3C é uma continuação das Figs. 3A-B; A figura 3D é uma continuação das Figs. 3A-C; A figura 3E é uma continuação das Figs. 3A-D; A figura 3F é uma continuação das Figs. 3A-E; A figura 3G é uma continuação das Figs. 3A-F; A figura 3H é uma continuação das Figs. 3A-G; e A Figura 31 é uma continuação das Figs. 3A-H. 11
Descrição Detalhada
Uma pessoa pode usar um computador, na generalidade ilustrado na Fig 1, para efeitos de identificação de volumes irregulares (VI), processamento, renderização, e outros métodos da presente invenção. Conforme descrito abaixo, devido aos novos algoritmos e métodos da presente invenção, o computador não precisa de ser uma poderosa estação de trabalho gráfico do tipo que são convencionalmente usadas para renderização de conjuntos de dados complexos tridimensionais, tais como as vulgarmente usadas em análises geológicas da subsuperficie; em vez disso, em algumas formas de realização da invenção pode ser um normal computador pessoal ou mesmo um computador portátil tendo poder relativamente limitado de memória, gráfico e de processamento. Um computador adequado tem, por exemplo, um processador 10, memória principal 12 em que os programas e os dados são armazenados durante a operação, controlo 14 de entrada/saida, um disco rigido 16 ou dispositivo semelhante em que os programas e dados são armazenados de forma não volátil, um teclado 18, um rato ou um dispositivo apontador semelhante 20, e um monitor de vídeo o outro dispositivo de visualização 22 em que os Vis 23 possam ser renderizados. Um acelerador gráfico 24 dos que são vulgarmente incluídos em computadores pessoais para facilitar renderização tridimensional pode também ser incluído. As pessoas peritas na matéria a que a invenção se refere entendem que, o computador inclui outros elementos de hardware ou software que não são ilustrados por motivos de clareza mas que são vulgarmente incluídos em tais computadores. Apesar de apenas um processador 10 ser ilustrado para maior clareza, podem existir múltiplas unidades centrais de processamento (UCP) , e o sistema pode ser multisegmento ou clusterizado para que o processamento possa ser efetuado por múltiplas UCPs ou computadores, e a 12 renderização das primitivas voxel (descritas abaixo) podem ser executadas por múltiplos sistemas independentes ou subsistemas de visualização de gráficos.
Descrito como conceitualmente residindo ou armazenado na memória 12 estão os seguintes elementos de software: um processador de segmentação 26; dados descendentes 28; dados de estruturas 30; pós-processador 31; e um renderizador 32. Como as pessoas peritas na técnica entendem, estes elementos de software são descritos como residindo na memória 12 por motivos de ilustrar conceptualmente o computador programado e não podem na realidade residir simultaneamente ou na sua totalidade; em vez disso partes de programas e dados relativos à presente invenção irão ser criados, armazenados, removidos e caso contrário aparecer na memória numa base de necessidade primária sobre o controlo do processador 10 de acordo com a sua programação. Tais elementos de software ou partes dos mesmos podem ser transferidos entre discos rígidos 16 e a memória 12 numa base de necessidade numa forma convencional familiar para as pessoas peritas na técnica. A programação (código) pode ser armazenada no disco rígido 16, tendo sido carregada de um CD-ROM (não exibido) ou outro disco removível, um computador remoto através de uma ligação de rede (não exibido), ou outra fonte de programa de código executável por computador. Processador de segmentação 26, pós-processador 31 e renderizador 32 são os principais elementos da programação; outros elementos mais convencionais da programação, tais como uma interface adequada ao utilizador, não são apresentados para fins de clareza, mas poderia ocorrer rapidamente a pessoas peritas na matéria tendo em vista estes ensinamentos. A presente invenção pode portanto ser incorporada não somente como um método e sistema mas também como um computador médio usável 13 ou programa no qual os elementos de software estão armazenados. Como observado acima, os elementos de outros softwares residem na memória 12 em algum momento e pelo menos em parte mas não são mostrados por motivos de clareza incluindo, por exemplo, um sistema operativo adequado, tal como MICROSOFT WINDOWS, UNIX ou LINUX.
Como ilustrado na Fig. 2, as maiores etapas dos métodos da presente invenção incluem uma segmentação ou etapa de pré-processamento 34, uma ou mais operações (36) de volumes irregulares (VI), e uma etapa de renderização 38. Antes da etapa de pré-processamento 34, um conjunto de dados de volume é introduzido na etapa 40. 0 volume do conjunto de dados na forma de realização ilustrada da invenção pode ser do tipo vulgarmente usado na análise geológica da subsuperficie. Como um conjunto de dados compreende tipicamente um largo número, frequentemente vários milhões ou biliões, de pontos de dados ou células no espaço tridimensional, cada um representando o valor de um atributo, tal como a amplitude de um sinal acústico refletido por caracteristicas da subsuperficie num ponto ou célula dentro de um volume tridimensional. Por outras palavras, o conjunto de dados representa um volume da subsuperficie. 0 volume pode conter um ou mais Vis representando reservatórios de hidrocarboneto ou outras caracteristicas volumétrica que podem ser distinguidas a partir do volume como um todo na base dos valores dos atributos. Conforme descrito em mais detalhe abaixo, a presente invenção pode identificar quaisquer Vis e armazenar representações deles em estruturas de dados de uma forma que facilita a eficiência e rapidez de execução de operações sobre estes e renderização destes. 14 A etapa 40 também pode incluir a definição de uma "extensão". Ou seja, um utilizador pode selecionar apenas uma parte ou subconjunto de um conjunto de dados de volume para fornecer o pré-processamento da etapa 34. Desta maneira, sobre controlo do utilizador ou de um algoritmo automatizado, um conjunto de dados de volume pode ser dividido em partes ou subconjuntos para que somente aqueles que sejam de interesse sejam processados ou para que as várias partes possam ser processadas separadamente de uma outra. Dividir conjuntos de dados de volume desta forma é especialmente propicio para sistemas multitarefa ou multiprocessamento de computação em que o processamento na etapa 34 pode ser realizado por vários processos essencialmente em paralelo um com o outro, um processo pode ser processado por uma parte enquanto outro processo está a processar outra parte. 0 pré-processamento da etapa 34 compreende uma etapa 42 de atravessar as células de volume do conjunto de dados de entrada até que uma célula descendente seja encontrada que satisfaça certos e predeterminados critérios de um VI do interesse do utilizador. São depois identificadas na etapa 44 outras células que estão relacionadas com a célula descendente de alguma maneira predeterminada. Por exemplo, estas podem ser relacionadas por adjacência. Conforme descrito abaixo, a etapa 44 pode ser executada por um algoritmo recursivo. A informação que descreve cada célula identificada é armazenada numa estrutura de dados na etapa 46. As informações podem incluir, por exemplo, o valor do atributo, tal como a amplitude que descreve as propriedades da célula, uma indicação da localização da célula identificada dentro do conjunto de dados de volume como um todo ou outra estrutura de referência, e um identificador que identifica unicamente as células identificadas como 15 pertencentes ao identificado VI. Assim, cada célula é marcada para identificar ο VI a que pertence. Uma célula "pertence" no sentido de que esta está relacionada com as outras células do VI de alguma maneira pré-determinada, como pela adjacência espacial (ou seja, as células estão dentro de uma predeterminada ou selecionada distancia uma da outra ou de um ponto de referencia ou as células estão dentro de um predeterminada ou selecionada vizinhança), por características de ondaleta, ou por algum outro atributo ou restrição. As etapas 42, 44, e 46 são realizadas até todas as células pertencentes a cada VI dentro do conjunto de dados de volume de entrada tenham sido identificadas. Note-se que mais que um conjunto de dados de volume ou parte dele pode ser processado desta forma. Os Vis resultantes que são identificados e armazenados podem assim ser aqueles contidos em diferentes volumes. Por exemplo, pode ser desejável para pré-processar uma pluralidade do conjunto de dados de volumes que representam retratos de volume de uma mesma subsuperficie em diferentes momentos para que os Vis dentro destes podem ser comparados para ver como as caracteristicas, tais como reservatórios de hidrocarboneto, possam ter mudado ao longo do tempo. É na etapa de operações de VI 36 que tais comparações e outras operações podem ser realizadas. Por exemplo, para comparar dois Vis que representem retratos do mesmo volume de superfície em momentos diferentes para determinar como este mudou, pode-se executar um Booleano E ou operação de interceção. Outras operações podem incluir um Booleano OU, ou operação de união, operações aritméticas, operações gradientes e qualquer outra operação conhecida na técnica para ser executada sobre um volume de dados geológico ou similar. Estas operações podem ser executadas de forma muito eficiente porque as estruturas de dados contêm toda a 16 informação necessária, tais como a localização de cada célula e os valores dos seus atributos; o conjunto de dados originais não necessita de ser acedido novamente.
Contudo as operações gradientes, por exemplo, são bem compreendidas por pessoas peritas na matéria a que a invenção se refere, as etapas podem compreender (no caso em que as primitiva voxel é, como descrito abaixo, um hexaedro ou cubo), determinando os normais para cada face do hexaedro e computando o gradiente (fnormal), utilizando o bem conhecido método das diferenças centrais.
Os Vis armazenados ou quaisquer Vis que resultem das operações da etapa 36 podem ser visualizados na etapa de renderização 38. Qualquer método de renderização apropriado tridimensional conhecido da técnica pode ser usado. No entanto, a etapa 38 pode, em alternativa, ou adicionalmente compreender um novo método de renderização da presente invenção que converte ou transforma os dados armazenados em gráficos primitivos voxel (poliédrico) e, em algumas formas de realização da invenção, em simples (por exemplo polígono, ponto, linha) gráficos primitivos. Por exemplo, na etapa 48 um utilizador pode selecionar um VI para renderizar. Na etapa 50 ο VI pode ser transformado numa representação voxel poliédrica. Por exemplo, cada célula pode ser representada com um voxel cúbico ou como cones (para fornecer uma indicação do vetor). 0 termo "voxel" é usado nesta especificação de patente para se referir a uma representação de software volumétrico de um objeto tridimensional que inclui informação suficiente para renderiza-lo e realizar outro processamento sobre este, sem recorrer a uma aproximação convencional de algoritmos de renderização tridimensionais tais como raycasting ou esquemas de texturização. 0 termo "célula" refere-se ao 17 correspondente objeto volumétrico cru que não inclui tais informações de renderização, embora possa incluir informação de atributos e outras informações. Na forma de realização ilustrada da invenção uma sequência de bits de exemplo é definida que inclui 6 bits, cada um indicando o estado de uma face do cubo. Se um bit é "1" será o rosto a ser visualizado, ou seja, está "ligado." se o bit é "0" o rosto não é para ser visualizado, ou seja é "desligado". Outro bit da sequência pode indicar se o voxel como um todo está "ligado" ou "desligado," dado que por vezes é desejável exibir todos os rostos. Outro bit da sequência pode indicar se o voxel está selecionado A seleção refere-se ao tipo de operação que um utilizador pode executar para selecionar algumas partes para a realização de uma operação sobre. Uma parte selecionada de um VI pode ser visualizada, por exemplo, de uma cor diferente do que as porções não selecionadas. Na transformação para uma célula voxel poliédrica primitiva, outra sequência de bits (por exemplo, 48 bits) que indica a localização do voxel pode ser gerada, como pode ainda outra sequência (por exemplo 12 bytes) indicar a informação normal. Como conhecido na técnica a informação normal é usada por motores de gráficos 3D para determinar o sombreamento adequada baseado na luz refletida do objeto com relação ao ponto de vista de uma ou mais fontes de luz.
Em formas de realização da invenção em que o acelerador gráfico 24 aceita primitivas voxel como entrada, os dados voxel resultantes podem ser fornecidos diretamente para o acelerador gráfico 24 para renderizar na etapa 54. Nas formas de realização em que os aceleradores gráficos 24 aceitam apenas as primitivas mais convencionais, tais como pontos, linhas e polígonos, cada voxel pode ser transformado em tais primitivas como na etapa 52. Por 18 exemplo, cada face de um cubo pode ser dividida em dois triângulos. Os triângulos são vulgarmente aceites como primitivas em muitos aceleradores gráficos disponíveis comercialmente 24.
Despovoamento pode também ser realizado na etapa 50. Despovoamento refere-se a uma operação de escala que renderiza os dados utilizando menos voxels quando o ponto de vista do utilizador está mais distante da imagem do que quando o ponto de vista do utilizador está mais perto. Por outras palavras se a visão é mais distante, um número de voxels pode ser renderizado como um único voxel. Assim, a etapa 50 dá resposta ao interface do utilizador indicando uma distância a partir de um ponto de vista da imagem. Cada célula pode ser despovoada assincronamente no momento de processar/renderizar porque cada célula contém a posição e a informação do estado. O despovoamento pode ocorrer durante a renderização ou processamento dependendo dos resultados desejados. Por exemplo, pode ser desejado misturar vários atributos num VI através da sua renderização em diferentes localizações de despovoamento. A figura 3A-I ilustra a etapa de pré-processamento 34 em mais detalhe. Na etapa 56 o utilizador identifica ou seleciona um conjunto de dados de volume para trabalhar. O utilizador pode também selecionar uma extensão ou parcela do conjunto de dados para trabalhar. Assim, o utilizador pode seletivamente particionar o conjunto de dados em múltiplas partes e processar somente parte delas ou ter um computador para processar estas em separado, por exemplo, por multiprocessamento. Em alternativa para o conjunto de dados particionados do utilizador, estes podem ser divididos automaticamente num número predeterminado de partes. 19
Na etapa 58, se o utilizador tiver indicado que a operação de união é para ser efetuada entre dois ou mais Vis, a etapa 60 é realizada. A etapa 60 é ilustrada em mais detalhe na Fig. 3G. Conforme ilustrado na Fig. 3G, se for determinado na etapa 62 que um volume Booleano ainda não existe, é alocado um na memória na etapa 64. Se existe um, então é redefinido na etapa 66. Na etapa 68 as células gestoras são inicializadas e definidas. Isto significa que uma série de campos da estrutura de dados são marcados para indicar que uma operação Booleana deve ser realizada. O processamento retorna à etapa 70 na Fig. 3A. São usadas uma serie de estruturas recursivas para reduzir a quantidade de pilha de memória que pode por sua vez ser necessária pelo hardware de sistema. Isto é, cada vez que uma função recursiva é chamada, uma estrutura de dados, que contém argumentos de função e outros dados, é criada na pilha. As séries de estruturas recursivas transferem efetivamente peso da memória para a pilha, onde a memória é alocada dinamicamente e desalocada e assim não limita um recurso como a pilha. Se for determinado na etapa 70 que determinada série ainda não existe, é criado uma na etapa 72.
Um bit volume é um objeto em que os seus elementos bit mapeiam um para um cada amostra ou elemento da série de volume de dados original. Isto é, este usa um elemento 1-bit para cada, 8, 16, 32, 64, etc., elemento de amostra bit. 0 objeto da série bit pode ser usado para eliminar a necessidade de realizar procuras ou ordenações, e disponibilizar uma estrutura para manter o estado transversal. Um contador bit volume é usado, em conjunção com o volume de dados original para continuar a eliminar o 20 ruído, através da manutenção de um bloco de rascunho num tamanho de calculo inicial irregular. Este também fornece uma forma de restringir o tamanho do Vis e das células que são para ser aceites. Pode ser usado também como uma mascara para áreas de não processamento. O bit contador do volume trabalha através do fornecimento de um esquema de verificação ligado/desligado e eliminando a necessidade de esquemas procura, que são proibitivos quando se utilizam grandes volumes de dados. Isto é, porque o acesso é aleatório, o tempo necessário para aceder a uma célula não é dependente da quantidade ou do tamanho dos dados. Se for determinado na etapa 74 que um contador bit volume existe, este é redefinido na etapa 76. Se não existe, então é criado um na etapa 78.
Um bit de estado de volume é usado, em conjunção com o volume de dados originais, para manter o processamento do estado transversal (para manter o controlo de células que foram processadas de modo a não reprocessar uma célula). O bit de estado de volume ajuda também à execução de operações Booleanas entre Vis e conjuntos de processamento de Vis juntos a partir de diferentes conjuntos de dados de volumes. É também usado para realizar a fusão de vários volumes de dados irregulares criados pela subdivisão do conjunto de dados originais em conjuntos de dados mais pequenos para serem processados por processos separados ou em alternativa processados em separado. Se for determinado na etapa 80 que existe um bit de estado de volume, é redefinido na etapa 82. Se não existir, é criado um na etapa 84.
Um ciclo é iniciado na etapa 85 em que amostras de células a partir do conjunto de dados de volume de entrada são processadas. A etapa 86 disponibiliza informações do 21 estado, tais como se os requisitos de memória foram excedidos, pelo interface do utilizador. Na etapa 88 é determinado se a amostra então atual cumpre os critérios predefinidos para a célula descendente. A amostra é considerada com uma célula descendente se: (1) os atributos correspondam aos predeterminados limites dos requisitos; (2) o bit de estado não está definido no estado do volume; (3) o bit contador não está definido no bit contador de volume; (4) a célula à esquerda da então atual célula de amostra não é uma célula válida; (5) a célula acima da então atual célula de amostra não é uma célula válida; e (6) a célula em frente da então atual célula de amostra não é uma célula válida. A condição (1) significa que o atributo é comparado com um ou mais limites predeterminados. Um limite pode ser, por exemplo, o valor de um atributo isolado, tal como a amplitude. Por exemplo, pode ser desejável ignorar algumas amostras que não tenham uma amplitude acima de determinado limite. A condição (2) significa que o algoritmo ainda não processou a célula, e assim continua uma candidata para identificação como uma célula para o atual VI ou como uma célula descendente para um VI diferente. Se o bit contador para o qual a condição (3) se refere está definido, isto significa que outro processo de procura já considerou essa amostra como uma célula descendente candidata e ou a célula já estava processada ou ο VI no qual a célula pertence não cumpriu o tamanho mínimo limite predefinido. (Um muito pequeno VI pode representar ruído em vez de uma caracterí stica da subsuperfície em que o utilizador possa estar interessado.) As condições (4), (5) e (6) referem-se à ordem em que as células da entrada do conjunto de dados de volume são processadas: da esquerda para a direita, depois de cima para baixo, depois de trás para a frente. Se a células do topo, esquerda ou da frente tiverem sido já processadas e 22 consideradas válidas, a célula de amostra atual foi já processada e pode ser descartada como uma célula descendente candidata. Note-se que as condições descritas acima que definem os critérios para uma célula descendente são somente exemplificativas; podem ser usados mais ou menos critérios.
Note que embora as células sejam atravessadas por uma célula para uma célula adjacente até que uma descendente seja encontrada, o procedimento não é tão limitado. Além de atravessar de uma célula para uma célula base sobre tais espaços adjacentes, o procedimento pode atravessar de célula para célula base sobre uma pesquisa de projeção passada ou vizinhança ou qualquer outro meio adequado para atravessar de uma célula para outra célula (não necessariamente adjacentes no espaço).
Se uma célula descendente é encontrada, então é iniciado um processo recursivo na etapa 90 em que o volume irregular ao qual célula descendente pertence é assignado a um identificador mestre, e cada célula nesse VI é identificada e adicionada a um campo contador de células VI. A informação que descreve cada célula identificada, tal como a sua localização e o identificador que identifica o volume irregular a que pertence, é armazenada numa estrutura de dados correspondentes a essa célula. O processo recursivo "processo VI de células descendentes" é descrito em detalhe mais adiante. 0 processo de procura de células descendente e processamento do VI ao qual cada célula descendente identificada pertence é repetido até que seja determinado na etapa 92 que todas as células do conjunto de dados de volume de entrada foram sujeitas a amostragem. 23 Várias operações de pós-processamento podem facilmente ser executadas assim que o Vis no volume de entrada tenha sido identificado e armazenado. Estas operações são essenciais para os conhecedores da técnica anterior para ser do interesse dos geologistas e outros utilizadores de tal sistema. Por exemplo, operações de união e operação de projeção são bem conhecidas. No entanto, o pré-processamento permite que tais operações sejam realizadas muito mais eficientemente e rapidamente do que se forem utilizados os algoritmos convencionais para os executar, porque não há necessidade de reprocessar volumes de dados e criar resultados de volumes do mesmo tamanho. Por exemplo, se na etapa 94 é determinado que o utilizador indica que uma operação de união necessita de ser executada, então na etapa 96 o processo de união que tira partido do pré-processamento é executado como descrito abaixo. Se na etapa 98 for determinado que o utilizador indicou que uma operação de projeção deve ser executada, então na etapa 100 uma operação de projeção que tira partido do pré-processador é executada. Em sistemas convencionais, raycasting ou outros algoritmos complexos são usados para executar operações de projeção e visualização. Na presente invenção, a projeção é uma etapa direta em que as pessoas peritas na técnica a que a invenção se refere são capazes de implementar com facilidade. Um único conjunto de informações geométricas pode ser descarregado para o hardware e renderizados continuamente, apenas mudando os parâmetros de vista. A etapa 102 indica que quaisquer outras das operações bem conhecidas podem ser realizadas antes de descarregar.
Por exemplo, uma operação que pode ser realizada na etapa 102 sobre um VI identificado é o atributo mínimo ou máximo da visualização de projeção. Ο VI é processado de modo a que todas as células que têm uma propriedade que as identifica com células da película, ou seja, as células na película do voxel exterior do VI, recebem um novo valor de atributo. Colunas das células do VI são processadas por determinação do número de voxels entre célula do topo, ou seja, a célula da película, e uma célula não existente dentro do bit volume. 0 bit volume é marcado com todas as células existentes. Os valores dos atributos das células de topo são então comparados com a célula contínua seguinte existente na coluna. 0 máximo ou, em outros casos, o valor mínimo do atributo, substitui o valor do atributo da célula do topo. A mesma operação é executada para as células inferiores. Esta projeção pode ser executada usando um normal ou vetor de vista/projeção que é disponibilizado.
Na etapa 104 podem ser efetuadas tarefas de limpeza tais como apagar o bit de estado e o bit de contador de volumes e o acumulado/pilha de recursos de memória antes que processamento termine. O processamento da união da etapa 96 é ilustrado na Fig. 3H-I. Na etapa 106 a próxima célula a ser processada no VI selecionado é identificada e a estrutura de dados correspondente no volume Booleano é examinado. Por exemplo, na etapa 108 é determinado se o bit "E" no conjunto da estrutura de dados está definido, indicando que uma operação Booleana deve ser realizada após o processamento, e todas as células são, portanto, para serem marcadas em conformidade para correlacionar corretamente o processamento apropriado das células. Se estiver definido, então o bit de inserção na localização correspondente no volume resultante, ou seja, um volume que representa os resultados da interceção, é definido. Se for determinado na etapa 112 que mais células no VI selecionado são para ser 25 processadas, o processamento retorna à etapa 106. Quando todas as células estiverem a ser processadas, é determinado na etapa 114 se o bit m_OUA está definido e se a célula existe na posição do volume de bit Booleano respetivo. Se estiver definido, na etapa 116 determinados campos das células que não são de interesse, ou seja, não são para ser processados, são redefinidos a zero. Um desses campos pode ser um campo de visibilidade/ATIVO que indica se a célula está ativada, ou seja, visível quando renderizada. Outra pode ser um indicador que é definido quando o processamento indica que a célula é para ser apagada mas que na realidade ainda não foi removida. OUA é um campo que indica que só há uma célula nessa posição do espaço nesse momento. Nenhum outro VI contém uma célula naquela posição. A inicialização é repetida para cada célula, conforme indicado pelas etapas 118 e 120. Quando todas as células tiverem sido processadas, na etapa 122 os identificadores VI são fundidos se o conjunto de dados de entrada foi processado em partes (ou seja, através da definição de extensões). Alternativamente, a fusão pode ocorrer mais tarde ou de alguma outra maneira, tal como num computador diferente.
Na etapa 124 é determinado se as células "E" estão ativadas, ou seja, se são para ser visíveis ou não no VI resultante quando visualizado. Se estes estiverem ativados, a etapa 126 representa uma rotina de ativação adequada ou método "ativaSomenteCélulasOUA". Esta rotina isola e marca todas as células que são identificadas usando a operação da célula OU, que podem ser visualizadas para processamento. Na etapa 128 é determinado se as células 'OUA' estão ativadas, ou seja, se estas são para ser visíveis ou não no VI resultante quando visualizado. Se estes estiverem ativados, a etapa 130 representa uma rotina de ativação adequada ou método "selecionaSomenteCélulasE". Esta rotina 26 identifica células que preenchem a condição Booleana E, que pode ser que duas células existam em dois VI diferentes de um ou mais conjuntos de dados ou para posterior processamento de células que ocupam a mesma localização espacial. Na etapa 132 é determinado que as células E são selecionadas, ou seja, se estas forem para ser visualizadas numa cor distinta quando ο VI resultante é visualizado. Se estas estiverem selecionadas, a etapa 134 representa uma rotina adequada ou método de isolamento de células que existem somente no primeiro volume. Por exemplo, células são isoladas se a operação Booleana E for executada entre dois IVs coexistentes, mas é desejável renderizar somente as células comuns que existem somente no primeiro VI. Na etapa 136 é determinado se o primeiro VI (das duas operações de união a decorrer) está ativo, ou seja, se ο VI como um todo for para ser visível ou não no VI resultante quando visualizado. Se estiver ativado, a etapa 138 representa uma rotina adequada ou método para renderizar somente as células marcadas que existem no segundo VI. Na etapa 140 é determinado se o segundo VI (as outras duas operações de união a decorrer) é ativado, ou seja, se ο VI como um todo é para ser visível ou não no VI resultante quando visualizado. Se estiver ativado, a etapa 142 representa uma rotina adequada ou método similar para este representado pela etapa 130 mas em que as células não estão unicamente marcadas com a cor selecionada durante a renderização. Por último, na etapa 144 são executadas algumas tarefas de limpeza, tais como apagar a tabela de informação, recarregar a tabela de informação e apagar os volumes Booleanos temporários, antes de o processamento regressar à etapa 96 e continuar para a etapa 98 como descrito acima. 27 A principal função recursiva chamada na etapa 90 é ilustrada na Figs. 3D-F. Conforme salientado acima, esta função extrai ou identifica o resto das células pertencentes ao VI às quais as células descendentes pertencem. Se for determinado na etapa 146 que o número de células até então contadas do atual VI, ou seja, ο VI que está no momento a processar, não está abaixo de algum predeterminado máximo, a função de chamada retorna da etapa 148, o que indica um erro ou problema. Se for determinado na etapa 150 que a célula atual, ou seja, a célula atualmente a processar, não está dentro do subvolume ou extensão selecionada, a função chamada é retornada da etapa 152, o que indica um erro ou problema. Se for determinado na etapa 154 que a célula atual foi já processada (por uma chamada recursiva anterior) , então a função de chamada é retornada da etapa 156. Como notado acima, o bit de estado indica se as células foram processadas. Se nenhumas destas condições resultarem no retorno de uma função de chamada antecipada, o processamento continua na etapa 158, onde o bit de estado na posição da célula correspondente no Bit de Estado de Volume é definido.
Se for determinado na etapa 160 que a célula atual é uma célula descendente, então é porque a primeira célula do VI a processar um Contador de Corpo Total, que é o número total de células internas e externas, é definido para zero numa tabela VI. A tabela VI é usada para manter informações sobre o objeto e estatísticas (mas não as informações que descrevem as células individuais do VI). As coordenadas ou localização da célula descendente são armazenadas na tabela. O atributo do descendente é armazenado na estrutura de dados da célula, que contém toda a informação relevante para cada célula, tal como a posição, normal, informação de face, e assim por diante. Armazenar informações sobre a 28 célula descendente, incluindo a sua localização, é benéfico porque permite que um VI seja extraído sem ter de procurar uma célula descendente.
As etapas 164, 166, 168, 170, 172 e 174 perguntam, respetivamente, se existe uma célula para a direita, esquerda, partes inferiores, topo, traseira e frontal da célula atual. A etapa 176 de forma semelhante pergunta se qualquer um dos outros 20 vizinhos de uma célula existem, tais como topo-frontal-direito, topo-frontal-esquerdo, etc. Note-se que uma célula cúbica tem um total de 26 vizinhos. Se algumas destas células vizinhas existem, o processamento passa para a etapa 178 em que o índice da célula adjacente, que é um indicador que indica que a célula está localizada na superfície exterior ou película do VI, está definido para o valor adequado. Então, se for determinado na etapa 180 que a célula atual é uma célula adjacente, na etapa 182 um indicador adjacente é definido como Verdadeiro, e no próximo deslocamento está definido. Um deslocamento é um valor que indica a que distância a célula está localizada numa série linear representando a série de bit ou série de atributo. Ou seja, todos os bits de volume e série de dados têm o mesmo deslocamento para uma célula numa posição espacial específica. Armazenar informação que indica se uma célula é uma célula adjacente permite que a película seja renderizada rapidamente se um utilizador desejar ver apenas a película voxel de um VI.
Na etapa 184 é determinado se a célula vizinha já foi processada. A célula vizinha é aquela que está à direita, esquerda, na parte inferior, topo, traseira e frontal da célula atual, dependendo de em qual das etapas 154-174 retornou um resultado verdadeiro. Se a célula vizinha foi processada, o processamento continua após a etapa 154-174 29 que retornou um resultado verdadeiro. Se a célula vizinha não tenha sido processada, então a função indicada na etapa 90 e ilustrada nestas figuras 3D-F é chamada novamente. A função, assim chama-se a si própria de uma forma recursiva até que todas as células pertencentes ao atual VI tenham sido identificadas e armazenadas. se a atual
Cada vez que a principal função recursiva retorna, o processamento continua na etapa 186, onde a contagem total de células do atual VI está incrementada. Então, na etapa 188 está determinado se o utilizador elegeu para processar ο VI na sua totalidade ou apenas as suas células adjacentes. Se apenas células adjacentes, então na etapa 190 um indicador de limite é definido, e a função retorna novamente. Um indicador de limite é um campo de dados que mantém uma contagem do número de células encontradas. Quando a contagem atinge uma predeterminada máxima, então, o indicador limite é definido, não são processadas mais células, e o processamento pára. Se o processamento de todas as células, então na etapa 192 a informação que descreve a célula está armazenada numa estrutura de dados de células. Uma destas estruturas de dados existe para cada célula de cada VI. Especificamente, a informação armazenada pode incluir, entre outras coisas, as coordenadas ou localização da célula atual, uma célula identificadora de corpo que identifica exclusivamente a célula, um valor de atributo da célula (por exemplo amplitude), e informações de vizinhança. 0 valor do atributo é útil porque uma VI pode ser usada como modelo para extrair eficientemente os valores dos atributos de outras Vis. A informação de vizinhança é uma sequência de bit codificado que indica onde existem atualmente células vizinhas. Por exemplo, um bit é definido como "I" se a célula atual tem um vizinho à sua esquerda, outro bit é definido como "I" 30 célula tem um vizinho por cima, e assim adiante. A informação de visibilidade da face do bit poliédrico corresponde e é inferido a partir da informação acima. Por exemplo, se um hexaedro (cubo) é usado, e se não houver uma célula vizinha, acima dela, então isso significa que a parte do topo da face do cubo voxel será visível, uma vez que está de frente para o exterior do VI. Se houver um vizinho de frente a parte inferior da célula, então a visibilidade da face será "desligada" para a face inferior do cubo, uma vez que está de frente para o interior do VI.
Se for determinado na etapa 194 que uma operação Booleana está a ser realizada no atual VI, então as células de um ou mais VIs são comparadas na etapa 196, e os seus campos de estrutura de dados são atualizados para uma renderização adequada. Por exemplo, se alguém desejar todas as células comuns, então o campo m_E de todas as células E serão definidas por "I". A função de chamada retorna depois à etapa 190.
Note-se que quando as primeiras chamadas da função recursiva retornam, o processamento continua a partir da etapa 90. Como descrito acima, o processamento que se segue à etapa 90 pode incluir não apenas visualização de Vis que foram identificados e armazenadas mas também as operações de união, operações de projeção e outras operações com as quais os peritos na técnica estão familiarizados porque todas as informações necessárias para realizar tais operações de maneira direta foram armazenadas em estruturas de dados. Contudo tais operações convencionais podem ser realizadas usando quaisquer algoritmos ou métodos adequados, note-se que a operação de renderização de uma imagem pode ser realizada usando o novo método de renderização descrito acima em relação à etapa 38 (Fig. 2). 31
Uma característica única do algoritmo acima descrito é que toda a geometria de renderização só precisa ser calculada uma vez. Os anteriores algoritmos voxel/pseudovoxel conhecidos na técnica, tais como esquemas de renderização raycasting, splatting, e esquemas de renderização baseados em textura, devem recalcular sua geometria cada vez que uma estrutura está a para ser processada e/ou quando a vista de renderização muda de direção. Adicionalmente, o novo algoritmo voxel primitivo descrito acima facilita
economicamente proporcionando um verdadeiro hardware 3D voxel primitivo utilizando hardware convencional 3D comercialmente disponível.
Deve igualmente notar-se que quebrando todo o volume em componentes espacialmente atómicos (volumes irregulares), os dados podem ser facilmente divididos em grupos a fim de equilibrar a execução do sistema e o desempenho da renderização nos sistemas multisegmento e multiprocesso. Em comparação, outros algoritmos têm de executar esquemas complicados de gestão de dados e executar vários tipos de computações cada vez que estão a renderizar uma estrutura e/ou cada vez que a vista de renderização muda de direção.
Será evidente para aqueles peritos que são peritos na técnica que várias modificações e variações podem ser feitas na presente invenção sem se afastar do âmbito da invenção. Outras formas de realização da invenção serão evidentes para os peritos na técnica considerando as especificações e práticas da invenção aqui divulgadas. Pretende-se que a especificação e os exemplos sejam considerados como unicamente como exemplos, com o âmbito da invenção a ser indicado pelas reivindicações seguintes. Lisboa, 13 de Janeiro de 2012

Claims (4)

1 REIVINDICAÇÕES 1. Um método para codificação voxel de um conjunto de dados de volume compreende uma multiplicidade de células, compreendendo as etapas de: definição de uma multiplicidade de voxels poliédricos, cada voxel poliédrico correspondendo a uma célula; armazenamento de uma representação de cada voxel, a representação incluindo uma sequência de face tendo uma pluralidade de bits, e uma sequência de posição tendo uma pluralidade de bits, cada bit da sequência de face correspondendo a uma das faces do voxel poliédrico e tendo um valor indicando se a face é para ser visualizada, a sequência de posição tendo um valor indicando uma posição espacial tridimensional do voxel poliédrico; e renderizar uma representação de cada voxel poliédrico, a sequência de face para pelo menos uma representação voxel poliédrica tendo um bit com um valor indicando pelo menos uma face é para ser visualizada para uma célula interna. 2. 0 método reivindicado na reivindicação 1, onde a etapa de renderizar a representação de cada voxel poliédrico compreende transformando cada face ou voxel a ser visualizado num primitivo selecionado do grupo consistindo de: ponto, linha e polígono. 3. 0 método reivindicado na reivindicação 1, onde a representação de cada voxel poliédrico armazenado numa memória inclui ainda um bit indicando se o voxel está selecionado. 4. 0 método reivindicado na reivindicação 1, onde a representação de cada voxel poliédrico armazenado numa 2 memória inclui ainda uma sequência normal tendo um valor indicando o sombreamento de cada face a ser visualizada. 5. 0 método reivindicado na reivindicação 1, em que: cada voxel poliédrico é representado num cubo tendo seis faces; e cada bit da sequência de face tem um valor indicando se a face é para ser visualizada. 6. 0 método reivindicando na reivindicação 5, adicionalmente compreendendo: a etapa de transformar cada face a ser visualizada num primitivo dividindo cada face em dois triângulos.
7. Um produto de programa de computador para codificação voxel de conjunto de dados de volume compreende uma multiplicidade de células compreendendo um computador médio utilizável carregando no mesmo uma: forma de definir uma multiplicidade de voxels poliédricos, cada voxel poliédrico correspondendo a uma célula; forma de armazenar uma representação de cada voxel poliédrico, a representação incluindo uma sequência de face tendo uma pluralidade de bits, e uma sequência de posição tendo uma pluralidade de bits, cada bit da sequência de face correspondendo a uma face do voxel poliédrico e tendo um valor indicando se a face é para ser visualizada, a sequência de posição tendo um valor indicando uma posição espacial tridimensional do voxel poliédrico; e forma de renderizar a representação de cada voxel poliédrico, a sequência da face para pelo menos uma representação voxel poliédrica tendo um bit com um valor indicando que pelo menos uma face é a ser visualizada para uma célula interna. 3 8. 0 produto de programa de computador reivindicado na reivindicação 7, onde as formas de renderizar a representação de cada voxel poliédrico compreende uma forma de transportar cada face a ser visualizada num primitivo selecionado do grupo consistindo de: ponto, linha e poligono. 9. 0 produto de programa de computador reivindicado na reivindicação 7, onde a representação de cada voxel poliédrico armazenado numa memória do computador inclui ainda um bit indicando se o voxel está selecionado.
10. O produto de programa de computador reivindicado na reivindicação 7, onde a representação de cada voxel poliédrico armazenado numa memória de computador inclui ainda uma sequência normal tendo um valor indicando o sombreamento de cada face a ser visualizada. 11. 0 produto de programa de computador reivindicado na reivindicação 7, em que: cada voxel poliédrico é representado como um cubo com seis faces; e cada bit da sequência de face tem um valor indicando se a face está a ser visualizada.
12. O produto de programa de computador e reivindicado na reivindicação 11, ainda compreendendo uma: forma de transformar cada face a ser visualizada num primitivo dividindo cada face em dois triângulos. Lisboa, 13 de Janeiro de 2012
PT02725716T 2001-04-18 2002-04-17 Renderizador de corpo de volume PT1381998E (pt)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US28471601P 2001-04-18 2001-04-18

Publications (1)

Publication Number Publication Date
PT1381998E true PT1381998E (pt) 2012-01-24

Family

ID=23091252

Family Applications (1)

Application Number Title Priority Date Filing Date
PT02725716T PT1381998E (pt) 2001-04-18 2002-04-17 Renderizador de corpo de volume

Country Status (10)

Country Link
US (3) US7412363B2 (pt)
EP (2) EP2362346B1 (pt)
AT (1) ATE541274T1 (pt)
AU (1) AU2002256265C1 (pt)
CA (4) CA2443110C (pt)
DK (2) DK1381998T3 (pt)
ES (1) ES2378357T3 (pt)
NO (1) NO331849B1 (pt)
PT (1) PT1381998E (pt)
WO (1) WO2002086796A1 (pt)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7412363B2 (en) * 2001-04-18 2008-08-12 Landmark Graphics Corporation Volume body renderer
US7356178B2 (en) * 2002-12-31 2008-04-08 Koninklijke Philips Electronics N.V. System and method for improved multiple-dimension image displays
JP3855053B2 (ja) * 2003-01-30 2006-12-06 国立大学法人 東京大学 画像処理装置、画像処理方法、及び画像処理プログラム
US7298376B2 (en) 2003-07-28 2007-11-20 Landmark Graphics Corporation System and method for real-time co-rendering of multiple attributes
ATE449356T1 (de) * 2004-06-02 2009-12-15 Paradigm France Verfahren zum aufbau einer dreidimensionalen zellularen aufteilung einer geologischen domäne
JP4424188B2 (ja) * 2004-12-10 2010-03-03 トヨタ自動車株式会社 内燃機関の制御装置
CA2674846C (en) * 2007-01-05 2017-01-03 Landmark Graphics Corporation, A Halliburton Company Systems and methods for visualizing multiple volumetric data sets in real time
US8150663B2 (en) * 2007-03-30 2012-04-03 Paradigm Geophysical (Luxembourg) S.A.R.L. Partitioning algorithm for building a stratigraphic grid
EP2223157A4 (en) 2007-12-13 2016-12-07 Exxonmobil Upstream Res Co ITERATIVE TANK SURVEILLANCE
AU2009238481B2 (en) 2008-04-22 2014-01-30 Exxonmobil Upstream Research Company Functional-based knowledge analysis in a 2D and 3D visual environment
US8736600B2 (en) * 2008-06-06 2014-05-27 Landmark Graphics Corporation Systems and methods for imaging a three-dimensional volume of geometrically irregular grid data representing a grid volume
WO2010039317A1 (en) * 2008-10-01 2010-04-08 Exxonmobil Upstream Research Company Robust well trajectory planning
AU2009311619B2 (en) * 2008-11-06 2015-10-01 Exxonmobil Upstream Research Company System and method for planning a drilling operation
US9536022B1 (en) 2009-06-01 2017-01-03 Paradigm Sciences Ltd. Systems and methods for modeling faults in the subsurface
US8600708B1 (en) 2009-06-01 2013-12-03 Paradigm Sciences Ltd. Systems and processes for building multiple equiprobable coherent geometrical models of the subsurface
US9418182B2 (en) 2009-06-01 2016-08-16 Paradigm Sciences Ltd. Systems and methods for building axes, co-axes and paleo-geographic coordinates related to a stratified geological volume
US8711140B1 (en) 2009-06-01 2014-04-29 Paradigm Sciences Ltd. Systems and methods for building axes, co-axes and paleo-geographic coordinates related to a stratified geological volume
JP2011022727A (ja) * 2009-07-14 2011-02-03 Sony Corp 画像処理装置および画像処理方法
US8933960B2 (en) * 2009-08-14 2015-01-13 Apple Inc. Image alteration techniques
US8922558B2 (en) * 2009-09-25 2014-12-30 Landmark Graphics Corporation Drawing graphical objects in a 3D subsurface environment
US8743115B1 (en) 2009-10-23 2014-06-03 Paradigm Sciences Ltd. Systems and methods for coordinated editing of seismic data in dual model
US8931580B2 (en) 2010-02-03 2015-01-13 Exxonmobil Upstream Research Company Method for using dynamic target region for well path/drill center optimization
US8731872B2 (en) * 2010-03-08 2014-05-20 Exxonmobil Upstream Research Company System and method for providing data corresponding to physical objects
US9367564B2 (en) 2010-03-12 2016-06-14 Exxonmobil Upstream Research Company Dynamic grouping of domain objects via smart groups
US20110227934A1 (en) * 2010-03-19 2011-09-22 Microsoft Corporation Architecture for Volume Rendering
US8731887B2 (en) 2010-04-12 2014-05-20 Exxonmobile Upstream Research Company System and method for obtaining a model of data describing a physical structure
US8727017B2 (en) 2010-04-22 2014-05-20 Exxonmobil Upstream Research Company System and method for obtaining data on an unstructured grid
US8731873B2 (en) 2010-04-26 2014-05-20 Exxonmobil Upstream Research Company System and method for providing data corresponding to physical objects
US9134454B2 (en) 2010-04-30 2015-09-15 Exxonmobil Upstream Research Company Method and system for finite volume simulation of flow
EP2599029A4 (en) 2010-07-29 2014-01-08 Exxonmobil Upstream Res Co METHODS AND SYSTEMS FOR AUTOMATIC LEARNING FLOW SIMULATION
WO2012015518A2 (en) 2010-07-29 2012-02-02 Exxonmobil Upstream Research Company Methods and systems for machine-learning based simulation of flow
EP2599032A4 (en) 2010-07-29 2018-01-17 Exxonmobil Upstream Research Company Method and system for reservoir modeling
WO2012018428A1 (en) 2010-08-04 2012-02-09 Exxonmobil Upstream Research Company System and method for summarizing data on an unstructured grid
US8731875B2 (en) 2010-08-13 2014-05-20 Exxonmobil Upstream Research Company System and method for providing data corresponding to physical objects
US9593558B2 (en) 2010-08-24 2017-03-14 Exxonmobil Upstream Research Company System and method for planning a well path
BR112013002114A2 (pt) 2010-09-20 2016-05-17 Exxonmobil Upstream Res Co formulações flexíveis e adaptáveis para simulações de reservatório complexas
US9466127B2 (en) * 2010-09-30 2016-10-11 Apple Inc. Image alteration techniques
US8819017B2 (en) * 2010-10-15 2014-08-26 Microsoft Corporation Affinitizing datasets based on efficient query processing
CA2823017A1 (en) 2011-01-26 2012-08-02 Exxonmobil Upstream Research Company Method of reservoir compartment analysis using topological structure in 3d earth model
TWI421793B (zh) * 2011-01-31 2014-01-01 Univ Nat Taipei Technology 資料處理系統和方法
AU2011360212B2 (en) 2011-02-21 2017-02-02 Exxonmobil Upstream Research Company Reservoir connectivity analysis in a 3D earth model
US9223594B2 (en) 2011-07-01 2015-12-29 Exxonmobil Upstream Research Company Plug-in installer framework
CN103959233B (zh) 2011-09-15 2017-05-17 埃克森美孚上游研究公司 在执行eos计算的指令受限算法中最优化矩阵和向量运算
US9645275B2 (en) 2011-09-22 2017-05-09 Schlumberger Technology Corporation Integrated dip from 3D resistivity tool and borehole imaging tool
US10114134B2 (en) 2012-03-02 2018-10-30 Emerson Paradigm Holding Llc Systems and methods for generating a geological model honoring horizons and faults
CN102651144A (zh) * 2012-03-30 2012-08-29 北京师范大学 一种地质体线性八叉树快速动态生成的方法
US9759826B2 (en) 2012-04-03 2017-09-12 Paradigm Sciences Ltd. System and method for generating an implicit model of geological horizons
WO2013169429A1 (en) 2012-05-08 2013-11-14 Exxonmobile Upstream Research Company Canvas control for 3d data volume processing
AU2013324162B2 (en) 2012-09-28 2018-08-09 Exxonmobil Upstream Research Company Fault removal in geological models
EP3418778B1 (en) 2013-03-15 2020-07-15 Emerson Paradigm Holding LLC Systems and methods to build sedimentary attributes
US9224235B2 (en) * 2013-03-20 2015-12-29 Nvidia Corporation System, method, and computer program product for compression of a bounding volume hierarchy
WO2014200685A2 (en) 2013-06-10 2014-12-18 Exxonmobil Upstream Research Company Interactively planning a well site
US9864098B2 (en) 2013-09-30 2018-01-09 Exxonmobil Upstream Research Company Method and system of interactive drill center and well planning evaluation and optimization
US20150120264A1 (en) * 2013-10-28 2015-04-30 Schlumberger Technology Corporation Resevoir model tuning with complex parameter interactions
EP2869096B1 (en) 2013-10-29 2019-12-04 Emerson Paradigm Holding LLC Systems and methods of multi-scale meshing for geologic time modeling
US10422923B2 (en) 2014-03-28 2019-09-24 Emerson Paradigm Holding Llc Systems and methods for modeling fracture networks in reservoir volumes from microseismic events
EP3175265A1 (en) 2014-07-30 2017-06-07 ExxonMobil Upstream Research Company Method for volumetric grid generation in a domain with heterogeneous material properties
WO2016069171A1 (en) 2014-10-31 2016-05-06 Exxonmobil Upstream Research Company Handling domain discontinuity in a subsurface grid model with the help of grid optimization techniques
WO2016069170A1 (en) 2014-10-31 2016-05-06 Exxonmobil Upstream Research Company Methods to handle discontinuity in constructing design space for faulted subsurface model using moving least squares
US9460563B2 (en) * 2014-11-28 2016-10-04 Biosense Webster (Israel) Ltd. Differential mapping of a body organ
US9690002B2 (en) 2015-06-18 2017-06-27 Paradigm Sciences Ltd. Device, system and method for geological-time refinement
GB2555979B (en) * 2015-06-19 2021-05-26 Geoquest Systems Bv Efficient algorithms for volume visualization on irregular grids
US10466388B2 (en) 2016-09-07 2019-11-05 Emerson Paradigm Holding Llc System and method for editing geological models by switching between volume-based models and surface-based structural models augmented with stratigraphic fiber bundles
EP3559401B1 (en) 2016-12-23 2023-10-18 ExxonMobil Technology and Engineering Company Method and system for stable and efficient reservoir simulation using stability proxies
US10520644B1 (en) 2019-01-10 2019-12-31 Emerson Paradigm Holding Llc Imaging a subsurface geological model at a past intermediate restoration time
US11156744B2 (en) 2019-01-10 2021-10-26 Emerson Paradigm Holding Llc Imaging a subsurface geological model at a past intermediate restoration time

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4710876A (en) * 1985-06-05 1987-12-01 General Electric Company System and method for the display of surface structures contained within the interior region of a solid body
US4719585A (en) 1985-08-28 1988-01-12 General Electric Company Dividing cubes system and method for the display of surface structures contained within the interior region of a solid body
GB2190570B (en) * 1986-04-14 1991-01-23 Pixar Method and apparatus for imaging volume data
US4835712A (en) * 1986-04-14 1989-05-30 Pixar Methods and apparatus for imaging volume data with shading
US4751643A (en) * 1986-08-04 1988-06-14 General Electric Company Method and apparatus for determining connected substructures within a body
US5230040A (en) 1988-09-21 1993-07-20 Fuji Xerox Co., Ltd. Table calculating device
US4985856A (en) 1988-11-10 1991-01-15 The Research Foundation Of State University Of New York Method and apparatus for storing, accessing, and processing voxel-based data
US5150457A (en) * 1990-05-02 1992-09-22 International Business Machines Corporation Enhanced visualization using translucent contour surfaces
US5179598A (en) * 1990-05-31 1993-01-12 Western Atlas International, Inc. Method for identifying and displaying particular features of an object
JPH04246690A (ja) 1990-08-29 1992-09-02 Xerox Corp 高品質のイメージを並みの解像度で表示する方法
US5253171A (en) 1990-09-21 1993-10-12 General Electric Company Parallel processing method and apparatus based on the algebra reconstruction technique for reconstructing a three-dimensional computerized tomography (CT) image from cone beam projection data
US5319777A (en) 1990-10-16 1994-06-07 Sinper Corporation System and method for storing and retrieving information from a multidimensional array
US5557711A (en) 1990-10-17 1996-09-17 Hewlett-Packard Company Apparatus and method for volume rendering
US5166876A (en) 1991-01-16 1992-11-24 General Electric Company System and method for detecting internal structures contained within the interior region of a solid object
US5555352A (en) * 1991-04-23 1996-09-10 International Business Machines Corporation Object-based irregular-grid volume rendering
JP3191266B2 (ja) 1991-09-17 2001-07-23 株式会社日立製作所 イメージシミュレーションシステム
JPH07120434B2 (ja) 1992-01-29 1995-12-20 インターナショナル・ビジネス・マシーンズ・コーポレイション ボリュームレンダリングを行う方法及び装置
JPH087799B2 (ja) 1992-06-19 1996-01-29 インターナショナル・ビジネス・マシーンズ・コーポレイション データ視覚化装置および方法
US5361385A (en) 1992-08-26 1994-11-01 Reuven Bakalash Parallel computing system for volumetric modeling, data processing and visualization
US5383114A (en) 1992-10-05 1995-01-17 Western Atlas International, Inc. Method for displaying a volume of seismic data
US5799099A (en) 1993-02-12 1998-08-25 George S. Allen Automatic technique for localizing externally attached fiducial markers in volume images of the head
US5544283A (en) 1993-07-26 1996-08-06 The Research Foundation Of State University Of New York Method and apparatus for real-time volume rendering from an arbitrary viewing direction
US5454371A (en) 1993-11-29 1995-10-03 London Health Association Method and system for constructing and displaying three-dimensional images
US5842473A (en) 1993-11-29 1998-12-01 Life Imaging Systems Three-dimensional imaging system
JP3483929B2 (ja) * 1994-04-05 2004-01-06 株式会社日立製作所 3次元画像生成方法
US5570460A (en) 1994-10-21 1996-10-29 International Business Machines Corporation System and method for volume rendering of finite element models
US5782762A (en) 1994-10-27 1998-07-21 Wake Forest University Method and system for producing interactive, three-dimensional renderings of selected body organs having hollow lumens to enable simulated movement through the lumen
US5548694A (en) * 1995-01-31 1996-08-20 Mitsubishi Electric Information Technology Center America, Inc. Collision avoidance system for voxel-based object representation
US5586082A (en) * 1995-03-02 1996-12-17 The Trustees Of Columbia University In The City Of New York Method for identifying subsurface fluid migration and drainage pathways in and among oil and gas reservoirs using 3-D and 4-D seismic imaging
US6134564A (en) 1995-11-20 2000-10-17 Execware, Inc. Computer program for rapidly creating and altering presentation of parametric text data objects and associated graphic images
US5671136A (en) * 1995-12-11 1997-09-23 Willhoit, Jr.; Louis E. Process for seismic imaging measurement and evaluation of three-dimensional subterranean common-impedance objects
US5798982A (en) 1996-04-29 1998-08-25 The Trustees Of Columbia University In The City Of New York Method for inverting reflection trace data from 3-D and 4-D seismic surveys and identifying subsurface fluid and pathways in and among hydrocarbon reservoirs based on impedance models
US6012018A (en) * 1996-05-17 2000-01-04 Shell Oil Company Presentation and interpretation of seismic data
US5958012A (en) 1996-07-18 1999-09-28 Computer Associates International, Inc. Network management system using virtual reality techniques to display and simulate navigation to network components
US6061067A (en) 1996-08-02 2000-05-09 Autodesk, Inc. Applying modifiers to objects based on the types of the objects
US6647432B1 (en) 1996-08-19 2003-11-11 Geoquest, A Division Of Schlumberger Technology Corporation Distributed framework for intertask communication between workstation applications
US5781194A (en) 1996-08-29 1998-07-14 Animatek International, Inc. Real-time projection of voxel-based object
US6331116B1 (en) * 1996-09-16 2001-12-18 The Research Foundation Of State University Of New York System and method for performing a three-dimensional virtual segmentation and examination
US6343936B1 (en) * 1996-09-16 2002-02-05 The Research Foundation Of State University Of New York System and method for performing a three-dimensional virtual examination, navigation and visualization
US5986662A (en) 1996-10-16 1999-11-16 Vital Images, Inc. Advanced diagnostic viewer employing automated protocol selection for volume-rendered imaging
US6014343A (en) 1996-10-31 2000-01-11 Geoquest Automatic non-artificially extended fault surface based horizon modeling system
US6084989A (en) * 1996-11-15 2000-07-04 Lockheed Martin Corporation System and method for automatically determining the position of landmarks in digitized images derived from a satellite-based imaging system
US6115048A (en) 1997-01-21 2000-09-05 General Electric Company Fast method of creating 3D surfaces by `stretching cubes`
KR20000064774A (ko) 1997-01-24 2000-11-06 이데이 노부유끼 도형 데이터 생성 장치, 도형 데이터 생성 방법 및 그 매체
US6466239B2 (en) 1997-01-24 2002-10-15 Sony Corporation Method and apparatus for editing data used in creating a three-dimensional virtual reality environment
US6108446A (en) * 1997-02-18 2000-08-22 Hoshen; Joseph Method and apparatus for extracting cluster shape features from digital images
US6018497A (en) * 1997-02-27 2000-01-25 Geoquest Method and apparatus for generating more accurate earth formation grid cell property information for use by a simulator to display more accurate simulation results of the formation near a wellbore
US5966672A (en) 1997-07-28 1999-10-12 Knupp; Daniel F. Visualization technology method
US6008813A (en) 1997-08-01 1999-12-28 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Real-time PC based volume rendering system
US6246784B1 (en) 1997-08-19 2001-06-12 The United States Of America As Represented By The Department Of Health And Human Services Method for segmenting medical images and detecting surface anomalies in anatomical structures
US6188403B1 (en) 1997-11-21 2001-02-13 Portola Dimensional Systems, Inc. User-friendly graphics generator using direct manipulation
US6191787B1 (en) 1998-02-10 2001-02-20 Schlumberger Technology Corporation Interactively constructing, editing, rendering and manipulating geoscience models
US6026143A (en) 1998-02-11 2000-02-15 Analogic Corporation Apparatus and method for detecting sheet objects in computed tomography data
US6128365A (en) 1998-02-11 2000-10-03 Analogic Corporation Apparatus and method for combining related objects in computed tomography data
US6076400A (en) 1998-02-11 2000-06-20 Analogic Corporation Apparatus and method for classifying objects in computed tomography data using density dependent mass thresholds
US6067366A (en) 1998-02-11 2000-05-23 Analogic Corporation Apparatus and method for detecting objects in computed tomography data using erosion and dilation of objects
US6765570B1 (en) 1998-07-21 2004-07-20 Magic Earth, Inc. System and method for analyzing and imaging three-dimensional volume data sets using a three-dimensional sampling probe
US6915301B2 (en) 1998-08-25 2005-07-05 International Business Machines Corporation Dynamic object properties
NO984070D0 (no) 1998-09-04 1998-09-04 Norsk Hydro As Metode for visualisering og analyse av volumdata
US6771262B2 (en) 1998-11-25 2004-08-03 Siemens Corporate Research, Inc. System and method for volume rendering-based segmentation
US6195444B1 (en) 1999-01-12 2001-02-27 Analogic Corporation Apparatus and method for detecting concealed objects in computed tomography data
JP3569153B2 (ja) 1999-03-29 2004-09-22 富士通株式会社 図形編集装置、および図形編集方法、並びにそのためのプログラムを格納した記憶媒体
US6674894B1 (en) * 1999-04-20 2004-01-06 University Of Utah Research Foundation Method and apparatus for enhancing an image using data optimization and segmentation
US6304266B1 (en) 1999-06-14 2001-10-16 Schlumberger Technology Corporation Method and apparatus for volume rendering
US6707454B1 (en) 1999-07-01 2004-03-16 Lucent Technologies Inc. Systems and methods for visualizing multi-dimensional data in spreadsheets and other data structures
US6307573B1 (en) 1999-07-22 2001-10-23 Barbara L. Barros Graphic-information flow method and system for visually analyzing patterns and relationships
US6226596B1 (en) * 1999-10-27 2001-05-01 Marathon Oil Company Method for analyzing and classifying three dimensional seismic information
GB0017227D0 (en) 2000-07-14 2000-08-30 Schlumberger Ind Ltd Fully coupled geomechanics in a commerical reservoir simulator
GB2386811B (en) 2000-12-18 2005-06-08 Schlumberger Holdings Method and apparatus for visualization of 3D voxel data using lit opacity volumes with shading
US7412363B2 (en) * 2001-04-18 2008-08-12 Landmark Graphics Corporation Volume body renderer
US7045246B2 (en) * 2003-04-22 2006-05-16 The Aerospace Corporation Integrated thin film battery and circuit module

Also Published As

Publication number Publication date
CA2443110A1 (en) 2002-10-31
CA2936404A1 (en) 2002-10-31
NO20034643L (no) 2003-12-17
CA2443110C (en) 2014-02-11
CA2936413C (en) 2018-09-04
NO20034643D0 (no) 2003-10-17
CA2834997C (en) 2016-09-13
US20080297510A1 (en) 2008-12-04
CA2936413A1 (en) 2002-10-31
NO331849B1 (no) 2012-04-23
AU2002256265C1 (en) 2011-12-08
AU2002256265B2 (en) 2008-04-24
EP2362346A1 (en) 2011-08-31
CA2834997A1 (en) 2002-10-31
US7412363B2 (en) 2008-08-12
EP1381998A1 (en) 2004-01-21
CA2936404C (en) 2018-06-12
US20100286972A1 (en) 2010-11-11
ES2378357T3 (es) 2012-04-11
DK1381998T3 (da) 2012-02-06
US20020165689A1 (en) 2002-11-07
DK2362346T3 (da) 2013-10-07
EP1381998B1 (en) 2012-01-11
ATE541274T1 (de) 2012-01-15
US7991600B2 (en) 2011-08-02
EP2362346B1 (en) 2013-07-10
EP1381998A4 (en) 2007-07-18
WO2002086796A1 (en) 2002-10-31

Similar Documents

Publication Publication Date Title
PT1381998E (pt) Renderizador de corpo de volume
EP1815345B1 (en) Volume body renderer
AU2002256265A1 (en) Volume body renderer
Brodlie et al. Recent advances in volume visualization
Naylor et al. Application of BSP trees to ray-tracing and CSG evaluation
Tamminen et al. Ray-casting and block model conversion using a spatial index
e Silva Jr Parallel volume rendering of irregular grids
Livnat et al. Fast isosurface extraction methods for large image data sets
Livnat et al. Fast Iso-surface Extraction Methods for Large Imaging Data Sets
Bruckner Performing Maximum Intensity Projection with the Visualization Toolkit
Emsenhuber Visibility histograms in direct volume rendering
Bayeh REVO: A flexible, volumetric approach to mesh construction
Bittner Global visibility computations
Johnson Yarden Livnat, Steven G. Parker
Bezerianos Using Projection to Accelerate Ray Tracing
Shirazian SIMD and GPU-Accelerated Rendering of Implicit Models
Wang New algorithmic techniques for large scale volumetric data visualization on parallel architectures
Zhao et al. Pointsbased reconstruction and rendering of 3D shapes from large volume dataset
Muigg Scalability for volume rendering and information visualization approaches in the context of scientific data
SERRAYE Design and realization of a voxelization method via shaders
Petrík Iso-surface extraction from time-varying data: technical report no. DCSE/TR-2007-06
Ihle Segmentation of 3D Data