-
Notifications
You must be signed in to change notification settings - Fork 50
whatisit
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. |