Skip to content

whatisit

Zhou edited this page Oct 24, 2018 · 9 revisions

WHAT IS IT

Puresoft3D is a software 3D graphics renderer. It imitates the way modern GPU works, including the OpenGL style API design as well as the so called programmable graphics pipeline structure.

It runs totally on CPU. Under the help of SSE/SSE2 instructions and multicore processor, it renders 3D scene containing some ten thousands of vertices in frame rate of no lower than 10 ~ 15 f/s. Besides, it can also handle some common and useful 3D graphics effects. For a list of features, take a glance at below screenshots and go through the following features list.

Here is a list of features that Puresoft3D implements or is able to implement. ‘Being able’ means it can do it as long as certain ‘processor programme’ is designed. Like modern GPU using shaders to do special effects, Puresoft3D does not implement all effects on framework level either, instead, it uses ‘processor programme’ to do the work GPU shader programme does.

Category Feature Implemente
Framework features Vertex/Fragment processor programme and Uniforms yes
Rasterization yes
Interpolation yes
Bit Blitter yes
VAO / VBO yes
FBO yes
2D Texture and sampler yes
Cube texture and sampler yes
Projection sampler with PCF yes
Parallel fragment processing yes
Alpha blending yes
Post processing support yes
Parallel vertex processing ? no
Stencil planned
Polygon clipping planned
Shader abilities Real-time Phong lighting yes
texture / multi-texture blending yes
Bump mapping yes
Skybox mapping yes
Shadow mapping yes
Environment reflection mapping ?? no
Volume shadow ?? no
Deferred rendering ?? no
AA planned
Focus and depth of field planned
Bloom planned
plane reflection planned
cubemap based environment reflection planned
Misc. features Complex scene management planned
FBX support (probably requires a complicated converter) planned
? Because I do not have a multi-way XEON system to test it even if I implement it.
?? Not quite feasible on CPU as the throughput of the main memory is too low.

RETURN TO INDEX

Clone this wiki locally