Project Description
Full Software Render developed in C# and XNA using the Ploobs Engine ( http://ploobsengine.codeplex.com ). Mimic the stages of Directx 11 pipeline in software, including Vertex, Geometric,Pixel, Hull and Domain Shader programable in C#. Uses Barycentric triangle rasterization.

ScreenShots

Phong Image         Triangle Tesselation  

 

Texture Bilinear Filtering         Pixel Shader 

 

Features

  • Triangle Baricentric Coordinates with Perpective correction
  • Triangle Rasterization using spans (like Bresenham’s line method) without perspective correction
  • Bilinear Texture Filtering
  • Mimic the DirectX 11 pipeline stages, including Vertex, Geometric, Hull, Domain and Pixel Shader (they are programmed in C#, not in glsl or hlsl)
  • Support RenderTarget (just one at time) and Stream Out (Geometric Shader)
  • Just three primitives supported (Triangle, point and PatchWith3ControlPoints). Geometric Shader can transform point in triangles for example
  • Indexed and Normal primitives supported.
  • Alpha mapping enabled
  • Lines not supported
  • Depth Buffer algoritm implemented
  • Tessellator Unit that support fractional Triangle Tesselation (algorith based in the MORETON H.: Watertight Tessellation using ForwardDifferencing paper)
  • Import XNA (.x and .fbx) and XML models (See my other project about Importer and Exporters)
  • Basic Phong Light Model
  • Can be easily programmed (lots of effects can be programmed in the "programmable" stages).
  • Programmed in C# .Net 3.5 and XNA 3.1
  • Uses some helper libs that i made in the past like ModelXML for importer and some helper functions of PloobsEngine ( http://ploobsengine.codeplex.com/ ).
  • Code in Mercurial Repo and in .rar format
  • ITS NOT REAL TIME, not designed to be.
  • ITS ALL SOFTWARE, no GPU acceleration !!!
  • ITS for experimentation and learning purpouse. Iam planning to port this render to CUDA, but it is just a plan yet :) !!!


I made a big collection of papers about rasterization and tessellation, if someone needs them, contact me: contato@ploobs.com.br

I have another project about renderization. Its a software Ray Tracing also coded in XNA and C#. Take a Look !!!

http://sourceforge.net/projects/learnraytracing/

Others Projects From this author:

Last edited Apr 13, 2011 at 12:11 PM by tpastor, version 13