View on GitHub

Project4-cuda-rasterizer

CIS 565: CUDA Rasterizer

Download this project as a .zip file Download this project as a tar.gz file

Tile-based CUDA Rasterizer

University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 4

Overview

An efficient CUDA rasterizer with two pipeline options. By default it uses tile-based rendering, but also supports scanline rendering (L to switch between).

Video Demo

Tile-based render demo
Scanline demo

Quick Jump List

Pipeline Overview (Scanline)

Geometry shader. Hairs are vertex normals

Backface culling. Notice that backface normals are removed

Scissor test. Fragments outside the scissor box are clipped

Lambert shading with barycentric interpolation. Two lights are used to better demonstrate the effect

Pipeline Overview (Tile-based)

Misc Features

Normal shading

Point shading

Performance Analysis

cow.obj performance breakdown

cow.obj FPS comparison by camera distance and pipeline. Positive means camera moving away

cow.obj performance breakdown

cow.obj FPS by camera distance, camera moving away

suzanne.obj performance breakdown

suzanne.obj FPS by camera distance, camera moving away

flower.obj performance breakdown

flower.obj FPS by camera distance, camera moving away

Backface culling performance impact

References