Skip to content

Software Rasterizer - Forward Rendering Pipeline Implementation

Notifications You must be signed in to change notification settings

ramazantokay/SoftwareRasterizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

SoftwareRasterizer

Software Rasterizer - Forward Rendering Pipeline Implementation

This is a basic software rasterizer, implemented Modeling Transformation, Viewing Transformation, and Rasterization stages of the Forward Rendering Pipeline in C++.

Some of the properties of the Software Rasterizer as follows:

  • Supported two types of projection transformations: orthographic projection and perspective projection.
  • Used the midpoint algorithm to draw triangle edges and use the barycentric coordinates based algorithm to rasterize triangle faces.
  • Liang-Barsky Clipping algorithm is used
  • In both wireframe and solid modes, triangles whose backface is facing the viewer will be culled.
  • Having strong OOP features
  • Parsing XML scene files and rendering images in PPM format

QuickStart

Download the repository

git clone https://github.com/ramazantokay/SoftwareRasterize.git

and run the following command on the terminal

make all

then, you can use the RayTracer with this command

./rasterize <sample_scenes/scene_file.xml>

It will render the scene and save it in its current directory with ppm format.

Some provided scene

Horse and Mug

HorseMug

Filled Box

FilledBox

Empty Box Culling Disabled

EmptyBox

Empty Box Culling Enabled

EmptyBoxCE

Empty Box Clipping

EmptyBoxClipping

About

Software Rasterizer - Forward Rendering Pipeline Implementation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages