Back to list
arxiv_cs_gr 2026年4月24日

CuRast: ビリオン個の三角形に対する Cuda ベースのソフトウェアラスタライゼーション

CuRast: Cuda-Based Software Rasterization for Billions of Triangles

Translated: 2026/4/24 19:53:49
cudarasterizationcompute-shadersvulkan3d-reconstruction

Japanese Translation

arXiv:2604.21749v1 発表タイプ:新規 要旨:以前の実験では、小さめの三角形を計算シェーダーで効率的にラスタライズできることが示されています。この洞察に基づき、加速構造を事前に構築する必要を伴わない巨大な三角形データセットに対して、この手法がどの程度まで押し抜けるかを検討します。 手法:3 段階のラスタライゼーションパイプラインでは、まず小さい三角形を 1 段階ですぐにラスタライズし、原子操作 Min によって最も近いフラグメントを格納します。大きな三角形は 2 段階および 3 段階へ転送されます。 結果:CuRast は、2 億個〜数億個の三角形を持つモデルを、Vulkan に対して 2〜5 倍(ユニーク)あるいは 12 倍(インスタンスタイプ)高速でレンダリングできます。しかし、低ポリゴンメッシュの場合、Vulkan は依然として 10 倍程度高速で処理します。 制限事項:現在、フォトグラメトリや 3D 再構成で得られる一般的な濃密な不透明なメッシュに焦点を当てています。混色や透過はサポートされておらず、数千個の低ポリゴンメッシュを含むシーンの効率的な実装も未解決です。 今後の課題:ゲームやより多様な用途に適合させるためには、(1) 数万個のノード/メッシュを持つシーンの処理最適化、(2) Meshoptimizer などで生成されるような階層的クラスタ化した LOD のサポート追加、(3) 透過性のサポート追加(おそらく別の段階で実装し、不透明ラスタライゼーションを触らず高速に保つ)が必要となります。 ソースコード:https://github.com/m-schuetz/CuRast

Original Content

arXiv:2604.21749v1 Announce Type: new Abstract: Previous work shows that small triangles can be rasterized efficiently with compute shaders. Building on this insight, we explore how far this can be pushed for massive triangle datasets without the need to construct acceleration structures in advance. Method: A 3-stage rasterization pipeline first rasterizes small triangles directly in stage 1, using atomicMin to store the closest fragments. Larger triangles are forwarded to stages 2 and 3. Results: CuRast can render models with hundreds of millions of triangles up to 2-5x (unique) or up to 12x (instanced) faster than Vulkan. Vulkan remains an order of magnitude faster for low-poly meshes. Limitations: We currently focus on dense, opaque meshes that you would typically obtain from photogrammetry/3D reconstruction. Blending/Transparency is not yet supported, and scenes with thousands of low-poly meshes are not implemented efficiently. Future Work: To make it suitable for games and a wider range of use cases, future work will need to (1) optimize handling of scenes with tens of thousands of nodes/meshes, (2) add support for hierarchical clustered LODs such as those produced by Meshoptimizer, (3) add support for transparency, likely in its own stage so as to keep opaque rasterization untouched and fast. Source Code: https://github.com/m-schuetz/CuRast