Skip to content

A highly optimized CPU software rasterizer, which implements most of the common D3D pipeline stages.

Notifications You must be signed in to change notification settings

behindthepixels/EDXRaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EDXRaster

Please go to behindthepixels.io/EDXRaster/ for more detailed introduction.

EDXRaster is an highly optimized software renderer based on rasterization, independently developed by Edward Liu. This renderer is written with C++ and SSE and is highly optimized. Most of the D3D11 pipeline is implemented.

The source code of EDXRaster is highly self-contained and does not depend on any external library other than EDXUtil, which is a utility library developed by Edward Liu.

EDXRaster is currently built and tested only on Windows platform. Developer using Visual Studio 2015 should be able to build the source code immediately after syncing. Porting to Linux or macOS should not be difficult since it there is no external dependency.

Technical Details

  • The rasterization was parallelized on both thread level and instruction level. Triangles are first binned into 16x16 tiles, before rasterized hierarchically onto 8x8 tiles and then onto pixel level.
  • Hierarchical rasterization is done the same way in the larrabee document. 4 wide SSE were used to rasterize a triangle to 4 pixels at a time.
  • Basic blinn-phong shading is supported and also accelerated with SSE.
  • Key data structure sizes and layouts are highly tuned to reach high performance.
  • Implemented pipeline stages include
    • Vertex Transformation
    • Homogeneous Clipping
    • Rasterization
    • Perspective Corrected Interpolation
    • Pixel Shading
    • Depth Test

About

A highly optimized CPU software rasterizer, which implements most of the common D3D pipeline stages.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages