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
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: