SlideShare a Scribd company logo
1 of 42
Download to read offline
実践! QBVH
2013/8/24 レイトレ合宿
林 秀一
(http://d.hatena.ne.jp/shuichi_h)
※スライドの一部の図について
•以下の画像はwikipediaから借用しており、
ライセンスはwikipediaの表記に従います。
http://en.wikipedia.org/wiki/Bounding_volume_hierarchy
http://en.wikipedia.org/wiki/K-d_tree http://en.wikipedia.org/wiki/Octree
アジェンダ
1. 空間構造とは
2. なぜ必要?
3. さまざまな空間構造
4. 人気の空間構造
5. 空間構造の対価
6. よい空間構造とは
7. AABB
8. BVH
1. 構造
2. 構築
3. AABBとRayの交差判定
4. トラバースの流れ
9. QBVH
1. 特長
2. 構造
3. データ構造
4. 構築
5. 交差判定
6. トラバース早期打ち切り
10. 参考文献
空間構造とは
•空間を何らかのルールで区切った構造
•空間中のデータを高速に探索するために使
用される事が多い
なぜ必要?
•単純にレイトレを作ると プリミティブの数
レイの数 の交差判定が必要
•プリミティブやレイの数が増えるとすぐに非現
実的な処理時間になる
➡空間構造を使えば...
•交差判定処理の大部分を省ける
•計算量の増加がlogオーダーに抑えられる
なぜ必要?
•レイが当たった領域の中にある三角形だけ判定
すればよい
空間構造あり空間構造なし
空間構造の対価
•空間構造を格納するメモリ
•構築時間
•動的なシーンでは、更新も必要、
部分的に再構築する等の最適化も必要
よい空間構造とは
•交差判定が高速
•構築が高速
•メモリ使用量が少ない
•インコヒーレントなレイに対しても有効
(バラバラの方向からのレイにも有効)
さまざまな空間構造
Uniform Grid Octree
kd-tree BVH 等々...
Uniform Grid Octree
人気の空間構造
kd-tree BVH
レイトレでは、kd-tree と BVH が人気
AABB
•Axis-Aligned Bounding Box
•XYZ軸に平行なバウンディングボックス
•BVHで使用
BVH
Bounding Volume Hierarchy
BVH:構造
• 外側のAABBの中に、2つのAABBを含む
BVH:構造
•2分木になる
•葉はプリミティブ
•各ノードが自身のAABBを持つ
BVH:構造
•AABBは重なっていることもある
•あるノードの配下にあるオブジェクトはすべて、
そのノードのAABBに収まる
•空間的に収まっていても、そのノード配下とは限らない
BVH: 構築
よりよい方法はototoiさんのセミナーで!
方法1
中央の位置で分割
方法2
同数になるように分割
AABBとRayの交差判定
➡レイとBBoxが交わる範囲があるか否か判定する
Ray
AABB
•交差する位置座標を求める必要はない
•交差しているか、していないかだけ分かればOK
e
d
xmin
AABBとRayの交差判定
e …レイの始点
d …レイの方向
Ray
レイとAABBの交点を求める
AABBとRayの交差判定
txmin = (xmin - xe) / xd
レイdをtxmin倍すると xminと交わる
txmin倍
txmin
e
d
xmin
Ray
xd
xmin - xd
AABBとRayの交差判定
tymin
tymax
txmin
txmax
t [tymin, tymax]
t [txmin, txmax]
t [txmin, txmax] [tymin, tymax]
縦横で交わるtの範囲を求めて
tymax>txminか判定する
※縦横両方tというパラメータ空間の値なので比較できる
tymaxtxmin
AABBとRayの交差判定
レイの方向や、ゼロ除算によって出てくる+ , - ,を
考慮しても、最終的にシンプルなロジックになる。
詳細はRealistic Ray Tracing等を参照。
AABBとRayの交差判定
bool BBox::RayIntersect(const Ray &r, float tmin, float tmax)
{
// X軸
int sign = r.sign[0];
float t0 = (bb[sign].x - r.o.x) / r.dir.x;
float t1 = (bb[1-sign].x - r.o.x) / r.dir.x;
if (t0 > tmin) tmin = t0;
if (t1 < tmax) tmax = t1;
if (tmin > tmax) return false;
// Y軸
...
// Z軸
...
return true;
}
※もちろん割り算は予め1.f / r.dirを計算してRayに保存しておき、それとの掛け算にした方がいい
AABBとRayの交差判定
bool BBox::RayIntersect(const Ray &r, float tmin, float tmax)
{
// X軸
int sign = r.sign[0];
float t0 = (bb[sign].x - r.o.x) / r.dir.x;
float t1 = (bb[1-sign].x - r.o.x) / r.dir.x;
if (t0 > tmin) tmin = t0;
if (t1 < tmax) tmax = t1;
if (tmin > tmax) return false;
// Y軸
sign = r.sign[1];
t0 = (bb[sign].y - r.o.y) / r.dir.x;
t1 = (bb[1-sign].y - r.o.y) / r.dir.y;
if (t0 > tmin) tmin = t0;
if (t1 < tmax) tmax = t1;
if (tmin > tmax) return false;
// Z軸
sign = r.sign[2];
t0 = (bb[sign].z - r.o.z) / r.dir.z;
t1 = (bb[1-sign].z - r.o.z) / r.dir.z;
if (t0 > tmin) tmin = t0;
if (t1 < tmax) tmax = t1;
if (tmin > tmax) return false;
return true;
} ※もちろん割り算は予め1.f / r.dirを計算してRayに保存しておき、それとの掛け算にした方がいい
トラバースの流れ
1.RayとノードのBBoxを交差判定
(1)ヒットした場合
1)ノードが枝:
2つの子ノードをそれぞれ交差判定(再帰処理)
2)ノードが葉:
 交点の位置、色、法線等、必要な情報を格納
(2)ヒットしなかった場合
 何もせずreturn
QBVH: 特長
•SIMD命令を効果的に使用
•Binary BVH比 1.6∼2.0倍 高速
•kd-tree比 1.3∼1.6倍 高速
•メモリは10%∼50%削減
•インコヒーレントなレイに対しても有効
(※以上は、下記論文での主張です。)
H. Dammertz and J. Hanika1 and A. Keller: Shallow Bounding Volume Hierarchies for Fast
SIMD Ray Tracing of Incoherent Rays.
http://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.100/institut/Papers/QBVH.pdf
インコヒーレントなレイにも有効
•SIMDを使う別の手法:「レイパケット」の場合...
‣複数のレイをまとめてSIMDで交差判定
‣インコヒーレントなレイだとSIMDが有効に活用されず
➡一方でQBVHは、常にSIMDを有効活用する
QBVH:構造
•4つ(Quad)の子ノードを持つ
•子ノードのAABBは親のノードが持つ
•4つの子ノードのAABBをSIMDでまとめて
交差判定
Binary BVH Quad BVH
QBVH:構造
•ツリーが浅くなる
➡トラバース速そう
0
1
2
3
4
0
1
QBVH: データ構造
child0 child1 child2 child3
__m128
__m128
__m128
__m128
__m128
__m128
min x min x min x min x
min y min y min y min y
min z min z min z min z
max x max x max x max x
max y max y max y max y
max z max z max z max z
child0 idx child1 idx child2 idx child3 idx
axis top axis left axis right fill
1ノードあたり sizeof(float) * 8 * 4 = 128
QBVH: データ構造
child0 child1 child2 child3
__m128
__m128
__m128
__m128
__m128
__m128
min x min x min x min x
min y min y min y min y
min z min z min z min z
max x max x max x max x
max y max y max y max y
max z max z max z max z
child0 idx child1 idx child2 idx child3 idx
axis top axis left axis right fill
min/max xyz …子ノードのAABB
child idx …子ノードのインデックス
axis …分割軸 0:x 1:y 2:z
QBVH: データ構造
child0 child1 child2 child3
__m128
__m128
__m128
__m128
__m128
__m128
min x min x min x min x
min y min y min y min y
min z min z min z min z
max x max x max x max x
max y max y max y max y
max z max z max z max z
child0 idx child1 idx child2 idx child3 idx
axis top axis left axis right fill
SIMD処理できるように
SoA(Structure of Array)レイアウト
QBVH: データ構造
axis left
axis right
axis top
QBVH: 子ノードのindex
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
child idx:
32bit
空ならINT_MIN
QBVH: 子ノードのindex
枝or葉(1bit)
枝or葉のindex(31bit)
△ △ △ △ △ △ NULL △ △ △ △ △ NULL
先頭のインデックスを指す
葉のデータの配列:
child idx:
やり方 その1
QBVH: 子ノードのindex
枝or葉(1bit)
枝or葉のindex(31bit)
△ △ △ △ △ △ △ △ △ △ △ △ △
先頭のインデックスを指す
葉のデータの配列:
child idx:
やり方 その2
子の数(4bit)
QBVH: 子ノードのindex
枝or葉(1bit)
枝or葉のindex(31bit)
△ △ △ △ △ △ △ △ △ △ △ △ △
葉のデータの配列:
child idx:
やり方 その3
葉の数
葉のindex
その他情報
葉の数
葉のindex
その他情報
葉の数
葉のindex
その他情報
QBVH: 構築
•区切った領域をもう一段階、区切るだけ
•Binary BVHと同じ要領でOK
0
QBVH: 交差判定
•4つの子ノードのAABBをSIMDでまとめて
交差判定
•次項ソースコード参照
inline int SIMD_QBVH::IntersectSIMD(
const __m128 bboxes[2][3], // min-max[2] of xyz[3] of boxes[4]
const __m128 orig[3], // ray origin, xyz[3]
const __m128 idir[3], // ray inverse direction, xyz[3]
const int sign[3], // ray xyz direction -> +:0,-:1
__m128 tmin, __m128 tmax // ray range tmin-tmax
) const
{
// x coordinate
tmin = _mm_max_ps(
tmin, _mm_mul_ps(_mm_sub_ps(bboxes[sign[0]][0], orig[0]), idir[0])
);
tmax = _mm_min_ps(
tmax, _mm_mul_ps(_mm_sub_ps(bboxes[1 - sign[0]][0], orig[0]), idir[0])
);
// y coordinate
tmin = _mm_max_ps(
tmin, _mm_mul_ps(_mm_sub_ps(bboxes[sign[1]][1], orig[1]), idir[1])
);
tmax = _mm_min_ps(
tmax, _mm_mul_ps(_mm_sub_ps(bboxes[1 - sign[1]][1], orig[1]), idir[1])
);
// z coordinate
tmin = _mm_max_ps(
tmin, _mm_mul_ps(_mm_sub_ps(bboxes[sign[2]][2], orig[2]), idir[2])
);
tmax = _mm_min_ps(
tmax, _mm_mul_ps(_mm_sub_ps(bboxes[1 - sign[2]][2], orig[2]), idir[2])
);
return _mm_movemask_ps(_mm_cmpge_ps(tmax, tmin));//tmin<tmaxとなれば交差
}
QBVH: トラバース早期打ち切り
(1)
(2)
(3)
(4)
•レイのxyzの符号と分割軸の方向から、
交差判定する順番にノードをソート
•もし葉(三角形)に当たったら、次のノード
以降の交差判定を省略
参考文献
H. Dammertz and J. Hanika1 and A. Keller: Shallow Bounding Volume
Hierarchies for Fast SIMD Ray Tracing of Incoherent Rays.
http://www.uni-ulm.de/fileadmin/website_uni_ulm/iui.inst.100/institut/Papers/QBVH.pdf
QBVHの論文です。
ototoi: QBVHを実装した - 明日ではないから
http://d.hatena.ne.jp/ototoi/20090925/p1
QBVHについての解説、他の空間構造とのパフォーマンス比較結果、ソースコードがあります。
Shirley P.: Realistic Ray Tracing, Second Edition. AK Peters, Ltd., 2000.
http://www.amazon.com/dp/1568814615
BVHのソースコード、AABB-Ray交差判定の詳しい説明が載っています。
Kayvon F.: CMU 15-869, Graphics and Imaging Architectures.
http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15869-f11/www/
Carnegie Mellon Universityのグラフィックスコースの資料。
Real-time ray tracingというリンクのPDFにレイパケットの説明があります。
ありがとうございました

More Related Content

What's hot

[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介Preferred Networks
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜Preferred Networks
 
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps条件分岐とcmovとmaxps
条件分岐とcmovとmaxpsMITSUNARI Shigeo
 
[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos
[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos
[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual VideosDeep Learning JP
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised LearningまとめDeep Learning JP
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門Shiqiao Du
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019Yusuke Uchida
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてalwei
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編Fixstars Corporation
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門NVIDIA Japan
 
Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩Hiroto Honda
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習cvpaper. challenge
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門NVIDIA Japan
 
[Ridge-i 論文よみかい] Wasserstein auto encoder
[Ridge-i 論文よみかい] Wasserstein auto encoder[Ridge-i 論文よみかい] Wasserstein auto encoder
[Ridge-i 論文よみかい] Wasserstein auto encoderMasanari Kimura
 
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence ModelingDeep Learning JP
 

What's hot (20)

[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
 
No skk, no life.
No skk, no life.No skk, no life.
No skk, no life.
 
LBFGSの実装
LBFGSの実装LBFGSの実装
LBFGSの実装
 
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
 
条件分岐とcmovとmaxps
条件分岐とcmovとmaxps条件分岐とcmovとmaxps
条件分岐とcmovとmaxps
 
[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos
[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos
[DL輪読会]BANMo: Building Animatable 3D Neural Models from Many Casual Videos
 
【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ【DL輪読会】ViT + Self Supervised Learningまとめ
【DL輪読会】ViT + Self Supervised Learningまとめ
 
NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門NumPyが物足りない人へのCython入門
NumPyが物足りない人へのCython入門
 
Global Illumination
Global IlluminationGlobal Illumination
Global Illumination
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019モデルアーキテクチャ観点からの高速化2019
モデルアーキテクチャ観点からの高速化2019
 
カスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについてカスタムメモリマネージャと高速なメモリアロケータについて
カスタムメモリマネージャと高速なメモリアロケータについて
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
 
Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
[Ridge-i 論文よみかい] Wasserstein auto encoder
[Ridge-i 論文よみかい] Wasserstein auto encoder[Ridge-i 論文よみかい] Wasserstein auto encoder
[Ridge-i 論文よみかい] Wasserstein auto encoder
 
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
[DL輪読会]Decision Transformer: Reinforcement Learning via Sequence Modeling
 

Similar to 実践QBVH

衝突判定
衝突判定衝突判定
衝突判定Moto Yan
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法Takeshi Yamamuro
 
Ibisml2011 06-20
Ibisml2011 06-20Ibisml2011 06-20
Ibisml2011 06-20Yasuo Tabei
 
20180427 arXivtimes 勉強会: Cascade R-CNN: Delving into High Quality Object Det...
20180427 arXivtimes 勉強会:  Cascade R-CNN: Delving into High Quality Object Det...20180427 arXivtimes 勉強会:  Cascade R-CNN: Delving into High Quality Object Det...
20180427 arXivtimes 勉強会: Cascade R-CNN: Delving into High Quality Object Det...grafi_tt
 
K-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周りK-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周りYusuke Uchida
 
Introduction to Modern Analytical DB
Introduction to Modern Analytical DBIntroduction to Modern Analytical DB
Introduction to Modern Analytical DBTakeshi Yamamuro
 
データベースシステム論11 - データベースの構成
データベースシステム論11 - データベースの構成データベースシステム論11 - データベースの構成
データベースシステム論11 - データベースの構成Shohei Yokoyama
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Yuto Takei
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用MITSUNARI Shigeo
 
WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法Takashi Hoshino
 
実行時のデータ型の表現手法
実行時のデータ型の表現手法実行時のデータ型の表現手法
実行時のデータ型の表現手法Atusi Maeda
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]Hideo Takagi
 
Logをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組みLogをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組みKen Morishita
 
Serializabilityとは何か
Serializabilityとは何かSerializabilityとは何か
Serializabilityとは何かTakashi Hoshino
 
Wavelet matrix implementation
Wavelet matrix implementationWavelet matrix implementation
Wavelet matrix implementationMITSUNARI Shigeo
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)MasanoriSuganuma
 
Proposed boost b_tree_library(ja)
Proposed boost b_tree_library(ja)Proposed boost b_tree_library(ja)
Proposed boost b_tree_library(ja)Takayuki Goto
 
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説decode2016
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1信之 岩永
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介Ohsawa Goodfellow
 

Similar to 実践QBVH (20)

衝突判定
衝突判定衝突判定
衝突判定
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
 
Ibisml2011 06-20
Ibisml2011 06-20Ibisml2011 06-20
Ibisml2011 06-20
 
20180427 arXivtimes 勉強会: Cascade R-CNN: Delving into High Quality Object Det...
20180427 arXivtimes 勉強会:  Cascade R-CNN: Delving into High Quality Object Det...20180427 arXivtimes 勉強会:  Cascade R-CNN: Delving into High Quality Object Det...
20180427 arXivtimes 勉強会: Cascade R-CNN: Delving into High Quality Object Det...
 
K-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周りK-means hashing (CVPR'13) とハッシング周り
K-means hashing (CVPR'13) とハッシング周り
 
Introduction to Modern Analytical DB
Introduction to Modern Analytical DBIntroduction to Modern Analytical DB
Introduction to Modern Analytical DB
 
データベースシステム論11 - データベースの構成
データベースシステム論11 - データベースの構成データベースシステム論11 - データベースの構成
データベースシステム論11 - データベースの構成
 
Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)Hello Dark-Side C# (Part. 1)
Hello Dark-Side C# (Part. 1)
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 
WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法WALをバックアップとレプリケーションに使う方法
WALをバックアップとレプリケーションに使う方法
 
実行時のデータ型の表現手法
実行時のデータ型の表現手法実行時のデータ型の表現手法
実行時のデータ型の表現手法
 
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
【ウェブ セミナー】AI 時代のクラウド データ ウェアハウス Azure SQL Data Warehouse [実践編]
 
Logをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組みLogをs3とredshiftに格納する仕組み
Logをs3とredshiftに格納する仕組み
 
Serializabilityとは何か
Serializabilityとは何かSerializabilityとは何か
Serializabilityとは何か
 
Wavelet matrix implementation
Wavelet matrix implementationWavelet matrix implementation
Wavelet matrix implementation
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
 
Proposed boost b_tree_library(ja)
Proposed boost b_tree_library(ja)Proposed boost b_tree_library(ja)
Proposed boost b_tree_library(ja)
 
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
DBP-009_クラウドで実現するスケーラブルなデータ ウェアハウス Azure SQL Data Warehouse 解説
 
C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1C# 7.2 with .NET Core 2.1
C# 7.2 with .NET Core 2.1
 
XLWrapについてのご紹介
XLWrapについてのご紹介XLWrapについてのご紹介
XLWrapについてのご紹介
 

Recently uploaded

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Recently uploaded (9)

新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

実践QBVH