”Octree-Based Sparse Voxelization for Real-Time Global Illumination"の実装で気になるところメモ
”Octree-Based Sparse Voxelization for Real-Time Global Illumination”のスライドを見ていたらOpenGLでの実装について色々と気になるところがあってメモ。
”Octree-Based Sparse Voxelization for Real-Time Global Illumination”
http://blog.icare3d.org/2012/05/gtc-2012-talk-octree-based-sparse.html
まず24枚目。OpenGL 4.2のImage_load_Storeの話とNVIDIAのBindless Graphicsの話。
それから30ページ目。OpenGLにはDirect3D11のようにCompute Shaderが無いので頂点シェーダでComputeをエミュレートしてみた話。input attributeを使用しない頂点シェーダをCompute Shaderの代わりをさせています。gl_VertexIDで処理してる頂点の番号を取得することでスレッドIDとしているみたいですね。
つまり、1000頂点のDrawをしたVertex Shaderを、1000スレッドのCompute Shaderと見るわけか。OpenGL 4.2ならload_image_Storeでバッファへの読み書きは出来ちゃうから同期とかスレッドグループ共有メモリみたいなものを必要としなければこれでいいわけか。
結構無理矢理感が無いわけでは無いけど面白いGPUの使い方してるなぁ。
« Forward+のスライド | トップページ | OpenGL Insightsと言う書籍 »
「Programming」カテゴリの記事
- 次回記事の仕込み(2021.01.14)
- 久々のShader.jpのサンプル付きの記事(2021.01.08)
- 久々のDirect3D12記事の話(2020.12.15)
- Intelのゲーム向けC++タスクスケジューラライブラリGTS-GamesTaskSchedulerが大幅更新(2020.12.09)
- SIGGRAPH 2020で発表されたニューラルリギング論文をBlenderに組み込んだ話(2020.11.24)
「画像付き」カテゴリの記事
- 次回記事の仕込み(2021.01.14)
- 生成 Deep Learningが届いた(2020.10.04)
- α7RIV + SEL100400GMで千葉市動物公園(2020.07.19)
- Mesh Shaderサンプル起動(2020.05.30)
コメント