SlideShare a Scribd company logo
1 of 60
DirectX Raytracing
- The life of a ray tracing kernel -
NVIDIA Senior Developer Technology Engineer
Masaya Takeshige
CEDEC 2018, Japan 8/24 R503
目次
• DirectX Raytracing (以下DXR)の解説
• Rasterizerのパイプラインとの比較
• The life of a raytracing kernel
• パフォーマンスのプロファイリングに関する考察
DXRで新しく導入された3つのコンセプト
Acceleration Structures
DXRのジオメトリ表現
Shader Table
ShaderとShader Resourceの組み合わせの
テーブル
シェーダーと実行パイプライン
6種類の新設されたShaderと
それを呼び出す実行パイプライン
Acceleration Structures
Acceleration Structuresとは
• Acceleration Structures (AS) は、レイトレーシングの対象となる
ジオメトリを定義するための構造
• Rasterizerにおける、頂点バッファとインデックスバッファに該当
• ただしレイトレーシングを高速に行うために事前に処理をする
Acceleration Structuresとは
• ASは二つの階層に分かれている
• Bottom Level Acceleration Structures (BLAS)
• BLASはオブジェクトの形状を定義する。表現方法は次のいずれか
• 三角形の集合
• Axis Aligned Bounding Box (AABB)の集合。最終的な形状は、後述するShaderで定義
• Top Level Acceleration Structures (TLAS)
• 複数のBLASのインスタンスにTransformを適用して格納する
• レイトレーシングの対象になるシーン全体を定義する
• DXRはASの内部構造を定義しない
• 内部構造は何らかの Boundary Volume Hierarchy(BVH) である可能性が高い
Bottom Level AS
Bottom Level AS
Acceleration Structuresのイメージ
• ASの実装がBinaryBVHと仮定した場合のイメージ
AABB
AABBAABB
AABBAABB AABBAABB
AABB
Top Level AS
Leaf Node
BLAS Instance index
Transform (4x3mat)
BLAS ptr
AABB
AABBAABB
AABBAABB AABBAABB
AABB
Bottom Level AS
Leaf Node
Primitive Idcs
AABB
Bottom Level AS
Leaf Node
Primitive Idcs
Bottom Level ASTop Level AS
Bottom Level AS
Bottom Level AS
Acceleration Structuresのイメージ
AABB
AABBAABB
AABBAABB AABBAABB
AABB
Top Level AS
Leaf Node
BLAS Instance index
Transform (4x3mat)
BLAS ptr
AABB
AABBAABB
AABBAABB AABBAABB
AABB
Bottom Level AS
Leaf Node
Primitive Idcs
AABB
Bottom Level AS
Leaf Node
Primitive Idcs
Bottom Level ASTop Level AS
この部分の構築は、DXRが行う
シェーダーと実行パイプライン
シェーダーと実行パイプライン
• DXRで新設された6種類のプログラマブルシェーダー
• 青で示されたシェーダーをプログラムすることができる
• オレンジで示された部分は、DXRが処理を行う
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
シェーダーと実行パイプライン
Ray Generation (RG)
• このシェーダーは、唯一D3D12のAPIから直接指定して呼び出される
• DispatchRays()
• 基本的な役割の例
• Rayを定義する(次のスライドで)
• Payloadと呼ばれるユーザー定義の構造体を初期化する
• HLSL組み込み関数のTraceRay()を呼び出し、レイトレーシングを開始する
• TraceRay()の結果をUAVなどのバッファに書き出す
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
Rayの定義
• レイトレーシングの交差判定の対象になるのは、TMin~TMaxまで
• TMinは必ずしもゼロである必要はない
• レイトレーシングの最中に交差が発生したら、T値によって知らされる
Orign
Direction
TMin
TMax
RayTCurrent()?
シェーダーと実行パイプライン
TraceRay()
• レイトレーシングを開始するためのHLSLの組み込み関数
• これを呼び出すことができるのは、Ray Generation, Closest Hit, Missシェーダーのみ
• 基本的な役割
• 指定された引数に従って、レイトレーシングを実行する
• レイトレーシングが終了したら、更新されたPayload共に呼び出し元に処理を戻す
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
シェーダーと実行パイプライン
Traversal
• この部分のDXRとしての正式な呼称はない
• RayとAcceleration Structuresとの交差判定を行うプログラム
• ここをプログラムすることはできない。DXRに隠蔽されている
• 役割
• ASとRayの交差判定を行う
• BLASの末端ノードとの交差が発生した場合は、
必要に応じて後述のIntersectionやAny Hitを呼び出す
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
シェーダーと実行パイプライン
Intersection (IS)
• BLASの末端ノードに定義したAABBとRayの交差が発生した際に呼び出される
• 基本的な役割の例
• AABB内にユーザーが定義したジオメトリと交差判定を行い、交差している場合は、
ReportHit()というHLSL組み込み関数を呼び出す
• ReportHit()を呼び出す際は、Attributeと呼ばれるPayloadとは別のユーザー定義構造体に
任意のデータを格納し、AnyHitに情報を渡す
• このシェーダーは、三角形との交差判定を行う場合は省略する
• DXRが三角形との交差判定を行い、システム定義のAttributeと共にAnyHitを呼び出す
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
シェーダーと実行パイプライン
Any Hit (AH)
• ISがReportHit()を呼び出すか、DXRの三角形との交差判定プログラムが、
交差を検出した場合に呼び出される
• AnyHitはRayがジオメトリと交差するたびに複数回呼び出される可能性がある
• 呼び出される順番は、RayのOriginに近い方からとは限らない
• ISが定義したAttributeを読むことができる
• RGが定義したPayloadを読をみ書きすることができる
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
1
2
3
シェーダーと実行パイプライン
Any Hit (AH)
• IgnoreHit()という組み込み関数を呼び出すことで、Rayとジオメトリの交差が無効であ
ることを通知できる
• AcceptHitAndEndSearch()という組み込み関数を呼び出すことで、
直ちにRayのTraversalを終了することができる
• 基本的な役割
• 交差判定の最終的な決定
• ISではできない、Payloadの更新作業
• このシェーダーは、省略可能
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
1
2
3
シェーダーと実行パイプライン
Closest Hit (CHS)
• RayのTraverseが終了した後、ジオメトリとの交差が発生した中で、T値がもっとも小さ
かった時の、各種システム定義変数とAttributeとともに一度だけ呼び出される
• システム定義変数は、たとえば、インスタンスのIDやプリミティブのIDなど
• RGが定義した、Payloadを読をみ書きすることができる
• 主な役割
• サーフェースのシェーディング(?)
• 2次Rayの生成
• このシェーダーは省略可能
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
シェーダーと実行パイプライン
Miss (MS)
• RayのTraverseが終了した後、ジオメトリとの交差が一度も発生しなかった場合
に呼び出される
• RGが定義した、Payloadを読をみ書きすることができる
• 主な役割
• 背景の描画(?)
• Shadow, Ambient Occlusionの処理
• このシェーダーは省略不可
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
シェーダーと実行パイプライン
Callable
• RG, CHS, MS, Callableは、組み込み関数CallShader()を介して呼び出すことができる
• 呼び出し元が定義した任意の構造体を読み書きすることができる
• ただのサブルーチンではない
• Rayや、プリミティブに関するシステム定義の値にアクセスすることはできない
• ShaderTable(後述)の定義に基づいたシェーダーリソース(TextureやCBなど)にアクセスできる
• このシェーダーの定義は任意
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
Ray Tracing Programsについて
• 6種類のShaderが、4種類のRay Tracing Programとして定義される
• 個々のRay Tracing Programは
• 別々のRoot Signatureを定義できる
• ユニークなShader Identifierを持つ
• Shader identifierは後述するShader Tableに設定することができる
• CHS,IS,AHはRoot Signatureを共有しなくてはならない。
• これをHit Groupと呼ぶ
Ray Generation TraceRay() Traversal Intersection Any Hit
Closest Hit MissCallable
Ray Tracing Pipeline State Objectについて
• Ray Tracing Pipeline State Object(RtPSO)は複数のRay Tracing Programを
まとめたもの
• 実質的には、シェーダーコードのリンク作業
• 使用するすべてのRoot Signatureと、AttributeやPayloadの最大サイズや、
TraceRay()の再帰呼び出しの最大回数も定義する
• このオブジェクトをDispatchRays()を呼び出すときに指定する
• 使用するすべてのシェーダーが含まれていなければならない
• RtPSOを作成した後、各Shader ProgramのShader Identifierが取得できる
Shader
Shader
Shader
Shader
Shader
Shader
Program
Program
Program
Program
Ray Tracing Pipeline State Object
シェーダーリソースのBindingについて
• Ray Tracing Programは、二つのRoot Signatureを利用できる
• Root Signatureは、Compute Root Signatureと同じ
• D3D12のAPIを介してリソースをBindする
• RtPSO内のShader全てで共有する
• Local Root Signatureは、Ray Tracing Programごとに異なるものを使用可能
• Shader Table(後述)を介してリソースをBindする
• Root SignatureとLocal Root Signatureのbinding(t0, u0など)は
重複してはいけない
Root Signature
Local Root Signature
Shader Table
Shader Tableの役割
• ShaderTableのIndexを指定することで、Ray Tracing Programと、そのシェー
ダーが参照するリソース(TextureやCB)を参照するためのテーブル
• テーブルの参照と、リソースのBindingは、DXRが行う
• すべてのDXRのシェーダーはShaderTableのIndexを指定することで
呼び出される
Shader Table
Shader Tableの
Index
Ray Tracing Program
Local Root Argument
Shader Tableについて
• Shader TableはただのBuffer
• DispatchRays()を呼び出すときも、Bindしない。GPU Virtual Addressを直接渡す
Shader Table
Shader Tableについて
• Shader TableはただのBuffer
• DispatchRays()を呼び出すときも、Bindしない。GPU Virtual Addressを直接渡す
• Shader Recordの配列
• Shader Recordの大きさは、一つのShader Table内で固定
Shader
Record
Shader
Record
Shader
Record
・・・・
Shader Tableについて
• Shader Recordは、Shader Identifierと、Local Root Argumentsを格納
• 種類の違うLocal Root Argumentを格納できるが、Shader Recordは固定長なので、最大サイズに
合わせる
Shader
Record
Local Root
Arguments
Shader identifier
Shader Tableの例
• 一つのBufferの中に複数のShaderTableを配置した例
• RG, Miss, Callable, HitGroupに対して、それぞれに先頭のGPU Virtual AddressとStrideを指定する
ので、Bufferが同一でも別々でも構わない
• RGとMissのShaderTableはDispatchRay()を呼ぶ際に必ず必要
• HitGroupのIndexの算出は複雑
• TraceRay()を呼ぶ際に与えられるIndexのOffsetとStride
• BLASのインスタンスをTLASに登録する際に指定するIndex
• 交差したBLASの内部のジオメトリのIndex
• 要約すると、一つのBLASに内包された複数のジオメトリごと、BLASのインスタンスごと、
そしてTraceRay()の呼び出しごとに、別々のShader Recordを参照することが可能
Shader TableRG Miss Callable Callable HitGroup HitGroup HitGroup HitGroup
目次
• DirectX Raytracing (以下DXR)の解説
• Rasterizerパイプラインとの比較
• The life of a raytracing kernel
• パフォーマンスのプロファイリングに関する考察
Rasterizerパイプラインとの比較
Rasterizerの実行パイプライン
• IAとRasterでGPUのThreadの数が変化する
• IAは頂点配列の量に応じてVSを起動する
• Rasterは、プリミティブが被覆したピクセル数に応じてPSを起動する
• それぞれ、GPU内で自動的に適切な数のThread生成されて、別々の
Threadで実行される
DrawCall Vertex
Shader
Pixel
Shader
ROPIA Raster
DXRの実行パイプライン
• RGはTraceRay()を呼ぶかもしれない
• 呼んだあとは、最終的に呼び出し元のRGに戻る
• 何回も呼ぶかもしれない
• 再帰呼び出しでないので回数に明示的な制限なし
• MSやCHもTraceRay()を呼ぶかもしれない
• TraversalはISを呼ぶかもしれない
• ISはReportHit()を呼ぶことでAHを呼ぶかもしれない
• 呼ばれたISやAHはTraversalを継続しなければならない(かもしれない)
Dispatch
Rays()
Ray
Generation
Miss
Intersection AnyHitTraceRay()
Closest Hit
Traversal
DXRの実行パイプライン
• 条件分岐と再帰呼び出しがあるので
従来の一方通行型のGPUパイプラインでは説明できない
Dispatch
Rays()
Ray
Generation
Miss
Intersection AnyHitTraceRay()
Closest Hit
Traversal
目次
• DirectX Raytracing (以下DXR)の解説
• Rasterizer パイプラインとの比較
• The life of a raytracing kernel
• パフォーマンスのプロファイリングに関する考察
The life of a raytracing kernel
DispatchRays()
• DispatchRays()を呼ぶと、Ray Generation Shaderが起動する
• 起動するThreadの数は、APIの引数で直接指定
• ComputeのDispatchによく似ている
• DispatchRays(100, 100) -> 1万のThreadが起動する(?)
GPUのThreadのスケジューリングについて
• ある一定の数のThreadが、ひとつの塊として扱われ、
同じプログラムを同時に実行する必要がある
DispatchRays() [10000]
Thread Group [50]Thread Group [50] Thread Group [50]Thread Group [50]
Thread Group [50]Thread Group [50] Thread Group [50]Thread Group [50]
Thread Group [50]Thread Group [50] Thread Group [50]Thread Group [50]
Thread Group [50]Thread Group [50] Thread Group [50]Thread Group [50]
Thread Group [50]Thread Group [50] Thread Group [50]Thread Group [50]
x10
GPUのThreadのスケジューリングについて
• 一つのThread Groupは、実行マスク付きの非常にWideなSIMDアーキテ
クチャと解釈することができる
• GPUのアーキテクチャによっては、必ずしも、このような内部実行形式になっているわけではないが、
ある一定量のThreadが同じプログラムを実行しないと性能が出ないのは同じ
Thread Group [50]
a = a * b;
if (a < 0) {
a = c * b;
d = 1;
}
exit();
Ray Generation Shader
• RayGenerationShaderはTraceRay()を呼ぶかもしれません
TraceRay()が呼ばれたThread
• TraceRay()が呼ばれたThreadは、RayとTLASの交差判定を行う
• ASがBVHだと仮定すると、初めに交差判定を行うAABBは、ThreadGorup内のど
のRayも同じ
• AABBの階層を下に向かってTraverseすると、AABBとの交差判定の結果が異なり
だす
• 異なるAABBとの交差判定が、各々のThreadで必要になる
TLASのTraverse
• アクセスするデータは違うが、AABBの判
定プログラムは同じなので、同時に実行で
きる
• 交差したAABBをスタックのようなものに積み
上げて順次ツリーを下がっていけばよい
AABB
AABBAABB
AABBAABB AABBAABB
AABB
Top Level AS
Leaf Node
BLAS
Instance index
Top Level AS
TLASのTraverse
• 各々のThreadがTLASをTraverseすると、以下の2つが考えられる
• BLASと交差しなかったThread
• BLASと交差したThread
• BLASと交差しないThreadは、Missシェーダーを呼び出す必要がある
• MissシェーダーとTraversalは、シェーダーコードが違うので、同時に実行できない
• 考えられるのは以下の3つ
1. Missシェーダーを即時に実行し、他のThreadのTraversalをいったん休止する
2. 該当ThreadのTraversalを終了し、Missシェーダーの呼び出しを後回しにして、待機させておく
3. Missシェーダーを呼び出すための情報を全てメモリに書き出し、Traversalを実行しているThreadGroupとは異なる
ThreadGroupでMissシェーダーを実行する。終わったら、処理結果を該当ThreadのRayPayloadに書き込む
• どれになるかは、DXRの下位レイヤーの実装による
• GPUのアーキテクチャやベンダーに依存する
BLASと交差しなかったThread
BLASのTraverse
• BLASと交差したThreadは、BLASとの交差判定を行うために、
RayのDirectionとOriginをBLASのローカル座標に変換する
• TLASとBLASの境界で発生する処理
• 各Threadが異なるBLASと交差しても、同時に処理することが可能
• BLAS内のTraverseは、TLASと同様
• BLASのTraverseが進むと、ここでも3つに分かれる
1. BLASの末端ノードと交差
• BLASがTriangleで構成されている。三角形交差判定
2. BLASの末端ノードと交差
• BLASがAABBなのでIntersection Shaderの呼び出し
3. BLASのいかなる末端ノードとも交差しない
IntersectionShaderがある
HitGroupの末端ノードと交差
Triangleで構成されてい
る末端ノードと交差
IntersectionShaderとAnyHitShader
• 同じHitGroupに属している末端BLASノードを処理している場合は、
IntersectionShaderを同時に処理することができる
• HitGroupが異なる場合は、基本的に逐次実行となる
• IntersectionShaderがReportHit()を呼び出した場合
• AnyHitShaderを実行する
• すでに該当のHitGroupのリソースがBindされているので、
他のIntersectionを実行する前に実行する
Hit Group : A
Hit Group : B
Intersection
AnyHit
Intersection
AnyHit
Built-Inの三角形交差判定
• 三角形の交差判定のプログラムは同じなので、異なるHitGroupでも
同時に処理をすることができる
• AnyHitShaderを呼び出す場合は、HitGroupごとに逐次実行となる
AnyHit
AnyHit
Hit Group : C
Hit Group : D
Hit Group : C, DBuilt-In Tri Int.
BLAS末端ノードの処理の終了
• 下記の場合はTraverseが直ちに終了する
1. AnyHitShaderが、AcceptHitAndEndSearch()を呼び出した
2. RayフラグにRAY_FLAG_ACCEPT_FIRST_HIT_AND_END_SEARCHが
設定されて、AnyHitShaderがIgnoreHit()を呼ばなかった
• 上記以外の場合はBLASのTraverseに戻る
AcceptHitAndEndSearch()が呼ばれた
BLASのTraverseの続き
• BLASのTraverseを続け、順次末端ノードとの交差判定を処理する
• 最終的にBLASとの交差は無くなる
• TLASに戻って処理を再開する
末端ノードとの
交差を繰り返し
処理していく
TLASのTraverseの続き
• TLASのTraverseを続け、BLASとの交差判定を処理する
• 最終的にBLASとの交差は無くなる
• Traversalが終了する
BLASとの交差を
繰り返し処理し
ていく
Closest Hit, Missの呼び出し
• Closest Hit, MissはTraversalの動作から独立している
• 同じHitGroupに属する場合は並列実行される
• 異なれば、ThreadGroup内で、逐次実行される
Hit Group : A
Hit Group : B
Closest Hit
Closest Hit
Miss
TraceRay()の再帰呼び出し
• Miss, Closest HitはTraceRay()を再帰的に呼び出すことができる
• HitGroupが異なるShaderで逐次実行となっていると、
TraceRay()も逐次呼び出しとなる
TraceRay() Hit Group : A
Hit Group : B
Closest Hit
Closest Hit
TraceRay()の終了
• すべてのThreadは、最終的に、RayGenerationShaderに戻る
• RGは更新されたPayLoadの結果をUAVに書き出すなどしてThreadを終了する
• このThreadGroupの処理が完了する
ThreadGourpのために確保されていたリソースが
解放されるのでGPUは次のタスクを開始できる
The life of a ray tracing kernelのまとめ
• RayTraceを実行してるThreadGroupは、他のThreadと同時に処理を実行
する機会が、RasterizerのVSやPSと比べると、基本的に少ない
• RayのHit状況やTraceRay()の再帰呼び出し状況によっては
極端に低くなる可能性がある
• 今回説明したモデルは、仮想の、いわばナイーブなモデルです
• GPUの機能によっては、必ずしも今回説明した並列実行性にならない
• 例(想像の話)
• もしもGPUのThreadGroupがfork()できるならば、
分岐が大きくなるところでfork()したら、並列実行性は変わらないが、同時実行性が高まる
• HitGroupが異なる場合でも、TextureやConstant BufferをすべてBindless化した
アーキテクチャならば、Shader Identifierが同じであれば並列実行できる
目次
• DirectX Raytracing (以下DXR)の解説
• Rasterizer パイプラインとの比較
• The life of a raytracing kernel
• パフォーマンスのプロファイリングに関する考察
パフォーマンスのプロファイリングに関する考察
パフォーマンスのプロファイリングに関する考察
• Time StampでDispatchRays()の実行時間を知ることができる
• 何かを変更して、早くなったか?遅くなったか?ぐらいはわかる
• 具体的に、何が早くなったかは全く分からない
pRtCmdList-> BeginQuery() ;
pRtCmdList->DispatchRays(mpPipelineState, &raytraceDesc);
pRtCmdList-> EndQuery () ;
パフォーマンスのプロファイリングに関する考察
• Traversalとユーザー定義のShaderの使用サイクル
• Shaderのカテゴリごとの使用サイクル
• HitGroupごとのShaderの使用サイクル
• しかしこれだけでは足りない
pRtCmdList->DispatchRays(mpPipelineState, &raytraceDesc);
Traversal Traversal以外
Traversal IS RGAH MSCHS
Traversal IS RGAH MSCHS
HG
0
HG
1
HG
2
パフォーマンスのプロファイリングに関する考察
• 各ShaderのThread Activity(Threadが休止していなかった割合)
はDXRにおいて重要な指標
0
20
40
60
80
100
RG Traverse IS AH CHS MS
GPU Thread Activity(%)
GPU Thread Activity(%)
Traversal IS RGAH MSCHS
パフォーマンスのプロファイリングに関する考察
• まとめ
• 現在のDXRのAPIでは、パフォーマンスのプロファイルは不可能
• 今後APIとして拡充される可能性があるかもしれない
• GPUベンダーのプロファイリングツールやPIXのプラグインが必要になる
Thank you very much!
Questions?

More Related Content

What's hot

シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチングシェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチングSho Hosoda
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門NVIDIA Japan
 
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜Unity Technologies Japan K.K.
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 
OSS強化学習フレームワークの比較
OSS強化学習フレームワークの比較OSS強化学習フレームワークの比較
OSS強化学習フレームワークの比較gree_tech
 
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​KLab Inc. / Tech
 
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View SynthesisKento Doi
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編Fixstars Corporation
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門Fixstars Corporation
 
Observableで非同期処理
Observableで非同期処理Observableで非同期処理
Observableで非同期処理torisoup
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門Toru Matsuoka
 
空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化について空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化についてRyousuke Wayama
 
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスターUnity Technologies Japan K.K.
 
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスターUnity Technologies Japan K.K.
 
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術Unity Technologies Japan K.K.
 

What's hot (20)

シェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチングシェーダだけで世界を創る!three.jsによるレイマーチング
シェーダだけで世界を創る!three.jsによるレイマーチング
 
聖剣伝説3でのUE4利用事例の紹介~Making of Mana | UNREAL FEST EXTREME 2020 WINTER
聖剣伝説3でのUE4利用事例の紹介~Making of Mana | UNREAL FEST EXTREME 2020 WINTER聖剣伝説3でのUE4利用事例の紹介~Making of Mana | UNREAL FEST EXTREME 2020 WINTER
聖剣伝説3でのUE4利用事例の紹介~Making of Mana | UNREAL FEST EXTREME 2020 WINTER
 
1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門1076: CUDAデバッグ・プロファイリング入門
1076: CUDAデバッグ・プロファイリング入門
 
Riderはいいぞ!
Riderはいいぞ!Riderはいいぞ!
Riderはいいぞ!
 
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
【Unity道場】AssetGraph入門 〜ノードを駆使しててUnityの面倒な手作業を自動化する方法〜
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 
OSS強化学習フレームワークの比較
OSS強化学習フレームワークの比較OSS強化学習フレームワークの比較
OSS強化学習フレームワークの比較
 
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演)  #UE4DDUE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演)  #UE4DD
UE4 MultiPlayer Online Deep Dive: 実践編1 (Byking様ご講演) #UE4DD
 
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
シェーダーを活用した3Dライブ演出のアップデート ~『ラブライブ!スクールアイドルフェスティバル ALL STARS』(スクスタ)の開発事例~​
 
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
[解説スライド] NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis
 
猫でも分かるUE4.22から入ったSubsystem
猫でも分かるUE4.22から入ったSubsystem 猫でも分かるUE4.22から入ったSubsystem
猫でも分かるUE4.22から入ったSubsystem
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
 
ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門ARM CPUにおけるSIMDを用いた高速計算入門
ARM CPUにおけるSIMDを用いた高速計算入門
 
Observableで非同期処理
Observableで非同期処理Observableで非同期処理
Observableで非同期処理
 
レイトレ空間構造入門
レイトレ空間構造入門レイトレ空間構造入門
レイトレ空間構造入門
 
空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化について空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化について
 
UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法UE4で作成するUIと最適化手法
UE4で作成するUIと最適化手法
 
【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター【Unite Tokyo 2018】誘導ミサイル完全マスター
【Unite Tokyo 2018】誘導ミサイル完全マスター
 
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター【Unity道場スペシャル 2017博多】クォータニオン完全マスター
【Unity道場スペシャル 2017博多】クォータニオン完全マスター
 
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
【CEDEC2018】一歩先のUnityでのパフォーマンス/メモリ計測、デバッグ術
 

Similar to Direct x raytracing the life of a ray tracing kernel

Heliumエンジンの設計と実装
Heliumエンジンの設計と実装Heliumエンジンの設計と実装
Heliumエンジンの設計と実装DADA246
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Takuya Matsunaga
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめMikiya Okuno
 
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキストVxRail ChampionClub
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectComputedasyprocta
 
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計y_taka_23
 
Elasticsearch as a Distributed System
Elasticsearch as a Distributed SystemElasticsearch as a Distributed System
Elasticsearch as a Distributed SystemSatoyuki Tsukano
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタSatoyuki Tsukano
 
Guide to Cassandra for Production Deployments
Guide to Cassandra for Production DeploymentsGuide to Cassandra for Production Deployments
Guide to Cassandra for Production Deploymentssmdkk
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについてippei_suzuki
 
Intel 82599 10GbE Controllerで遊ぼう
Intel 82599 10GbE Controllerで遊ぼうIntel 82599 10GbE Controllerで遊ぼう
Intel 82599 10GbE Controllerで遊ぼうTakuya ASADA
 
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)YoheiOkuyama
 
A Tour of PostgreSQL
A Tour of PostgreSQLA Tour of PostgreSQL
A Tour of PostgreSQLEDB
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話Preferred Networks
 
SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料Koichiro Sasaki
 
オライリーセミナー Hive入門 #oreilly0724
オライリーセミナー Hive入門  #oreilly0724オライリーセミナー Hive入門  #oreilly0724
オライリーセミナー Hive入門 #oreilly0724Cloudera Japan
 

Similar to Direct x raytracing the life of a ray tracing kernel (20)

Heliumエンジンの設計と実装
Heliumエンジンの設計と実装Heliumエンジンの設計と実装
Heliumエンジンの設計と実装
 
Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版Dalvik仮想マシンのアーキテクチャ 改訂版
Dalvik仮想マシンのアーキテクチャ 改訂版
 
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめDTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
 
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
201711 vxrailチャンピオンクラブ_ワークショップ~入門編~テキスト
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectCompute
 
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
AWS は形式手法の夢を見るか? - モデル検査器 Alloy によるインフラ設計
 
Elasticsearch as a Distributed System
Elasticsearch as a Distributed SystemElasticsearch as a Distributed System
Elasticsearch as a Distributed System
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
Ad設計
Ad設計Ad設計
Ad設計
 
Guide to Cassandra for Production Deployments
Guide to Cassandra for Production DeploymentsGuide to Cassandra for Production Deployments
Guide to Cassandra for Production Deployments
 
日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて日本語:Mongo dbに於けるシャーディングについて
日本語:Mongo dbに於けるシャーディングについて
 
IgChart 入門編
IgChart 入門編IgChart 入門編
IgChart 入門編
 
Intel 82599 10GbE Controllerで遊ぼう
Intel 82599 10GbE Controllerで遊ぼうIntel 82599 10GbE Controllerで遊ぼう
Intel 82599 10GbE Controllerで遊ぼう
 
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
今さら聞けないHadoop勉強会第3回 セントラルソフト株式会社(20120327)
 
CPUの同時実行機能
CPUの同時実行機能CPUの同時実行機能
CPUの同時実行機能
 
A Tour of PostgreSQL
A Tour of PostgreSQLA Tour of PostgreSQL
A Tour of PostgreSQL
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話
 
SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料SQL Server 2016 R Services + Microsoft R Server 技術資料
SQL Server 2016 R Services + Microsoft R Server 技術資料
 
オライリーセミナー Hive入門 #oreilly0724
オライリーセミナー Hive入門  #oreilly0724オライリーセミナー Hive入門  #oreilly0724
オライリーセミナー Hive入門 #oreilly0724
 
activerecord-turntable
activerecord-turntableactiverecord-turntable
activerecord-turntable
 

Recently uploaded

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
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
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
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
 
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
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 

Recently uploaded (9)

UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
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
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
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] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
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
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 

Direct x raytracing the life of a ray tracing kernel