Font Size: a A A

Parallel Triangle Processing With CUDA

Posted on:2011-10-02Degree:MasterType:Thesis
Country:ChinaCandidate:Y LuFull Text:PDF
GTID:2178360308955323Subject:Precision instruments and machinery
Abstract/Summary:PDF Full Text Request
Virtual reality and game applications normally use triangles as their rendering primitive. The current graphics pipeline introduces the geometry shader to support parallel triangle processing. However, data has to flow through the entire pipeline before the final results are acquired; besides, using graphics API to implement graphics algorithms is inefficient for reusing the computation results. We propose to process triangles in parallel with CUDA. The main contributions are:1) A preprocessing algorithm for triangle meshes. Vertex fetch is the bottleneck when using CUDA to implement parallel triangle processing. Based on the current GPU's hardware architecture, coalesced access is the most efficient way to read/write the GPU memory. This paper presents a two-step preprocessing algorithm according to the current GPU memory model: the triangle mesh is first segmented into triangle clusters of equal size, and then the vertex buffer is reordered based on the segmentation results.At the runtime, triangle cluster vertices are read altogether into the shared memory. As a result, the following vertex fetch operations can be performed in the fast shared memory.2) Optimizing real-time rendering implementations. We implement back-face culling and silhouette extraction with our vertex fetch effective approaches and use the results with the graphics pipeline to optimize real-time rendering implementations. The experiment results show significant speedups achieved by integrating our bandwidth effective approaches for any real-time rendering algorithm involving triangles.
Keywords/Search Tags:CUDA-based parallel algorithm, triangle mesh, real-time rendering
PDF Full Text Request
Related items