Cpurasterizer

CPU Based Rasterizer Engine
Alternatives To Cpurasterizer
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Anime4kcpp1,383
10 months ago37mitC++
A high performance anime upscaler
Randomx1,232
19 days ago25bsd-3-clauseC++
Proof of work algorithm based on random code execution
H2o4gpu421
2 years ago1March 23, 2018152apache-2.0Python
H2Oai GPU Edition
Paper_checking_system311
2 months agogpl-2.0C#
基于C#和C++开发的文本查重/论文查重系统,一亿字次级论文库秒级查重。关联:查重算法、数据去重、文档查重、文本去重、标书查重、辅助防串标、作业查重、duplicate check
Primecount282122 days ago4July 08, 20224bsd-2-clauseC++
🚀 Fast prime counting function implementations
Libpopcnt234
2 years agobsd-2-clauseC
🚀 Fast C/C++ bit population count library
Khiva186
2 years ago22mpl-2.0C++
An open-source library of algorithms to analyse time series in GPU and CPU.
Pytorch Nmf173
4 months ago4March 28, 20215mitPython
A pytorch package for non-negative matrix factorization.
Deslantimg101
2 years agomitC++
The deslanting algorithm sets text upright in images. Python, C++ and OpenCL implementations provided.
Cpurasterizer92
2 years ago5bsd-2-clauseC++
CPU Based Rasterizer Engine
Alternatives To Cpurasterizer
Select To Compare


Alternative Project Comparisons
Readme

CPURasterizer

Efficient CPU based rasterizer

CPU implementation of a very efficient rasterizer which utilizes AVX2 instructions and lock-free multi-threading programming. Using tiled rendering the program consumes 8 pixels at the same time, which together with std::execution threading library makes it very fast and robust. The viewer of the project is a very simple OpenGL applicatoin which renders a texture to a quad. The texture is generated by the CPU Renderer.h class. The pipeline contains most of the modern GPU rasterizers stages.

issues closed release windwos linux

Current development is available under project. Discussion about the project is available here.

Implemented stages include:

- Vertex Shader
- Clipping (SutherlandHodgman algorithm)
- Rasterization (Larrabee paper)
- Perspective Corrected Interpolation
- Fragment Shader
- Depth Testing

Except rasterization pipeline the project contains serveral additional features. (More features will be developed soon)

  • Tiled rendering using AVX2 (2x4 pixels tile)
  • Texture sampling
  • OpenGL viewer (only texture rendering)
  • C++17 (std::execution etc.)

Performance

All tests were done on CPU Intel i4790k with 4 cores. 60 fps is the maximum for GLFW window.

Scene Triangles Resolution Shader Filter FPS
Boy 85k 1280x720 Phong Nearest 35.2
Bedroom 1490k 1280x720 Phong Nearest 10.1
Panther 2004k 1280x720 Phong Nearest 6.3

How to run

All dependencies needed for the project can be downloaded using windows_install.bat for Windows or linux_install.sh for Linux. The project has Visual Studio 2019 solution and CMake project.

git-lfs must be installed in order to fetch scenes repository.

Assets

The scene description and assets are adapted from GLSL-PathTracer project [4]. The scenes repository will be automatically cloned during the installation process.

Rasterizer/Assets/PBRScenes/
    bedroom/
    coffee_cart/
    HDR/
    bedroom.scene
    coffee_cart.scene
    ...

References/Credits

[0] Optimizing the basic rasterizer
[1] Rasterization on larrabee
[2] Rasterization practical implementation
[3] EDXRaster

Popular Cpu Projects
Popular Algorithms Projects
Popular Hardware Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
C Plus Plus
Algorithms
Opengl
Cpu
Rendering
Texture
Multi Threading
Threading
Computer Graphics
Avx
Parallel Computing