JP2009069930A - 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法 - Google Patents

粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法 Download PDF

Info

Publication number
JP2009069930A
JP2009069930A JP2007234989A JP2007234989A JP2009069930A JP 2009069930 A JP2009069930 A JP 2009069930A JP 2007234989 A JP2007234989 A JP 2007234989A JP 2007234989 A JP2007234989 A JP 2007234989A JP 2009069930 A JP2009069930 A JP 2009069930A
Authority
JP
Japan
Prior art keywords
particle
calculation
slice
dimensional
data structure
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2007234989A
Other languages
English (en)
Other versions
JP5371221B2 (ja
Inventor
Takahiro Harada
隆宏 原田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Prometech Software Inc
Original Assignee
Prometech Software Inc
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 Prometech Software Inc filed Critical Prometech Software Inc
Priority to JP2007234989A priority Critical patent/JP5371221B2/ja
Priority to US12/071,118 priority patent/US7920996B2/en
Priority to DE102008034519.9A priority patent/DE102008034519B4/de
Priority to KR1020080073990A priority patent/KR100960588B1/ko
Priority to FR0855232A priority patent/FR2920899B1/fr
Priority to GB0813935.4A priority patent/GB2452808B/en
Priority to CN2008101447163A priority patent/CN101388108B/zh
Publication of JP2009069930A publication Critical patent/JP2009069930A/ja
Application granted granted Critical
Publication of JP5371221B2 publication Critical patent/JP5371221B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • G06F30/23Design optimisation, verification or simulation using finite element methods [FEM] or finite difference methods [FDM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/454Multi-language systems; Localisation; Internationalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Data Mining & Analysis (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Image Generation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】粒子を用いた流体計算手法に基づく粒子法シミュレーションで近傍探索に用いる計算格子の用い方につきメモリの使用効率を良好にすることができる粒子法シミュレーションのためのスライスデータ構造、およびGPUへの実装方法を提供する。
【解決手段】CPUやGPU12を用いた粒子法シミュレーションのためのスライスデータ構造は、計算空間31についてのデータ構造であって、空間は多数のボクセル32で構成される3次元計算空間であり、Y軸に直交する複数のスライス31aを形成して、多数のボクセルを複数の2次元スライスで分割し、複数の2次元スライスの各々で、粒子が存するボクセルの存在範囲について最大と最小のボクセルの各々の開始座標を計算し、存在範囲を矩形の形状で囲むバウンディングボックスを決定し、複数の2次元スライス領域の各々のバウンディングボックスに含まれるボクセルについてメモリを確保する。
【選択図】図4

Description

本発明は、粒子を用いた流体計算手法に基づく粒子法シミュレーションで、近傍探索に用いる計算格子の用い方についてメモリ効率を良好にしかつ近傍粒子探索を効率化する粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのGPUへの実装方法に関する。
「粒子法シミュレーション」とは、対象とする物体を多数の粒子の集まり(集合)としてとらえ、多数の粒子の個々の挙動に注目して計算を行うシミュレーション手法である。コンピュータでの計算上、上記粒子には、通常、直径が一定である「球」が用いられる。物体の形状を球の集合体によって表現するとき、当該球の大きさ(直径)の決め方に依存して物体の形状の近似度または空間解像度が変化する。また、球の直径を変化させ、空間解像度を変化させることにより、コンピュータによるシミュレーション計算における計算精度と計算速度を制御することが可能となる。
近年、上記の粒子法シミュレーションを利用して流体等の挙動計算が行われ、コンピュータの表示装置の画面上で流動等の流体シミュレーションの研究が行われている(例えば非特許文献1を参照)。粒子法シミュレーション技術の研究は、コンピュータグラフィックス(CG)の基礎となる技術として重要である。
粒子法を用いた流体シミュレーションの手法にはMPS法(Moving Particle Semi-implicit Method)とSPH(Smoothed Particle Hydrodynamics)がある。MPS法は連続の式から導出するポワソン方程式を解いて非圧縮流れを計算するが、SPHは非圧縮条件を課さず、疑似非圧縮流れを計算する。そのためMPS法はSPHに比較して計算コストが高い。このため、コンピュータグラフィックスの分野ではSPHの手法が主流となっている。
上記の粒子法シミュレーションの研究では、従来、主にCPUを利用して計算アルゴリズムを作る方法は多く行われていた。しかし、近年では、GPU(Graphics Processing Unit:一般的にストリーミングプロセッサ)を利用した粒子法シミュレーションの研究も行われつつある。GPUは、グラフィックスの処理に特化するために、内部に複数のプロセッサが並列に演算処理を行うという構成になっている。このため、頂点の座標変換等の処理であれば、GPUはCPUに比較して極めて高速に処理することができる。またGPUは、シェーダと呼ばれるプログラムを書くことによって処理を制御できるため、グラフィックス以外の様々な処理に用いることもできる。そこで、粒子法シミュレーションに係る計算もGPUで高速化することも試みられている。例えば本発明者は、SPHのすべてのシミュレーションをGPUを用いて行う手法を開発した(例えば非特許文献2,3を参照)。
田中正幸等、「粒子法を用いた剛体計算手法の開発とコンピュータ・グラフィックスへの適用」、日本機械学会、第19回計算力学講演会講演論文集、701−702頁、2006 T. Harada, S. Koshizuka, and Y. Kawaguchi Real-time fluid simulation coupled with cloth. In Proc. of Theory and Practice of Computer Graphics, 2007. T. Harada, S. Koshizuka, and Y. Kawaguchi Smoothed particle hydrodynamics on gpus. In Proc. of Computer Graphics International, pages 63-70, 2007.
本発明者が提案した上記の手法では、粒子法シミュレーションにおける近傍粒子の探索に関して空間上に固定された格子を用いたため、メモリ効率が悪く、計算領域について制限が生じるという問題があった。
例えば、粒子を用いる流体計算手法は、格子を用いる流体計算手法に比して、一般的に計算格子を用いないため、細かい飛沫等も容易に計算でき、実際の流体挙動を表現できるという利点がある。他方、粒子を用いる流体計算手法は、計算粒子同士が接続関係を持たず、動的に粒子の配置を変更するため、或る座標での物理量を計算するためには各タイムステップで、当該座標の近傍に存在する粒子を探索する処理が必要となる。
近傍粒子探索を効率的に行うためには、計算領域に格子(計算格子)を配置し、或る粒子の番号を、当該粒子が入っているボクセル(またはバケットもしくはグリッド)に格納することで効率化を図ることができる。一般的には計算領域を内包するように計算格子が用意される。
上記において、計算格子を固定化して用意すると、流体の計算領域内の粒子分布が変化するときには、粒子が存在しないボクセルが多くなり、メモリの使用効率が悪くなる。シミュレーションプログラムが使用できるメモリの大きさは限りがあるため、計算格子に用いるメモリを少なくすればするほど、流体を表現する粒子に用いることができるメモリが増え、より大規模な流体シミュレーションを行うことができる。
以上の問題点から、粒子法シミュレーションの近傍粒子探索に用いる計算格子のメモリ効率を高めることが望まれている。
本発明の目的は、上記の課題に鑑み、粒子を用いた流体計算手法に基づく粒子法シミュレーションで、近傍粒子探索に用いる計算格子の用い方について、メモリの使用効率を良好にし、かつ近傍粒子探索を効率化することができる粒子法シミュレーションのためのスライスデータ構造を提供することにある。
また本発明の他の目的は、メモリの使用効率を良好にすることができる上記のスライスデータ構造を容易にGPUに実装化することができるスライスデータ構造を利用した粒子法シミュレーションのGPUへの実装方法を提供することにある。
本発明は、上記の目的を達成するために、次のように構成される。
請求項1に係る本発明の粒子法シミュレーションのためのスライスデータ構造は、CPUやGPU等を用いて粒子法シミュレーションの計算で用いられる空間についてのデータ構造であって、空間は多数のボクセルで構成される3次元計算空間であり、3次元計算空間で任意の1つの軸に直交する複数の2次元スライス領域(スライス)を形成することにより、多数のボクセル(格子)を複数の2次元スライス領域で分割し、複数の2次元スライス領域の各々で、粒子が存するボクセルの存在範囲について最大と最小のボクセルの各々の開始座標を計算することにより、存在範囲を矩形の形状で囲む矩形範囲(バウンディングボックス)を決定し、複数の2次元スライス領域の各々の矩形範囲内に含まれるボクセルについてメモリを確保することを特徴とする。
請求項2に係る本発明の粒子法シミュレーションのためのスライスデータ構造は、上記の構成において、粒子が存在するボクセルについて確保されたメモリの格納要素には当該粒子を特定する値(例えば粒子番号等)が格納されることを特徴とする。
請求項3に係る本発明の粒子法シミュレーションのためのスライスデータ構造は、上記の構成において、複数の2次元スライス領域の各々の矩形範囲内における或る点(x,y,z)が存在するボクセルのボクセル番号v(x,y,z)の計算は、各々の2次元スライス領域の矩形範囲を定義する値、スライス番号を決定する値、先頭番号を用いて行われることを特徴とする。
請求項4に係る本発明の粒子法シミュレーションのためのスライスデータ構造は、上記の構成において、粒子法シミュレーションの計算は近傍粒子探索の計算であり、近傍粒子探索の計算を効率化するために3次元計算空間が2次元スライス領域により分割されることを特徴とする。
請求項5に係る本発明の粒子法シミュレーションのためのスライスデータ構造は、上記の構成において、粒子法シミュレーションの計算について3次元計算空間を2次元スライス領域により分割する計算はGPUを用いて行われることを特徴とする。
請求項6に係る本発明のスライスデータ構造を利用した粒子法シミュレーションのGPUへの実装方法は、粒子法シミュレーションの近傍粒子探索の計算を効率化するためのデータ構造を構築し、そのデータ構造を用いて近傍粒子探索をGPU上で行うため必要なデータをテクスチャとしてビデオメモリに格納してGPUへ実装する方法であって、多数のボクセルで構成される3次元計算空間で任意の1つの軸に直交する複数の2次元スライス領域を形成して多数のボクセルを複数の2次元スライス領域で分割し、複数の2次元スライス領域の各々で、粒子が存するボクセルの存在範囲について最大と最小のボクセルの各々の開始座標を計算することにより、存在範囲を矩形の形状で囲む矩形範囲を決定し、さらに、少なくとも1次元のテクスチャを用意し、複数の2次元スライス領域の各々を定義するに最低限必要な4つの値をテクスチャのRGBAチャンネルに格納し、2次元テクスチャを用意し、粒子の粒子番号を前記2次元テクスチャに格納することを特徴とする。
請求項7に係る本発明のスライスデータ構造を利用した粒子法シミュレーションのGPUへの実装方法は、最低限の4つの値は、任意の2次元スライス領域(i)における先頭のボクセルの番号p、最小のボクセルの開始座標bxi,minとbzi,min、所定の軸方向のボクセル数nxであることを特徴とする。
本発明によれば、固定格子を用いず、3次元の計算空間を1つの軸方向に直交する2次元スライス領域に分割して、所定の矩形範囲すなわちバウンディングボックスと考え方を利用してメモリに格納するボクセルを制限したため、GPU等のビデオメモリを効率よく利用することができ、GPU等を用いた粒子シミュレーションの近傍粒子探索に用いるボクセル(格子)のメモリ効率を良好にすることができ、近傍粒子探索を効率化することができる。
以下に、本発明の好適な実施形態(実施例)を添付図面に基づいて説明する。
図1は、GPUを用いた粒子法シミュレーションで、近傍粒子探索の計算でスライスデータ構造を用い、このスライスデータ構造を利用して構築されるシミュレーション方法が実施されるコンピュータシステムの構成を示す。
コンピュータシステム10は、例えばPC(Personal Computer)を利用して構成され、演算処理部としての通常のコンピュータの演算処理を行うCPU11と、画像処理に特化された演算処理を行うGPU12を備えている。またコンピュータシステム10は、記憶装置としてメインメモリ13Aとビデオメモリ(VRAM)13Bを備え、周辺装置として少なくとも入力装置14および表示装置15を備えている。CPU11とGPU12とメインメモリ13Aと入力装置14と表示装置15はバス16を介して相互に接続されている。入力装置14は入力インタフェース17を介してバス16に接続され、表示装置15は出力インタフェース18を介してバス16に接続されている。またビデオメモリ13Bは、GPU12に直接に接続されている。ビデオメモリ13Bに対してはGPU12を通してデータの行き来が行われる。
CPU(中央演算処理装置)11は、例えばPC等に装備される通常的な演算処理部である。またGPU12は「Graphics Processing Unit(グラフィックス演算プロセッサ)」であり、画像演算処理を実行する。CPUには例えば「Core X6800」が使用される。
GPU12は、複数のプロセッサを内蔵して成り、並列計算機として用いられる。GPU12としては、例えばNVIDIA社製の「GeForce 8800GTX」が使用される。なお、GPU12で使用される製品はこれに限定されず、類似した構造・機能を有する他のストリーミングプロセッサを用いることができる。このGPU12は、メインメモリ13Aに格納された近傍粒子探索プログラム13A−1を実行し、粒子法シミュレーションにおける近傍粒子探索演算を実施する。近傍粒子探索プログラム13A−1は、近傍粒子探索に用いるデータ構造の構築を実行する。本発明に係る特徴的な構造を有するデータ構造の構築方法については後で詳細に説明する。
またGPU12は、メインメモリ13Aに格納された通常的な画像処理プログラム13A−2を実行し、近傍粒子探索の計算で得られかつテクスチャに格納された画像データを用いて画像処理を実施し、作成した画像データを用いて表示装置15の画面に描画(表示のためのレンダリング)する。表示装置15の画面には、粒子法シミュレーションの計算に基づいて、CG画像が表示される。
本実施形態の以下の説明では、例えば、粒子法シミュレーションに基づく流体シミュレーションの計算例が説明される。この流体シミュレーションの演算では、主にGPU12の特徴的な内部構造および機能を利用して、近傍粒子探索に用いるためのデータ構造の構築手法が実行される。本実施形態で説明されるデータ構造を、後述するごとく、「スライスデータ構造(またはスライスベースデータ構造」と呼ぶこととする。なおCPUを利用して実行することも可能である。
次に、図2を参照して上記のGPU12内の要部の基本構造を説明する。図2はGPU12の内部構造を模式的に示すブロック図である。GPU21は、並列的に配置された複数のプロセッサ21を備え、これらのプロセッサによる並列計算処理に基づいて、表示(描画)のためのレンダリングが実行される。特に本実施形態に係る近傍粒子探索に用いるデータ構造の構築(ボクセル(またはバケット)の構築)の方法によれば、1つのボクセルにに4個の粒子が存在するとき、4個の粒子の粒子番号を1つのピクセルのRGBAチャンネルの各々に書き込む。GPU12における当該ボクセルの構築の処理によって画像演算処理の高速化が実現される。
GPU12は、通常、前段側で並列的に配置された例えば8個のバーテックス(頂点)シェーダ(VS)22と、後段側で並列的に配置された例えば24個のフラグメントシェーダ(FS)23とを有している。複数のバーテックス(頂点)プロセッサ(21A)の各々で実行されるプログラムがバーテックスシェーダ22であり、フラグメントプロセッサ(21B)の各々で実行されるのがフラグメントシェーダ23である。
上記において、バーテックスプロセッサは、並列的に配置されたプロセッサであり、多数の頂点の座標変換(入力された頂点座標を、レンダリングされる画像の空間での座標に変換すること)を一斉に処理することに特化されたプロセッサである。GPU21は、頂点の座標変換を、CPUに比較して高速に計算することができる。バーテックスプロセッサの動作を指定するものがバーテックスシェーダである。
さらにGPU12には、深度テスト機能部24、カラーマスク機能部25、ステンシルテスト機能部26が備えられている。またブロック27はシェーダ指令分配部である。
GPU12を用いた粒子法シミュレーションで使用される本実施形態に係るデータ構造としての「スライスデータ構造」の基本的な概念について説明する。
粒子法に基づく流体計算では、各タイムステップで実行される近傍粒子探索のための計算に用いる空間(または領域)を設定する。この空間を「計算空間」と呼ぶ。この計算空間は、図3に示すごとく、互いに直交するX軸、Y軸、Z軸の3軸で定義される3次元の空間31である。計算空間31においては多数の格子32が用意される。多数の格子32は計算空間31を形成し、各格子32は一辺が「d」の小さい立方体である。本実施形態の説明では、当該格子32を「ボクセル」と呼ぶことにする。なお、「ボクセル」については、他に「バケット」または「グリッド」という呼び方もある。
上記の多数の格子すなわちボクセル32は無限の広がりを持っており、計算中には計算空間31上でその配置は変更されない。本実施形態による計算方法では、計算空間31を形成する上記の多数のボクセル32のうち、後述のごとく、必要なものだけビデオメモリ13B上に保持する。
なお従来の計算手法のごとく固定の格子を用いる場合には、計算空間内において計算領域のためのバウンディングボックスを定め、当該バウンディングボックスの内部のボクセルのために粒子の有無に拘わらずメモリを確保するようにしていた。つまり、粒子が存在しないボクセルについてまでメモリを確保するようにしていた。これに対して、本実施形態の計算手法では、原則的に、粒子が存在しているボクセルにメモリを確保するようにしている。
本実施形態の計算手法では、まず、計算空間31に関して1つの軸に直交する複数のスライス31aを形成し、計算空間31に用意された多数のボクセル32を複数のスライス31aのそれぞれに含まれるように分割する。各スライス31aの次元は、計算空間31の次元(3次元)よりも1次元低いものとなり、2次元である。各スライス31aの厚みに相当する寸法はボクセル32の一辺(d)にほぼ等しい。すなわち、スライス31aが直交する1つの軸の方向には1ボクセル分だけを有することになる。この「1つの軸」としては、例えばX軸、Y軸、Z軸などの任意の1つの軸を選択することができる。例えば「1つの軸」としてY軸を選択すると、スライス31aはXZ軸で決まるXZ平面方向に広がる2次元空間となる。以下では、3次元の計算空間31をY軸に垂直な2次元のスライス31aに分割した場合の例を説明する。
計算空間31を複数のスライス31aに分割した後に、それぞれのスライス31aでXZ軸方向に関してのバウンディングボックスを定義する。当該バウンディングボックスは、1つのスライス31a内において粒子が存在する領域を矩形の領域によって可能限り狭く確定するための境界で区切られる範囲を意味している。このスライス31aにおいてバウンディングボックスを定義することは、XZ軸方向における最大と最小のボクセルの開始座標bxi,max、bxi,min、bzi,max、bzi,minを計算することを意味する。ここで「i」はスライスを特定する番号を意味する。XZ軸方向における最大と最小のボクセルの開始座標bxi,max、bxi,min、bzi,max、bzi,minを計算することにより、当該1つのスライス31aのバウンディングボックスに含まれるボクセルの数、換言するとスライス31aに含まれるXZ軸方向のボクセルの数nx,nzは下記(数1)の(1)式と(2)式で求められる。
Figure 2009069930
上記のnx,nzを用いることにより番号iのスライス31aでのボクセルの数nは、n=nx×nzと求めることができる。本実施形態の計算手法では、各スライス内のバウンディングボックスの内部の領域のみのボクセルに関してメモリを確保する。
ここで、計算空間31はn個のスライス{S,S,S,…,Sn−1}に分解されるとする。最初のスライスSiでの先頭のボクセルの番号pはスライスSからSi−1にあるボクセルの数の和として下記の(数2)の(3)式を計算する。
Figure 2009069930
図4に、従来の計算手法による固定格子の構造を用いる場合のバウンディングボックスの例(A)と、本実施形態の計算手法によるボクセルを決めるためのバウンディングボックスの例(B)とを示す。図4の(A)と(B)では、図示されるごとくX軸、Y軸、Z軸が定義されている。図4の(A)と(B)は、Z軸方向に対して直交する1つのXY軸方向の1つの正方形の面(XY平面)で示している。図4の(A)と(B)において、正方形41で定められた範囲内の小さい正方形41aは1つのボクセルを示し、さらに円42はボクセル内に存在している粒子を示している。従って、正方形41の範囲内には粒子42が存在するボクセルと粒子42が存在しないボクセルとが含まれている。
図4の(A)と(B)でY軸方向に直交する番号43で示される層状の部分が前述したスライス31aに対応している。
なお、図4において上記の番号41a,42,43はそれぞれ一部のみを指しており、その他の同じものには番号を付するのを省略している。
従来の計算手法によれば、固定格子の構造であるため、図4の(A)に示されるごとく粒子の有無に関係なく正方形の範囲41(太い実線で示す)に含まれるすべてのボクセルについてメモリが確保されるように構築されるものであった。すなわち、粒子42の存在しない多数のボクセルについてまでメモリを確保する必要があった。これに対して、本実施形態の計算手法では、各スライスで定義されたバウンディングボックスが合成されて作られた領域44(太い実線で示す)、すなわち可能な限り粒子42が存在するボクセルだけを含むように狭く作られた領域44に含まれたボクセルについてメモリを確保するように構築される。
計算空間31に関して上記スライスを利用して前述のごとくバウンディングボックスを形成することによって、或る点(x,y,z)が存在するボクセルの番号は次のように計算される。
まずY軸方向の最小のボクセルの開始座標byminを用いて、その点が含まれるスライスの番号iを下記の(数3)に示す(4)式で計算する。
Figure 2009069930
そして点(x,y,z)のボクセル番号はv(x,y,z)は、下記の(数4)で示す(5)式で計算される。
Figure 2009069930
こうして上記の点(x,y,z)が存在するボクセルのボクセル番号が計算される。式(5)を参照すると、或る点が存在するボクセルの番号を計算するために必要な値は、各スライスのバウンディングボックスを定義する値bxi,min、bzi,min、nx、スライス番号を決定する値bymin、各スライスの先頭番号p、そしてボクセルの一辺の長さdであることが分かる。スライスを利用した上記のデータ構造を用いると、図4の(B)に示されるように、メモリを効率よく用いてボクセル(格子)を作ることができる。
以上によって、本実施形態による計算手法で特徴的なデータ構造である「スライスデータ構造」が作られる。上記のスライスデータ構造を実際に構築するためには、n個のスライス{S,S,S,…,Sn−1}の各々のバウンディングボックスを決定し、決定されたバウンディングボックスから各スライスの先頭番号を計算する。そして、ボクセル番号v(x,y,z)を計算するための上記4つの値(p、bxi,min、bzi,min、nx)を求めた後、これらの値をボクセルに書き込んでいく。これらの4つの値はバウンディングボックスを定義するための最低限の値であり、これらの値のみに限定されるものではない。
次に、上記スライスデータ構造に基づく計算手法がGPU12を用いて実行できるようにGPU12上に実装する仕組みについて説明する。
GPU12を用いた本実施形態の計算手法の実装について図5に示す。図5に示されるごとく、ビデオメモリ13Bでのデータ構造の設定の段階(S11)、計算空間31を分割する多数のスライス31aの各々でのバウンディングボックスの決定の段階(S12)、各スライス31aでの粒子の先頭番号の計算の段階(S13)、値の格納の段階(S14)、および値の読み出しの段階(S15)の5つの段階によって構成される。
なお上記の「スライスデータ構造」については、「スライスデータ構造の構築」という観点、および「スライスデータ構造の利用」という観点で把握することができる。「スライスデータ構造の構築」という観点によれば、「スライスデータ構造の構築」は、上記の5つの段階S11〜S15のうち、「データ構造の設定」、「バウンディングボックスの決定」、「先頭番号の計算」、および「値の格納」によって構成される。また「スライスデータ構造の利用」という観点によれば、上記の5つの段階S11〜S15のうち、「値の読み出し」により構成される。
以下、5つの段階S11〜S15での処理内容を分説する。
データ構造の設定の段階S11:
最初に、図6の処理フローを参照して、GPU12上での実装を可能にするためのデータ構造を説明する。GPU12上で計算を行うためには、計算空間におけるスライス、ボクセル、および粒子に関するデータをテクスチャ13B−1としてビデオメモリ13Bに格納することが必要である。
前述の通り計算空間31は複数のスライス31aに分割されるので、各スライス31aに必要とされる値、すなわち前述の4つの値p、bxi,min、bzi,min、nxを格納するために1次元のテクスチャを用意する(ステップS21)。複数のスライス31aの数が1次元テクスチャの大きさの最大値を超える場合には、2次元のテクスチャとすることもできる。各スライス31aに必要な4つの値p、bxi,min、bzi,min、nx は1次元テクスチャの1つのRGBAチャンネルに格納される(ステップS22)。RGBAチャンネルを利用して格納するため、通常、1枚のテクスチャで十分に対応することができる。
また、格子すなわちボクセルに保持する値を格納するために2次元テクスチャを用意する(ステップS23)。本実施形態の例において、ボクセルに保持する値は粒子番号である。2次元テクスチャを利用してボクセルに保持する粒子番号を格納する(ステップS24)。粒子番号を格納する2次元テクスチャを「インデックスプールテクスチャ」と呼ぶこととする。本実施形態の例では、1個のボクセルに1テクセルを割り当てるようにしている。この場合において、2次元テクスチャのテクセル数が、インデックスプールテクスチャに格納できるボクセルの最大数となる。
バウンディングボックスの決定の段階S12:
次に、図7の処理フローを参照してバウンディングボックスの決定の手順を説明する。スライス31aでのバウンディングボックスを決定するためには、まず各スライスでの最大と最小のボクセルの開始座標を計算する(ステップS31)。この計算の処理では、粒子のY座標値から当該粒子が属するスライスの番号を計算し、さらに各スライスに存在する粒子の座標の最大値と最小値を計算することにより行われる。GPU12を用いているので、当該GPU12では、粒子1個につき1個の頂点を割り当て、用意した前述の1次元テクスチャに書き込む(ステップS32)。
GPU12のバーテックスシェーダでは、粒子のY座標値から上記の式(4)を用いてスライス番号(i)を計算し、すなわち、上記した1次元テクスチャに書き込む位置を計算し(ステップS33)、計算した当該位置に頂点を書き込む(ステップS34)。そしてGPU12のフラグメントシェーダでは、X座標値およびZ座標値を「色」として出力する(ステップS35)。なお、最大値と最小値の選択は、GPU12のアルファブレンディングの機能を用いて行うことが可能である。
先頭番号の計算の段階S13:
通常、複数のスライス31aの各々でのXZ座標の最大値と最小値を用いることでそのスライス上のボクセルの数を計算することが可能である。先頭番号の計算は、各スライスにおいて式(3)を計算しなければならない。この処理を、スライスiについてnからni−1までの値を読み出して計算することになる。スライスの総数がmであるとすると、従来の計算手法によれば、(m(m+1))/2回のメモリアクセスが必要になり、このためメモリ転送速度により処理の速度が制限されることになる。
そこで、本実施形態の計算手法では、GPU12のバーテックスシェーダを利用した機能で実行される。
すなわち、スライスiに存在するボクセルの数niを読み出して(i+1)からm番目のスライスの先頭番号配列に加算していく。これによれば、m回のメモリアクセスで先頭番号を計算することができる。この処理はいわゆる「Scattering Operation」であり、GPU12を用いる場合にはバーテックスシェーダを用いて行うことができる。この処理は、スライスがm個あるとすると、要素数mの1次元配列に書き込むという処理である。つまり、GPU12を用いる場合には、m個のテクセルから成る1次元テクスチャに書き込む処理になる。スライスiに存在するボクセル数niを(i+1)番目からm番目のスライスの先頭番号配列に書き込む処理は、(i+1)番目のテクセルからm番目のテクセルまでの線分を描画することで行うことができる。
上記の処理は、GPU12の機能によれば、フラグメントシェーダの機能によりスライス内のボクセルの数を色として出力する。さらにGPU12のアルファブレンディングの機能により加算処理を行うことにより式(3)を評価し、各スライスの先頭番号を計算することが可能となる。
図8は、上記のスライスの「先頭番号の計算」の考え方を図解したものである。図8の(A)は、前述した図4の(B)の内容と同じである。図8の(B)は、(A)で示した下から上まで例えば10層のスライスの各々におけるバウンディングボックス内に含まれるボクセルの数を対応する箇所に数値で示している。図8の(C)は、各スライスのボクセルの数が加算される状態をイメージ的に図解したものである。図8の(D)は下側から上側に向かってスライスの総数に関する累積値を示すものである。
値の格納の段階S14:
上記のごとくして計算したスライスの先頭番号とバウンディングボックスを定義する値を用いて粒子番号をインデックスプールテクスチャに格納していく。
値の読み出しの段階S15:
図9に示した処理フローを参照する。粒子のY座標値からスライス番号を計算し(ステップS41)、当該スライスの先頭番号pとスライスでの最小値bxi,min、bzi,min、スライスでのX軸方向のボクセル数nxを読み出す(ステップS42)。これらの値を用いて上記の式(5)を計算し、その粒子に割り当てられているボクセルのインデックスを計算する(ステップS43)。計算されたインデックスに対応するテクセルへの値の書き込みは、粒子1個に頂点を1個を割り当て、そのテクセルの粒子番号を読み出すことで行われる(ステップS44)。
或る座標が存在するボクセルに格納されている値の読み出しは、その座標から値の格納時と同様にボクセルのインデックス、すなわちメモリのアドレスを計算することによって行われる。
スライスデータ構造を利用した本実施形態に係る計算手法は、粒子番号を格納する格子データ構造の構築と、粒子番号の格納までの処理をGPU12で行うことができ、それにより粒子法シミュレーションのすべての工程をGPU12上で行うことができる。
本実施形態に係る計算手法は、固定格子を用いず、計算領域の制限を受けないので、広い計算空間であっても容易に計算することができ、粒子が存在しないボクセルを排除することによりメモリを効率よく使用することができる。さらに、粒子の個数を大きくしても通常的な使用されるメモリを用いて粒子法シミュレーションを実行することができる。
本発明は、GPU等を用いた粒子シミュレーションの計算でビデオメモリの効率を良好にするのに利用される。
本発明に係る粒子法シミュレーションが実行されるコンピュータシステムの基本的な構成を示すシステム構成図である。 コンピュータシステムに実装されたGPUの内部の基本的構成を示すブロック図である。 3次元の計算空間を図示する斜視図である。 従来の固定格子(A)と本実施形態に係る格子(ボクセル)の決め方(B)とを対比して説明するための図である。 スライスデータ構造による計算手法をGPUに実装するための手順を示すフローチャートである。 データ構造の設定の段階についてのより具体的な手順を示すフローチャートである。 バウンディングボックスの決定の段階についてのより具体的な手順を示すフローチャートである。 スライスの「先頭番号の計算」の考え方を図解したものである。 値の読み出しの段階についてのより具体的な手順を示すフローチャートである。
符号の説明
10 コンピュータシステム
11 CPU
12 GPU
13A メインメモリ
13A−1 近傍粒子探索プログラム
13A−2 画像処理プログラム
13B ビデオメモリ
13B−1 テクスチャ

Claims (7)

  1. 粒子法シミュレーションの計算で用いられる空間についてのデータ構造であって、
    前記空間は多数のボクセルで構成される3次元計算空間であり、
    前記3次元計算空間で任意の1つの軸に直交する複数の2次元スライス領域を形成することにより、前記多数のボクセルを前記複数の2次元スライス領域で分割し、
    前記複数の2次元スライス領域の各々で、粒子が存するボクセルの存在範囲について最大と最小のボクセルの各々の開始座標を計算することにより、前記存在範囲を矩形の形状で囲む矩形範囲を決定し、
    前記複数の2次元スライス領域の各々の前記矩形範囲内に含まれる前記ボクセルについてメモリを確保することを特徴とする粒子法シミュレーションのためのスライスデータ構造。
  2. 前記粒子が存在する前記ボクセルについて確保された前記メモリの格納要素には前記粒子を特定する値が格納されることを特徴とする請求項1記載の粒子法シミュレーションのためのスライスデータ構造。
  3. 前記複数の2次元スライス領域の各々の前記矩形範囲内における或る点(x,y,z)が存在する前記ボクセルのボクセル番号v(x,y,z)の計算は、各々の前記2次元スライス領域の前記矩形範囲を定義する値、スライス番号を決定する値、先頭番号を用いて行われることを特徴とする請求項1記載の粒子法シミュレーションのためのスライスデータ構造。
  4. 前記粒子法シミュレーションの前記計算は近傍粒子探索の計算であり、前記近傍粒子探索の計算を効率化するために前記3次元計算空間が前記2次元スライス領域により分割されることを特徴とする請求項1記載の粒子法シミュレーションのためのスライスデータ構造。
  5. 前記粒子法シミュレーションの前記計算について前記3次元計算空間を前記2次元スライス領域により分割する計算はGPUを用いて行われることを特徴とする請求項1〜4のいずれか1項に記載の粒子法シミュレーションのためのスライスデータ構造。
  6. 粒子法シミュレーションの近傍粒子探索の計算を効率化するためのデータ構造を構築し、そのデータ構造を用いて近傍粒子探索をGPU上で行うため必要なデータをテクスチャとしてビデオメモリに格納してGPUへ実装する方法であって、
    多数のボクセルで構成される3次元計算空間で任意の1つの軸に直交する複数の2次元スライス領域を形成して前記多数のボクセルを前記複数の2次元スライス領域で分割し、
    前記複数の2次元スライス領域の各々で、粒子が存するボクセルの存在範囲について最大と最小のボクセルの各々の開始座標を計算することにより、前記存在範囲を矩形の形状で囲む矩形範囲を決定し、
    少なくとも1次元のテクスチャを用意し、
    前記複数の2次元スライス領域の各々を定義するに最低限必要な4つの値を前記テクスチャのRGBAチャンネルに格納し、
    2次元テクスチャを用意し、
    前記粒子の粒子番号を前記2次元テクスチャに格納する、
    ことを特徴とするスライスデータ構造を利用した粒子法シミュレーションのGPUへの実装方法。
  7. 最低限の前記4つの値は、任意の2次元スライス領域(i)における先頭のボクセルの番号p、最小のボクセルの開始座標bxi,minとbzi,min、所定の軸方向のボクセル数nxであることを特徴とする請求項3記載のスライスデータ構造を利用した粒子法シミュレーションのGPUへの実装方法。
JP2007234989A 2007-09-11 2007-09-11 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法 Active JP5371221B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2007234989A JP5371221B2 (ja) 2007-09-11 2007-09-11 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法
US12/071,118 US7920996B2 (en) 2007-09-11 2008-02-15 Sliced data structure for particle-based simulation, and method for loading particle-based simulation using sliced data structure into GPU
DE102008034519.9A DE102008034519B4 (de) 2007-09-11 2008-07-24 Aufgeteilte Datenstruktur, und Verfahren zum Laden einer Partikel-basierten Simulation unter Verwendung der aufgeteilten Datenstruktur in GPU, usw.
KR1020080073990A KR100960588B1 (ko) 2007-09-11 2008-07-29 슬라이스 데이터 구조를 구축하는 방법 및 슬라이스 데이터 구조를 이용한 입자법 시뮬레이션의 gpu 등으로의 실장 방법
FR0855232A FR2920899B1 (fr) 2007-09-11 2008-07-30 Structure de donnees en tranches et procede de chargement d'une simulation basee sur des particules utilisant une structure de donnees en tranches dans un gpu, etc
GB0813935.4A GB2452808B (en) 2007-09-11 2008-07-30 Sliced data structure
CN2008101447163A CN101388108B (zh) 2007-09-11 2008-07-30 切片数据结构和向gpu等的安装方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007234989A JP5371221B2 (ja) 2007-09-11 2007-09-11 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法

Publications (2)

Publication Number Publication Date
JP2009069930A true JP2009069930A (ja) 2009-04-02
JP5371221B2 JP5371221B2 (ja) 2013-12-18

Family

ID=39747180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007234989A Active JP5371221B2 (ja) 2007-09-11 2007-09-11 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法

Country Status (7)

Country Link
US (1) US7920996B2 (ja)
JP (1) JP5371221B2 (ja)
KR (1) KR100960588B1 (ja)
CN (1) CN101388108B (ja)
DE (1) DE102008034519B4 (ja)
FR (1) FR2920899B1 (ja)
GB (1) GB2452808B (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2509009A1 (en) 2011-04-05 2012-10-10 Japan Agency for Marine-Earth Science and Technology Particle simulator and method of simulating particles
WO2013042212A1 (ja) * 2011-09-20 2013-03-28 富士通株式会社 探索プログラム、探索装置、および探索方法
US8554527B2 (en) 2011-04-08 2013-10-08 Japan Agency For Marine-Earth Science And Technology Particle simulator and method of simulating particles
JP2015530636A (ja) * 2012-12-20 2015-10-15 中国科学院近代物理研究所 粒子流動のシミュレーションシステム及びその方法
KR101918393B1 (ko) 2017-03-17 2018-11-13 부산대학교 산학협력단 Gpu를 이용한 셀 기반 플라즈마 시뮬레이션 장치
CN109701273A (zh) * 2019-01-16 2019-05-03 腾讯科技(北京)有限公司 游戏数据的处理方法、装置、电子设备及可读存储介质
KR102181985B1 (ko) * 2019-12-13 2020-11-23 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
KR102181979B1 (ko) * 2019-12-13 2020-11-23 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
KR102200443B1 (ko) * 2019-12-13 2021-01-08 이에이트 주식회사 Lbm 기반의 유체 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램
KR102200444B1 (ko) * 2019-12-13 2021-01-08 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8289327B1 (en) * 2009-01-21 2012-10-16 Lucasfilm Entertainment Company Ltd. Multi-stage fire simulation
US8600708B1 (en) 2009-06-01 2013-12-03 Paradigm Sciences Ltd. Systems and processes for building multiple equiprobable coherent geometrical models of the subsurface
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
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
US8743115B1 (en) 2009-10-23 2014-06-03 Paradigm Sciences Ltd. Systems and methods for coordinated editing of seismic data in dual model
US8725476B1 (en) * 2010-05-04 2014-05-13 Lucasfilm Entertainment Company Ltd. Applying details in a simulation
GB2489526A (en) * 2011-04-01 2012-10-03 Schlumberger Holdings Representing and calculating with sparse matrixes in simulating incompressible fluid flows.
US8970592B1 (en) 2011-04-19 2015-03-03 Lucasfilm Entertainment Company LLC Simulating an arbitrary number of particles
US20140290531A1 (en) * 2011-08-16 2014-10-02 The University Of Chicago Methods of Designing Aggregates Optimized for Specified Properties
US9159162B2 (en) 2011-12-28 2015-10-13 St. Jude Medical, Atrial Fibrillation Division, Inc. Method and system for generating a multi-dimensional surface model of a geometric structure
EP2798544B1 (en) * 2011-12-28 2022-09-21 St. Jude Medical Atrial Fibrillation Division Inc. Method and system for generating a multi-dimensional surface model of a geometric structure
WO2014108733A1 (en) * 2013-01-08 2014-07-17 Freescale Semiconductor, Inc. Method and apparatus for estimating a fragment count for the display of at least one three-dimensional object
US20140324735A1 (en) * 2013-04-24 2014-10-30 International Business Machines Corporation Maximizing the utility of information in multiple intersecting data structures using platonic solids and related polyhedra and polytopes
JP6561233B2 (ja) * 2013-07-24 2019-08-21 ダッソー システムズ シムリア コーポレイション 等方性及びガリレイ不変性を強化した格子ボルツマン衝突演算子
US10795053B2 (en) 2013-10-29 2020-10-06 Emerson Paradigm Holding Llc Systems and methods of multi-scale meshing for geologic time modeling
CN105654519B (zh) * 2014-11-11 2019-06-04 阿里巴巴集团控股有限公司 空间位置确定几何对象的方法及其装置
US9690002B2 (en) 2015-06-18 2017-06-27 Paradigm Sciences Ltd. Device, system and method for geological-time refinement
US9836808B2 (en) 2015-06-23 2017-12-05 Nxp Usa, Inc. Apparatus and method for verifying image data comprising mapped texture image data
US11023993B2 (en) 2015-06-23 2021-06-01 Nxp Usa, Inc. Apparatus and method for verifying fragment processing related data in graphics pipeline processing
TW201805894A (zh) * 2016-05-06 2018-02-16 國立臺灣大學 三維渲染方法以及三維繪圖處理裝置
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
EP3531428A1 (en) * 2018-02-22 2019-08-28 Cell Therapy Catapult Limited Method for use in tissue engineering
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
CN113435075A (zh) * 2021-04-15 2021-09-24 温州大学 一种模拟海底能源管线遭受滑坡灾害冲击时引起荷载响应的计算机方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236342A (ja) * 2000-02-23 2001-08-31 Gazo Giken:Kk 多体問題解析装置に用いるアドレス装置
JP2007172169A (ja) * 2005-12-20 2007-07-05 Japan Agengy For Marine-Earth Science & Technology 粒子データ演算用プログラム並びに粒子データ演算装置及び方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5377129A (en) * 1990-07-12 1994-12-27 Massachusetts Institute Of Technology Particle interaction processing system
US5848260A (en) * 1993-12-10 1998-12-08 Exa Corporation Computer system for simulating physical processes
US6089744A (en) * 1997-12-29 2000-07-18 Exa Corporation Computer simulation of physical processes
US6556199B1 (en) * 1999-08-11 2003-04-29 Advanced Research And Technology Institute Method and apparatus for fast voxelization of volumetric models
US6864887B2 (en) * 2002-03-19 2005-03-08 Intel Corporation Classifying a voxel
US7023433B2 (en) * 2002-10-14 2006-04-04 Chung Yuan Christian University Computer-implemented method for constructing and manipulating a three-dimensional model of an object volume, and voxels used therein
US7098907B2 (en) * 2003-01-30 2006-08-29 Frantic Films Corporation Method for converting explicitly represented geometric surfaces into accurate level sets
US7349832B2 (en) * 2004-02-17 2008-03-25 Pixar Water particle manipulation
WO2006004877A2 (en) * 2004-06-30 2006-01-12 D.E. Shaw Research And Development, Llc Ewald summation method for molecular simulation
US7298372B2 (en) * 2004-10-08 2007-11-20 Mitsubishi Electric Research Laboratories, Inc. Sample rate adaptive filtering for volume rendering
KR20060131145A (ko) * 2005-06-15 2006-12-20 엘지전자 주식회사 이차원 영상을 이용한 삼차원 물체의 렌더링 방법
KR100809525B1 (ko) * 2005-12-08 2008-03-04 한국전자통신연구원 파티클 집합을 둘러싸는 곡면 메쉬 생성 시스템 및 방법
KR100721536B1 (ko) 2005-12-09 2007-05-23 한국전자통신연구원 2차원 평면상에서 실루엣 정보를 이용한 3차원 구조 복원방법
CN100465997C (zh) * 2006-12-05 2009-03-04 上海大学 基于元胞自动机的图像边缘检测算法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001236342A (ja) * 2000-02-23 2001-08-31 Gazo Giken:Kk 多体問題解析装置に用いるアドレス装置
JP2007172169A (ja) * 2005-12-20 2007-07-05 Japan Agengy For Marine-Earth Science & Technology 粒子データ演算用プログラム並びに粒子データ演算装置及び方法

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
CSND200800374004; 原田 隆宏: 'GPUを使った並列処理で物理シミュレーションを高速化' 日経エレクトロニクス 第979号, 20080602, pp.105-115, 日経BP社 *
CSNG200700010008; 原田 隆宏、越塚 誠一: 'GPUを用いた多層ポリゴンモデルの高速ボクセル化手法' 情報処理学会論文誌 第47巻 第10号, 20061015, pp.2959-2962, 社団法人情報処理学会 *
CSNG200700540012; 原田 隆宏 外3名: 'GPUを用いたリアルタイム剛体シミュレーション' 情報処理学会研究報告 Vol.2007 No.13, 20070220, pp.79-84, 社団法人情報処理学会 *
CSNG200900027015; 原田 隆宏 外3名: '複数のGPUを用いた粒子法シミュレーションの並列化' 情報処理学会論文誌 Vol.49 No.12, 20081215, pp.4067-4079, 社団法人情報処理学会 *
CSNJ200810038033; 原田 隆宏 外2名: 'GPUを用いたSmoothed Particle Hydrodynamicsの高速化' Visual Computing グラフィクスとCAD 合同シンポジウム2007 予稿集 , 20070623, pp.175-180 *
JPN6013004176; 原田 隆宏 外2名: 'GPUを用いたSmoothed Particle Hydrodynamicsの高速化' Visual Computing グラフィクスとCAD 合同シンポジウム2007 予稿集 , 20070623, pp.175-180 *
JPN6013004180; 原田 隆宏 外3名: 'GPUを用いたリアルタイム剛体シミュレーション' 情報処理学会研究報告 Vol.2007 No.13, 20070220, pp.79-84, 社団法人情報処理学会 *
JPN6013004181; 原田 隆宏、越塚 誠一: 'GPUを用いた多層ポリゴンモデルの高速ボクセル化手法' 情報処理学会論文誌 第47巻 第10号, 20061015, pp.2959-2962, 社団法人情報処理学会 *
JPN6013004186; 原田 隆宏、越塚 誠一: 'グラフィックスハードウェアを用いた高速なソリッドボクセライゼーション' 日本計算工学会論文集 No.20060023, 20060707 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2509009A1 (en) 2011-04-05 2012-10-10 Japan Agency for Marine-Earth Science and Technology Particle simulator and method of simulating particles
US8554527B2 (en) 2011-04-08 2013-10-08 Japan Agency For Marine-Earth Science And Technology Particle simulator and method of simulating particles
WO2013042212A1 (ja) * 2011-09-20 2013-03-28 富士通株式会社 探索プログラム、探索装置、および探索方法
JPWO2013042212A1 (ja) * 2011-09-20 2015-03-26 富士通株式会社 探索プログラム、探索装置、および探索方法
US9280838B2 (en) 2011-09-20 2016-03-08 Fujitsu Limited Computer product, search apparatus, and search method
JP2015530636A (ja) * 2012-12-20 2015-10-15 中国科学院近代物理研究所 粒子流動のシミュレーションシステム及びその方法
US10007742B2 (en) 2012-12-20 2018-06-26 Institute Of Modern Physics, Chinese Academy Of Sciences Particle flow simulation system and method
KR101918393B1 (ko) 2017-03-17 2018-11-13 부산대학교 산학협력단 Gpu를 이용한 셀 기반 플라즈마 시뮬레이션 장치
CN109701273A (zh) * 2019-01-16 2019-05-03 腾讯科技(北京)有限公司 游戏数据的处理方法、装置、电子设备及可读存储介质
CN109701273B (zh) * 2019-01-16 2022-04-19 腾讯科技(北京)有限公司 游戏数据的处理方法、装置、电子设备及可读存储介质
KR102181985B1 (ko) * 2019-12-13 2020-11-23 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
KR102181979B1 (ko) * 2019-12-13 2020-11-23 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
KR102200443B1 (ko) * 2019-12-13 2021-01-08 이에이트 주식회사 Lbm 기반의 유체 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램
KR102200444B1 (ko) * 2019-12-13 2021-01-08 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
WO2021117967A1 (ko) * 2019-12-13 2021-06-17 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
WO2021117966A1 (ko) * 2019-12-13 2021-06-17 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
WO2021117964A1 (ko) * 2019-12-13 2021-06-17 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
WO2021117972A1 (ko) * 2019-12-13 2021-06-17 이에이트 주식회사 Lbm 기반의 유체 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
FR2920899A1 (fr) 2009-03-13
CN101388108A (zh) 2009-03-18
KR100960588B1 (ko) 2010-06-03
FR2920899B1 (fr) 2012-03-16
US7920996B2 (en) 2011-04-05
DE102008034519B4 (de) 2019-07-11
JP5371221B2 (ja) 2013-12-18
KR20090027143A (ko) 2009-03-16
US20090070079A1 (en) 2009-03-12
GB2452808B (en) 2012-01-25
GB2452808A (en) 2009-03-18
CN101388108B (zh) 2011-11-23
GB0813935D0 (en) 2008-09-03
DE102008034519A1 (de) 2009-03-12

Similar Documents

Publication Publication Date Title
JP5371221B2 (ja) 粒子法シミュレーションのためのスライスデータ構造、およびスライスデータ構造を利用した粒子法シミュレーションのgpuへの実装方法
CN104183005B (zh) 图形处理单元和基于图块的渲染方法
EP1081655B1 (en) System and method for rendering using ray tracing
US8760450B2 (en) Real-time mesh simplification using the graphics processing unit
JP4463948B2 (ja) グラフィック・データを処理するためのプログラム可能な視覚化装置
Muigg et al. Interactive volume visualization of general polyhedral grids
JP5342761B2 (ja) 粒子法に基づく流体シミュレーションの表面構築方法、そのプログラム、およびそのプログラムを格納した記憶媒体
KR100935886B1 (ko) 그래픽스 처리 유닛을 이용한 사진트리 기반의 지형 렌더링 방법
US10217291B2 (en) Designing a modeled volume represented by dexels
RU2604674C2 (ru) Системы и способы для создания трехмерного текстурного атласа
TW201447813A (zh) 產生防鋸齒體素資料
Roosing et al. Fast distance fields for fluid dynamics mesh generation on graphics hardware
US7724254B1 (en) ISO-surface tesselation of a volumetric description
CN103403671B (zh) 用于光栅化的流压缩
Bayraktar et al. GPU-based neighbor-search algorithm for particle simulations
Huang et al. Parallel‐optimizing SPH fluid simulation for realistic VR environments
Ahrens et al. A modular extensible visualization system architecture for culled prioritized data streaming
Zhou et al. Rendering interior-filled polygonal vector data in a virtual globe
JP6942007B2 (ja) 画像処理装置、及びプログラム
Mikhaylyuk et al. Memory-effective methods and algorithms of shader visualization of digital core material model
Petr et al. Compact GPU-based visualization method for high-resolution resulting data of unstable oil displacement simulation
Abraham et al. Multiresolution visualization of massive black oil reservoir models
JP4518389B2 (ja) 三次元データから二次元データを生成し表示するシステムおよびプログラム
Horvat et al. Inclusion test for polyhedra using depth value comparisons on the GPU
Carvalho et al. Fluid Simulation on Surfaces in the GPU

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130917

R150 Certificate of patent or registration of utility model

Ref document number: 5371221

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250